xcodebuild:模拟器还是设备?


Answers:


142

从命令行构建的Xcode如下所示:

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

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

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

CPU_ARCHITECTURE 是您要为其构建的CPU,其中之一:

i386armv6armv7

使用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设置构建属性后通常使用的标志。您不必全部使用它们,但是弄清楚您要构建的内容可能是个好主意-否则,我相信您会使用最后的设置。


我知道,-configuration并且-target,我只是忘记了SDK设置的是硬件还是模拟器。谢谢!
史蒂芬·费舍尔

5
您可能还想提及-sdk iphoneos最新版本。
史蒂芬·费舍尔

谢谢,我知道XCode具有“最新版本” SDK设置,但我不知道它是什么。我认为“ iphonesimulator”也是最新的iPhone模拟器版本。
Kendall Helmstetter Gelner 2011年

修改后的答案是指默认情况下使用最新版本的变体。
Kendall Helmstetter Gelner 2011年

5
请注意使用进行构建-sdk iphonesimulator,我还必须使用-arch i386,因为xcodebuild在某些llvm命令中出错了。
2012年

1

我觉得-xcconfig国旗很有用。此选项使您可以指定xcconfig(构建设置文件)的路径。在xcconfig中,您可以使用#include其他xcconfig文件。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.