Подтвердить что ты не робот

Как я могу построить определенную архитектуру с помощью xcodebuild?

У меня есть устаревший код, который полагается на указатели 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?

4b9b3361

Ответ 1

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

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

Подробности смотрите в этой ссылке.

Ответ 2

Build Settings -> Build Active Architecture Only - ONLY_ACTIVE_ARCH

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

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

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

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

lipo -info <binary_path>
//or
file <binary_path>

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