VSTS中带WatchKit扩展的iOS应用CI构建失败,如何配置多SDK变量?
解决VSTS上带WatchKit扩展的iOS应用构建失败问题
这个问题我之前帮人排查过,本质是VSTS的默认Xcode构建任务只认单一SDK参数,但你的项目里有两个需要不同SDK的目标——iOS主应用要iphoneos,WatchKit扩展要watchos,单一配置自然会冲突。下面给你两个靠谱的解决办法:
方法一:拆分Xcode构建任务,分别处理不同目标
直接在你的VSTS构建流程里加两个独立的Xcode任务:
- 第一个任务(构建主应用):
- 把
SDK参数设为iphoneos - 在
Target输入框里填你的iOS主应用目标名称(比如MyAwesomeApp)
- 把
- 第二个任务(构建WatchKit扩展):
- 把
SDK参数设为watchos - 在
Target输入框里填你的WatchKit扩展目标名称(比如MyAwesomeAppWatchExtension)
这样两个任务各管各的,用对应SDK构建对应目标,就不会再出现平台不匹配的报错了。
- 把
方法二:用命令行脚本一次性搞定所有目标
如果不想拆任务,也可以用一个Command Line任务来执行xcodebuild命令,手动指定每个目标的SDK:
# 构建iOS主应用 xcodebuild -workspace YourApp.xcworkspace -scheme YourMainAppScheme -sdk iphoneos build # 构建WatchKit扩展 xcodebuild -workspace YourApp.xcworkspace -scheme YourWatchExtensionScheme -sdk watchos build
记得把命令里的工作区、scheme名称替换成你自己项目的实际内容就行。这种方式更灵活,能精准控制每个构建环节。
补充一句:本地Xcode能成功是因为它会自动识别每个目标对应的SDK,自动适配平台,但VSTS的默认任务没这么智能,所以得我们手动调整配置~
内容的提问来源于stack exchange,提问作者Dave
相关产品推荐
相关产品推荐

