xcodebuild:模拟器还是设备?

Ste*_*her 63 iphone xcode xcodebuild ios

如何指定xcodebuild(命令行工具)是否要为模拟器或设备构建?

Ken*_*ner 134

命令行中的XCode构建如下所示:

xcodebuild -configuration ${BUILD_TYPE} -target ${TARGET_NAME} -arch ${CPU_ARCHITECTURE} -sdk ${SIMULATOR_OR_IOS_SDK} 
Run Code Online (Sandbox Code Playgroud)

BUILD_TYPE 类似于"发布"或"调试"(这些是默认值,您可能已将其他人添加到项目中)

TARGET_NAME 是您正在构建的目标的名称(默认情况下与您的项目名称相同)

CPU_ARCHITECTURE 是您正在构建的CPU,其中一个:

i386,armv6,armv7

使用I386为模拟器建立,并使用任何的ARMv6或ARMv7的用于设备构建-注意,生成库时,它是构建所有这些架构中,然后使用它们粘合在一起是一个好主意一些其他的设备无法运行ARMv7的代码,所以平时lipo.

SIMULATOR_OR_IOS_SDK是你在找什么,它是iphoneos或者iphonesimulator.这些值使用已安装的XCode支持的最新版SDK,您可以获得支持的SDK列表:

xcodebuild -showsdks
Run Code Online (Sandbox Code Playgroud)

返回如下列表:

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
Run Code Online (Sandbox Code Playgroud)

xcodebuild有更多的标志,但这些是你在使用XCode设置构建属性后常用的.你不必全部使用它们,但是明确你正在构建的东西可能是一个好主意 - 否则我相信你的最后设置被使用了.

  • 您可能还想提及`-sdk iphoneos`以获取最新版本. (5认同)
  • 注意使用`-sdk iphonesimulator`构建,我不得不使用`-arch i386`,因为xcodebuild在某些llvm命令中出错了. (4认同)