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

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/4314804/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-30 18:11:21  来源:igfitidea点击:

parameter for xcodebuild for using latest sdk.

xcodeantiosbuildhudson

提问by Maciek Sawicki

I using ant exec task to execute xcodebuild to build some iOS projects hudson. I would like to be able to crate script that way that allows not to specify sdk version, because after updating sdk on hudson slave or my iOS projects all my projects failing....

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

There is is nice option in xcode since sdk 4.2 in target setup Base SDK - Latest iOS

自目标设置中的 sdk 4.2 以来,xcode 中有不错的选项 Base SDK - Latest iOS

and I don't have to provide -sdkparam in xcodebuild command, but then (i think) it's taken from xcode project and it's bad because then some one can change target from simulator to device accidentally during commit.

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

I need something that is constant. I will prefer not to use env variable because I would like to be able to run this ant task also on dev machines and would like not have to renember about setting it on all machines.

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

Unfortunately xcodebuild -showsdksgives only:

不幸的是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

I need something like -sdk iphoneosLatest. My only idea is to pare output of xcodebuild -showsdkswith some script, but I don't like this idea.

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

回答by David Lacourt

You can use xcodebuild with the latest SDK using :

您可以使用 xcodebuild 和最新的 SDK 使用:

  • xcodebuild -sdk iphoneos, for Device
  • xcodebuild -sdk iphonesimulator, for Simulator.
  • xcodebuild -sdk iphoneos, 对于设备
  • xcodebuild -sdk iphonesimulator,对于模拟器。

We use these options for our automated builds and it's been working since XCode 3.2.5

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

回答by James J

I believe you can use xcodebuild -sdk iphoneos(no version number) to accomplish this.

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

回答by ThomasW

I tried @jenningj 's solution and it worked for me. Maciek Sawicki, if this works for you, you should mark it as the right solution.

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

Also, xcodebuild -showsdkshould be xcodebuild -showsdks.

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

回答by electronix384128

You can try: xcodebuild -showsdks | grep -Eo "iphoneos([0-9]{1,}\.)+[0-9]{1,}"

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