Приложения, установленные вручную в симуляторе, сбой при загрузке
Я устанавливаю MyApp
на симулятор iOS (Xcode 7, iOS 9), используя xcrun simctl install booted MyPath/MyApp.app
.
Это работает так, как ожидалось, и приложение установлено на симуляторе.
Однако запуск приложения вручную или с помощью xcrun simctl launch booted com.company.MyApp
завершается с ошибкой. Возврат ошибки:
Произошла ошибка при обработке команды (domain = FBSOpenApplicationErrorDomain, code = 1): операция cannt будет завершена. (Ошибка FBSOpenApplicationErrorDomain 1.)
Приложение экспортируется из Xcode (обратите внимание, что запуск приложения из Xcode или перестройка приложения из его исходного кода не является ответственным решением).
Это не относится к конкретным приложениям, так как любая установка приложения таким образом срабатывает с той же ошибкой.
Системный журнал сообщает о той же ошибке, но с некоторой дополнительной информацией.
com.apple.CoreSimulator.SimDevice.CA35ED48-DDAA-4CF0-8C69-C206CC55A6EB.launchd_sim [4200] (UIKitApplication: com.company.MyApp [0xe9ec] [4281]): указанная программа по сервису не содержит одну из запрошенных архитектур: R
SpringBoard [4217]: невозможно получить pid для 'UIKitApplication: com.company.MyApp [0xe9ec]': Нет такого процесса (err 3)
SpringBoard [4217]: Ошибка начальной загрузки для
SpringBoard [4217]: приложение 'UIKitApplication: com.company.MyApp [0xe9ec]' вышел добровольно.
SpringBoard [4217]: CGContextSaveGState: недопустимый контекст 0x0. если ты хотите увидеть обратную линию, пожалуйста, установите CG_CONTEXT_SHOW_BACKTRACE окружающей среды.
SpringBoard [4217]: CGContextTranslateCTM: недопустимый контекст 0x0. если ты хотите увидеть обратную линию, пожалуйста, установите CG_CONTEXT_SHOW_BACKTRACE окружающей среды.
SpringBoard [4217]: CGContextRestoreGState: недопустимый контекст 0x0. если ты хотите увидеть обратную линию, пожалуйста, установите CG_CONTEXT_SHOW_BACKTRACE окружающей среды.
SpringBoard [4217]: CGContextSaveGState: недопустимый контекст 0x0. если ты хотите увидеть обратную линию, пожалуйста, установите CG_CONTEXT_SHOW_BACKTRACE окружающей среды.
SpringBoard [4217]: CGContextTranslateCTM: недопустимый контекст 0x0. если ты хотите увидеть обратную линию, пожалуйста, установите CG_CONTEXT_SHOW_BACKTRACE окружающей среды.
SpringBoard [4217]: CGContextRestoreGState: недопустимый контекст 0x0. если ты хотите увидеть обратную линию, пожалуйста, установите CG_CONTEXT_SHOW_BACKTRACE окружающей среды.
com.apple.CoreSimulator.SimDevice.CA35ED48-DDAA-4CF0-8C69-C206CC55A6EB.launchd_sim [4200] (UIKitApplication: com.company.MyApp [0xc82f] [4282]): указанная программа по сервису не содержит одну из запрошенных архитектур: R
SpringBoard [4217]: невозможно получить pid для 'UIKitApplication: com.company.MyApp [0xc82f]': Нет такого процесса (err 3)
SpringBoard [4217]: Ошибка начальной загрузки для
SpringBoard [4217]: приложение 'UIKitApplication: com.company.MyApp [0xc82f]' вышел добровольно.
Ошибка architectures
изменяет переменную. R, f и т.д.
В чем причина этой проблемы? Как я могу его решить?
Ответы
Ответ 1
У меня была та же проблема, но с использованием Xamarin. В Visual Studio я решил это, перейдя в свойства проекта iOS, и в разделе "iOS Build" я изменил "Поддерживаемые архитектуры" с "i386" на "i386 + x86_64".
Надеюсь, вы сможете адаптировать это к XCode.
Ответ 2
когда вы говорите, что экспортируете из Xcode, ссылаетесь ли вы на экспорт из архива приложений iOS? если это так, вам не хватает важного факта, что этот пакет создан для iOS, а не для Simulator, который является совершенно другой архитектурой, как указал Нанок.
Вы пытаетесь достичь невозможного решения вашей проблемы.
Ответ 3
Я столкнулся с этой проблемой в Xcode 6 при использовании файла .app в каталоге "Release-iphoneos" вместо "Release-iphonesimulator". Существует несколько версий этого файла, и вам нужно изменить путь в своей команде установки, чтобы указать на правильный.
Если этот файл .app был отправлен вам кем-то/чем-то другим, это может быть копия из неправильного каталога (не созданного для симулятора)
Ответ 4
Это может произойти, если вы используете неправильный sdk. Если проект построен с использованием физического устройства sdk, он сработает при запуске, когда вы попытаетесь открыть его на симуляторе.
Если вы создаете его из командной строки с помощью xcrun xcodebuild, проверьте, что sdk является "iphonesimulator", а не "iphoneos"
например
xcrun xcodebuild -scheme <yourScheme> -configuration Debug -project <yourProject>.xcodeproj -sdk iphonesimulator build