【发布时间】:2011-02-15 22:03:48
【问题描述】:
如何向xcodebuild(命令行工具)指定我要为模拟器还是设备构建?
【问题讨论】:
-
实际上可执行文件是完全不同的,在为 sim 构建时,您正在为 x86 和在设备上为 ARM 编译。
标签: iphone xcode ios xcodebuild
如何向xcodebuild(命令行工具)指定我要为模拟器还是设备构建?
【问题讨论】:
标签: iphone xcode ios xcodebuild
从命令行构建的 Xcode 如下所示:
xcodebuild -configuration ${BUILD_TYPE} -target ${TARGET_NAME} -arch ${CPU_ARCHITECTURE} -sdk ${SIMULATOR_OR_IOS_SDK}
BUILD_TYPE 类似于“Release”或“Debug”(这些是默认值,您可能已将其他人添加到项目中)
TARGET_NAME 是您正在构建的目标的名称(默认与您的项目名称相同)
CPU_ARCHITECTURE 是您正在为其构建的 CPU,其中之一:
i386、armv6、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 设置构建属性后通常使用的标志。您不必全部使用它们,但最好清楚您正在构建的内容 - 否则我相信您最后的设置会被使用。
【讨论】:
-configuration 和-target,我只是忘记了硬件与模拟器是由SDK 设置的。谢谢!
-sdk iphoneos 以获得最新版本。
-sdk iphonesimulator 构建,我还必须使用-arch i386,因为xcodebuild 在某些llvm 命令中出错。
我发现-xcconfig 标志非常有用。此选项允许您指定 xcconfig(构建设置文件)的路径。在 xcconfig 中,您可以#include 其他 xcconfig 文件。
【讨论】: