Azure Pipelines:如何让代理使用iOS 16.1+版本的macOS变体?
如何让代理使用包含iOS 16.1及以上版本SDK的macOS变体
问题背景
我目前在用MacOS-12规格的代理,执行xcodebuild -showsdks后,得到的iOS SDK版本是16.0,具体输出如下:
DriverKit 21.4 -sdk driverkit21.4 iOS SDKs: iOS 16.0 -sdk iphoneos16.0 <---- iOS Simulator SDKs: Simulator - iOS 16.0 -sdk iphonesimulator16.0 macOS SDKs: macOS 12.3 -sdk macosx12.3 macOS 12.3 -sdk macosx12.3 tvOS SDKs: tvOS 16.0 -sdk appletvos16.0 tvOS Simulator SDKs: Simulator - tvOS 16.0 -sdk appletvsimulator16.0 watchOS SDKs: watchOS 9.0 -sdk watchos9.0 watchOS Simulator SDKs: Simulator - watchOS 9.0 -sdk watchsimulator9.0
但我自己的本地macOS设备上执行同一命令,能拿到iOS 16.2的SDK(这正是我需要的版本),输出如下:
DriverKit SDKs: DriverKit 22.2 -sdk driverkit22.2 iOS SDKs: iOS 16.2 -sdk iphoneos16.2 <--- this is what I want iOS Simulator SDKs: Simulator - iOS 16.2 -sdk iphonesimulator16.2 macOS SDKs: macOS 13.1 -sdk macosx13.1 macOS 13.1 -sdk macosx13.1 tvOS SDKs: tvOS 16.1 -sdk appletvos16.1 tvOS Simulator SDKs: Simulator - tvOS 16.1 -sdk appletvsimulator16.1 watchOS SDKs: watchOS 9.1 -sdk watchos9.1 watchOS Simulator SDKs: Simulator - watchOS 9.1 -sdk watchsimulator9.1
我需要让代理环境用上包含iOS 16.1及以上版本SDK的macOS变体。
解决方案
1. 直接更换代理的macOS规格
iOS 16.1及以上的SDK随Xcode 14.1及更高版本发布,这类Xcode版本通常预装在MacOS-13及以上的代理镜像中。直接切换到对应版本的代理规格,比如MacOS-13,就能直接获得符合要求的SDK版本。
2. 在现有代理中手动升级Xcode(如果允许操作)
如果代理环境支持手动修改,可以按以下步骤升级:
- 打开App Store搜索Xcode,更新到14.1或更高版本;
- 或者从Apple开发者平台下载对应版本的Xcode安装包,手动安装后,用
xcode-select切换到新的Xcode路径:sudo xcode-select -switch /Applications/Xcode_14.1.app/Contents/Developer - 最后执行
xcodebuild -showsdks验证,确认iOS SDK版本已更新到16.1及以上。
内容的提问来源于stack exchange,提问作者XDS
相关产品推荐
相关产品推荐

