Приложение Xcodebuild .app сразу же вылетает? Но .app Xcode работает успешно

Я использую xcodebuild для создания и установки своего приложения на симуляторе (путем копирования .app в ~/Library/Application Support/iPhone Simulator/6.1/Applications/UUID/) из командной строки. Я использую:

xcodebuild -target MyApp 
           -configuration Debug
           CPU_ARCHITECTURE=iphonesimulator6.1
           install DSTROOT=Products

Приложение .app создано в /project_root/Products/Applications/MyApp.app Однако каждый раз, когда я запускаю .app на своем симуляторе, он немедленно падает.

Я сравнил .app, созданный из Run Xcode, с выводом xcodebuild выше. Два MyApp.app в значительной степени идентичны, но двоичный файл MyApp внутри MyApp.app отличается (у Xcode почти вдвое больше памяти). Я даже пытался скопировать двоичный файл из Xcode MyApp.app в xcodebuild, и это тоже сработало.

Есть идеи, почему .app xcodebuild дает сбой?


person johngraham    schedule 03.05.2013    source источник
comment
Вероятно, вы не правильно установили VALID_ARCHS...   -  person Richard J. Ross III    schedule 03.05.2013
comment
Хм, спасибо за подсказку, можно поподробнее? Я попытался добавить VALID_ARCHS=armv7 armv7s i386 и их варианты, но .app по-прежнему вылетает при запуске. Я также попытался выполнить некоторые предложения, чтобы установить флаги ARCHS и ONLY_ACTIVE_ARCH: active-arch-x86-64-valid" title="нет архитектур для компиляции только для активной архитектуры yes active arch x86 64 valid"> stackoverflow.com/questions/12889065/   -  person johngraham    schedule 03.05.2013
comment
просмотрите все параметры xcodebuild — вы можете установить цель, конфигурацию сборки и т. д. — возможно, один из них не указан.   -  person David H    schedule 03.05.2013
comment
Спасибо, теперь заработало. Мне также пришлось изменить CPU_ARCHITECTURE= на флаг -sdk.   -  person johngraham    schedule 04.05.2013


Ответы (2)


Хотя на мой вопрос не было явного «ответа», который я мог бы отметить как правильный, вот мое решение на случай, если у кого-то еще возникнет такая же проблема. Спасибо Ричарду за то, что он указал мне правильное направление. Я поиграл с разными настройками для VALID_ARCHS и установил "i386" (архитектура симулятора). Кроме того, синтаксис был неправильным для CPU_ARCHITECTURE. xcodebuild вместо этого использует параметр -sdk. Для меня работало следующее:

xcodebuild -target MyApp
           -configuration Debug
           -sdk iphonesimulator6.1
           VALID_ARCHS="i386"
           install DSTROOT=Products
person johngraham    schedule 07.05.2013

Это мой скрипт, который делает .app для симулятора:

(Замените «MyApp» на название вашего приложения)

XCODE_WORKSPACE=/Users/MacBook/iOS/MyApp.xcworkspace
xcrun xcodebuild \
  -scheme MyApp \
  -workspace $XCODE_WORKSPACE \
  -configuration Debug \
  -destination 'platform=iOS Simulator,name=iPhone 8,OS=11.2' \
  -derivedDataPath \
  build
person matt    schedule 26.04.2018