模拟器还是设备?

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

57676 次浏览

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

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

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

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

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

I386 Armv6,< strong > armv7

在模拟器构建中使用 i386,在设备构建中使用 armv6或 armv7——注意,有些设备不能运行 armv7代码,所以通常在构建库时,构建所有这些架构,然后使用 lipo将它们粘合在一起是个好主意。

SIMULATOR_OR_IOS_SDK就是你要找的,不是 iphoneos就是 iphonesimulator。这些值使用安装的 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 设置构建属性之后通常使用的标志。您不必使用所有的设置,但是清楚您正在构建什么可能是一个好主意——否则我相信您的最后一个设置已经被使用了。

我发现 -xcconfig标志非常有用。此选项允许您指定 xcconfig 的路径(构建设置文件)。在 xcconfig 中,您可以 #include其他 xcconfig 文件。