2011-02-15 94 views
55

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

+12

实际上,可执行文件是完全不同的,因此在编译适用于x86的sim以及适用于ARM的设备时,可执行文件是完全不同的。 – 2011-02-16 00:02:34

回答

122

Xcode的建立在命令行的样子:

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

BUILD_TYPE是像“释放”或“调试”(这些都是默认设置,你可以添加其他的项目)

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

CPU_ARCHITECTURE是你正在建设,其中的CPU:

I386ARMv6的的ARMv7

使用I386为模拟器建立,并使用任何的ARMv6或ARMv7的用于设备构建 - 注意,创建库这是当一些其他的设备无法运行ARMv7的代码,所以通常建立所有这些体系结构然后使用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设置构建属性后通常使用的。你不必全部使用它们,但是清楚你正在构建的东西可能是一个好主意 - 否则我相信你最后的设置被使用了。

+0

我知道`-configuration`和`-target`,我只是忘记了硬件与模拟器是由SDK设置的。谢谢! – 2011-02-16 03:39:16

1

我发现-xcconfig标志相当有用。此选项允许您指定xcconfig(构建设置文件)的路径。在xcconfig中,您可能会使用其他xcconfig文件。