iOS应用构建部署报错IDEProvisioningErrorDomain Code=9求解决方案
解决VS2015+Cordova远程Mac构建iOS应用的配置文件错误
我来帮你搞定这个头疼的iOS构建问题——这个错误本质是Xcode找不到对应应用的签名配置文件,结合你用VS2015+Apache Cordova远程构建的场景,给你几个一步步的解决办法:
1. 先确认Apple开发者端的配置有效性
- 登录你的Apple开发者账号,检查是否已经为
myapp.app对应的Bundle ID创建了开发/发布配置文件,并且配置文件状态是有效的(没有过期)。 - 打开远程Mac上的Xcode,进入
Preferences > Accounts,选中你的开发者账号,点击Manage Certificates确保签名证书正常,再点Download Manual Profiles把最新的配置文件同步到本地。
2. 配置Cordova项目的build.json文件
在你的Cordova项目根目录下创建或修改build.json,明确指定iOS的签名信息,示例如下:
{ "ios": { "debug": { "codeSignIdentity": "iPhone Developer", "provisioningProfile": "你的开发配置文件UUID或名称", "developmentTeam": "你的开发者团队ID" }, "release": { "codeSignIdentity": "iPhone Distribution", "provisioningProfile": "你的发布配置文件UUID或名称", "developmentTeam": "你的开发者团队ID" } } }
- 配置文件的UUID可以在Xcode的
Preferences > Accounts > Manage Profiles里右键配置文件,选Show in Finder后查看文件信息获取。 - 团队ID可以在Apple开发者网站的
Membership页面找到。
3. 检查VS2015的Cordova iOS构建设置
打开VS2015的项目属性,进入iOS > Build:
- 确保
Code Signing Identity选择了对应的身份(比如iPhone Developer)。 - 在
Provisioning Profile下拉菜单里选正确的配置文件,如果下拉列表里没有,点击Refresh Provisioning Profiles同步远程Mac上的配置。
4. 手动配置Export Options plist(兜底方案)
如果上面的步骤没解决,就按错误提示直接配置Export Options plist:
- 可以在远程Mac的Cordova构建临时目录找到这个文件,或者自己创建一个,示例内容如下:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>provisioningProfiles</key> <dict> <key>com.yourcompany.myapp</key> <string>你的配置文件名称</string> </dict> <key>signingCertificate</key> <string>iPhone Developer</string> <key>signingStyle</key> <string>manual</string> <key>teamID</key> <string>你的团队ID</string> </dict> </plist>
替换com.yourcompany.myapp为你的应用实际Bundle ID,你的配置文件名称为开发者后台创建的配置文件名称。
- 构建时可以通过命令行指定这个文件:
cordova build ios --device --buildConfig=build.json --exportOptionsPlist=path/to/ExportOptions.plist
5. 清理缓存后重新构建
- 在VS2015里执行
Build > Clean Solution清理本地项目。 - 远程Mac上进入项目的
platforms/ios目录,删除build文件夹,再运行cordova clean ios清理Cordova缓存。 - 最后重新尝试构建部署到iPad。
内容的提问来源于stack exchange,提问作者alent
相关产品推荐
相关产品推荐

