用于使用最新 sdk 的 xcodebuild 参数。

Posted

技术标签:

【中文标题】用于使用最新 sdk 的 xcodebuild 参数。【英文标题】:parameter for xcodebuild for using latest sdk. 【发布时间】:2011-05-17 22:05:08 【问题描述】:

我使用 ant exec 任务执行 xcodebuild 来构建一些 ios 项目 hudson。我希望能够以不允许指定 sdk 版本的方式创建脚本,因为在 hudson slave 或我的 iOS 项目上更新 sdk 后,我的所有项目都失败了......

在目标设置Base SDK - Latest iOS987654321@sdk 4.2 以来,xcode 中有一个不错的选项

而且我不必在 xcodebuild 命令中提供-sdk 参数,但是(我认为)它是从 xcode 项目中获取的,这很糟糕,因为在提交期间有人可能会意外地将目标从模拟器更改为设备。

我需要一些不变的东西。我宁愿不使用 env 变量,因为我希望能够在开发机器上运行这个 ant 任务,并且不想在所有机器上重新设置它。

不幸的是xcodebuild -showsdks 只给了:

Mac OS X SDKs:
    Mac OS X 10.4                   -sdk macosx10.4
    Mac OS X 10.5                   -sdk macosx10.5
    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

我需要-sdk iphoneosLatest 之类的东西。我唯一的想法是用一些脚本削减xcodebuild -showsdks 的输出,但我不喜欢这个想法。

【问题讨论】:

只是好奇,你将 Ant 用于什么,以及 Hudson 和 iOS 项目?我刚刚完成了 iOS 版 Hudson 的设置,不需要任何其他工具,想知道我是否错过了什么。 【参考方案1】:

你可以试试:xcodebuild -showsdks | grep -Eo "iphoneos([0-9]1,\.)+[0-9]1,"

【讨论】:

【参考方案2】:

您可以将 xcodebuild 与最新的 SDK 一起使用:

xcodebuild -sdk iphoneos,用于设备 xcodebuild -sdk iphonesimulator,用于模拟器。

我们将这些选项用于我们的自动化构建,它从 XCode 3.2.5 开始就一直在工作

【讨论】:

【参考方案3】:

我尝试了@jenningj 的解决方案,它对我有用。 Maciek Sawicki,如果这对您有用,您应该将其标记为正确的解决方案。

另外,xcodebuild -showsdk 应该是 xcodebuild -showsdks

【讨论】:

【参考方案4】:

相信您可以使用xcodebuild -sdk iphoneos(无版本号)来完成此操作。

【讨论】:

以上是关于用于使用最新 sdk 的 xcodebuild 参数。的主要内容,如果未能解决你的问题,请参考以下文章

xcodebuild命令详解

xcodebuild 不会编译项目,除非它至少使用 Xcode 打开一次用于 cocoapods 集成项目

xcodebuild(Xcode 4)的CODE_SIGN_IDENTITY参数

Travis-CI 在我的项目中使用 xcodebuild 构建/链接问题

Hyperledger Fabric Java SDK最新教程

用于命令的 Cordova 错误代码 65:带有 args 的 xcodebuild