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

Xcodebuild: симулятор или устройство?

Как я могу указать xcodebuild (инструмент командной строки), хочу ли я строить для симулятора или устройства?

4b9b3361

Ответ 1

Строка из XCode из командной строки выглядит так:

xcodebuild -configuration ${BUILD_TYPE} -target ${TARGET_NAME} -arch ${CPU_ARCHITECTURE} -sdk ${SIMULATOR_OR_IOS_SDK} 

BUILD_TYPE - это что-то вроде "Release" или "Debug" (это значения по умолчанию, возможно, вы добавили других в проект)

TARGET_NAME - имя цели, которую вы строите (по умолчанию совпадает с именем вашего проекта)

CPU_ARCHITECTURE - это процессор, для которого вы строите, один из:

i386, armv6, armv7

Используйте i386 для сборки симулятора и используйте armv6 или armv7 для сборки устройств - обратите внимание, что некоторые другие устройства не могут запускать код armv7, поэтому обычно при создании библиотек рекомендуется создавать все эти архитектуры, а затем склеивать их вместе, используя lipo.

SIMULATOR_OR_IOS_SDK - это то, что вы ищете, это либо iphoneos, либо iphonesimulator. Эти значения используют последнюю версию SDK, которую поддерживает установленный XCode, вы можете получить список поддерживаемых SDK с помощью:

xcodebuild -showsdks

Что возвращает список, например:

Mac OS X SDKs:
    Current Mac OS                  -sdk 
    Mac OS X 10.6                   -sdk macosx10.6

iOS SDKs:
    iOS 4.2                         -sdk iphoneos4.2

iOS Simulator SDKs:
    Simulator - iOS 3.2             -sdk iphonesimulator3.2
    Simulator - iOS 4.0             -sdk iphonesimulator4.0
    Simulator - iOS 4.1             -sdk iphonesimulator4.1
    Simulator - iOS 4.2             -sdk iphonesimulator4.2

xcodebuild содержит больше флагов, но те, которые вы обычно используете после использования XCode для настройки свойств сборки. Вам не обязательно использовать их все, но, вероятно, неплохо было бы понять, что вы строите - в противном случае я считаю, что ваши последние настройки используются.

Ответ 2

Я нашел флаг -xcconfig весьма полезным. этот параметр позволяет указать путь к xcconfig (файл настроек сборки). внутри xcconfig вы можете #include другие файлы xcconfig.