使用Xcode 9.3上传TestFlight时遇WatchKit报错求助
解决Xcode 9.3上传TestFlight的WatchKit版本错误
我之前也碰到过几乎一模一样的坑,给你几个针对性的排查步骤,亲测有效:
别只看Base SDK,重点查Deployment Target
苹果的报错核心是要求构建包基于watchOS 2或更高版本,你可能只检查了Base SDK,但忽略了Watch App Target和它的Extension的Deployment Target。去每个Watch相关Target的Build Settings里,找到Deployment Target,确保都设置为watchOS 2.0及以上(建议和你当前Base SDK匹配的最低兼容版本)。清理项目里的旧WatchKit残留痕迹
如果项目之前有过watchOS 1的WatchKit Target,哪怕你删了Target,可能还有残留的配置或文件。试试这几步:- 去项目根目录手动检查有没有
WatchKitSupport文件夹,或者旧的.watchkitapp、.watchkitextension残留文件,删掉它们 - 右键项目文件→Show Package Contents,打开
project.pbxproj,搜索有没有旧的Watch相关Target配置,手动清理(操作前记得备份文件!)
- 去项目根目录手动检查有没有
确认Archive时的构建设置
有时候手动Archive会不小心用错SDK版本:- 打开Xcode的Product→Scheme→Edit Scheme,选Archive选项卡,确保Build Configuration是Release,对应的SDK是当前最新的watchOS版本
- 在Build Settings里搜索
SDKROOT,确认Watch相关Target的SDKROOT都是watchos(不是旧的watchos1.x)
彻底清理缓存后重新构建
Xcode的缓存经常会搞出奇怪的问题,按这个流程来:- 关闭Xcode,删除Derived Data(路径在Xcode→Preferences→Locations里,直接删掉整个文件夹)
- 用
Command+Shift+K清理项目,再用Command+Option+Shift+K做彻底清理 - 重启Mac,重新打开项目,重新Archive上传
检查Info.plist的关键配置
打开Watch App的Info.plist,确认:- 存在
WKWatchKitApp键,且值设为YES WKCompanionAppBundleIdentifier和主App的Bundle ID完全匹配,格式正确
- 存在
另外提一句,你说的图标缺失警告,虽然不是当前核心错误,但建议也一并解决——有时候苹果的上传验证逻辑会因为这类警告触发连锁异常,间接导致WatchKit的错误提示。
内容的提问来源于stack exchange,提问作者Parth Grover
相关产品推荐
相关产品推荐

