xcodebuild:模拟器还是设备?

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

从命令行编译的XCode如下所示:

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

BUILD_TYPE就像“发布”或“debugging”(这些是默认的,你可能已经添加了其他项目)

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

CPU_ARCHITECTURE是您正在构build的CPU,其中之一是:

i386armv6armv7

使用i386进行模拟器构build,使用armv6或armv7进行器件构build – 注意其他一些器件不能运行armv7代码,因此通常在构build库时,build立所有这些架构并使用lipo将它们粘合在一起是一个好主意。

SIMULATOR_OR_IOS_SDK是你正在寻找的,它是要么iphoneosiphonesimulator 。 这些值使用已安装的XCode支持的SDK的最新版本,您可以通过以下方式获得支持的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设置构build属性后通常使用的标志。 你不必全部使用它们,但是清楚你正在构build的东西可能是一个好主意 – 否则我相信你最后的设置被使用了。

我发现-xcconfig标志非常有用。 这个选项允许你指定一个到xcconfig(构build设置文件)的path。 在xcconfig中,你可以#include其他的xcconfig文件。