升级Xcode至15.1后iOS应用测试报错:Provisioning profile未包含所选设备
Xcode 15.1升级后iOS模拟器测试签名报错解决办法
问题场景:
从Xcode 15.0.1升级到15.1后,执行以下模拟器测试命令时触发报错:xcodebuild test -workspace MyApp.xcworkspace -scheme MyApp -destination 'platform=iOS Simulator,name=iPhone 14' -derivedDataPath build -quiet报错信息:
Testing failed: Provisioning profile "iOS Team Provisioning Profile: com.ourcompany.myapp" doesn't include the currently selected device "MACHOSTNAME" (identifier 24_DIGIT_HEX_NUM). Testing cancelled because the build failed.
核心原因
Xcode 15.1对模拟器测试的签名逻辑做了调整,强制要求模拟器目标使用自动签名;若项目中手动指定了实体设备的描述文件,就会出现描述文件不包含模拟器设备的错误——毕竟模拟器设备ID不会出现在实体设备的描述文件里。
解决步骤
- 调整项目签名配置:打开Xcode项目,进入
Build Settings搜索Signing,找到对应测试目标的Code Signing Style,设置为Automatic并选择正确的开发团队。模拟器测试不需要绑定实体设备的描述文件,自动签名会生成适配模拟器的临时配置。 - 清理缓存并重建配置:
- 按
Cmd+Shift+K清理构建文件夹; - 打开Xcode的
Settings->Accounts,选中你的Apple ID,点击Manage Certificates,删除过期或多余的团队描述文件,让Xcode重新生成适配的配置; - 先在Xcode中手动运行一次模拟器测试,确认能正常运行后再执行命令行测试。
- 按
- 优化命令行参数:如果必须用命令行执行,可以添加签名参数强制使用自动签名:
(团队ID可在Apple Developer后台或Xcode的Accounts设置中查看)xcodebuild test -workspace MyApp.xcworkspace -scheme MyApp -destination 'platform=iOS Simulator,name=iPhone 14' -derivedDataPath build -quiet CODE_SIGN_STYLE=Automatic DEVELOPMENT_TEAM=你的团队ID - 重置模拟器:若上述方法无效,打开
Window -> Devices and Simulators,删除当前的iPhone 14模拟器,重新添加一个新的模拟器实例后再执行测试命令。
内容的提问来源于stack exchange,提问作者Jeff
相关产品推荐
相关产品推荐

