web-dev-qa-db-fra.com

xcodebuild: simulateur ou appareil?

Comment spécifier à xcodebuild (l'outil de ligne de commande) si je veux construire pour le simulateur ou le périphérique?

61
Steven Fisher

Une génération XCode à partir de la ligne de commande ressemble à ceci:

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

BUILD_TYPE est quelque chose comme "Release" ou "Debug" (ce sont les valeurs par défaut, vous pouvez en avoir ajouté d'autres au projet)

TARGET_NAME est le nom de la cible que vous construisez (par défaut le même nom que votre projet)

CPU_ARCHITECTURE est le CPU pour lequel vous construisez, parmi:

i386, armv6, armv7

Utilisez i386 pour les générations de simulateurs et utilisez armv6 ou armv7 pour les générations d'appareils - notez que certains autres appareils ne peuvent pas exécuter le code armv7, donc généralement lors de la construction de bibliothèques, c'est une bonne idée de construire toutes ces architectures puis de les coller ensemble à l'aide de lipo.

SIMULATOR_OR_IOS_SDK est ce que vous cherchez, c'est iphoneos ou iphonesimulator. Ces valeurs utilisent la dernière version du SDK prise en charge par le XCode installé, vous pouvez obtenir une liste des SDK pris en charge avec:

xcodebuild -showsdks

Qui renvoie une liste comme:

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 a plus de drapeaux que cela, mais ce sont ceux que vous utiliseriez couramment après avoir utilisé XCode pour configurer les propriétés de construction. Vous n'êtes pas obligé de les utiliser tous, mais c'est probablement une bonne idée d'être clair sur ce que vous construisez - sinon je pense que vos derniers paramètres sont utilisés.

132

je trouve le -xcconfig flag très utile. cette option vous permet de spécifier un chemin vers un xcconfig (fichier de paramètres de build). dans un xcconfig, vous pouvez #include autres fichiers xcconfig.

1
justin