Как я могу построить определенную архитектуру, используя xcodebuild? - PullRequest
21 голосов
/ 27 мая 2011

У меня есть устаревший код, основанный на указателях 32-bit, и я хочу использовать xCodeBuild для создания этого кода из command line.Это не работает по какой-то причине.Вот команда, которую я использую:

xcodebuild -configuration Debug -arch i386 
  -workspace MyProject.xcworkspace -scheme MyLib

вот вывод, который я получаю

[BEROR]No architectures to compile for 
  (ONLY_ACTIVE_ARCH=YES, active arch=x86_64, VALID_ARCHS=i386).

Ясно, что он пытается построить x86_64 код и терпит неудачу, поскольку я только включил i386 из VALID_ARCHS в настройках проекта xCode.

Есть ли способ дать понять, что я не хочу библиотеку 64-bit?

Ответы [ 2 ]

45 голосов
/ 27 мая 2011

Вы должны установить ONLY_ACTIVE_ARCH на NO, если хотите, чтобы xcodebuild использовал параметры ARCHS.Передав эти параметры, вы можете принудительно настроить правильную архитектуру.

xcodebuild ARCHS=i386 ONLY_ACTIVE_ARCH=NO -configuration Debug -workspace MyProject.xcworkspace -scheme MyLib

Подробнее см. эту ссылку .

0 голосов
/ 16 мая 2019

В Xcode ONLY_ACTIVE_ARCH имеет соответствующее поле с именем Build Active Architecture Only в Build Settings, но логика та же

YES - Xcode обнаружит подключенное устройство, определит архитектуру и будет опираться только на эту архитектуру.

NO - он будет опираться на все архитектуры (по умолчанию) или на арки в -arch (valid architectures aka VALID_ARCHS)

Для проверки версии используйте lipo -info

Кратко перечислите типы архитектуры во входном универсальном файле. Перечисляет названия каждого архива.

lipo -info <path to input file>

Подробнее здесь и здесь

...