我在通过Application Loader上传我的应用时遇到问题。我在Xamarin Studio中使用了Archive for publishing功能,并在应用程序加载器中打开了创建的ipa。然后我收到以下错误:
错误ITMS-90164:“无效的代码签名权利。应用程序包签名中的权利与供应配置文件中包含的权利不匹配。根据供应配置文件,捆绑包含不允许的密钥值:'[“iCloud.info.mycompany.myapp”]'用于'Payload / MyApp.app / MyApp'中的密钥'com.apple.developer.ubiquity-container-identifiers'“
我的应用程序正在使用cloudkit,因此我添加了一个icloud容器,并将其与开发人员门户中的app id相关联。
entitlements.plist:
...
<key>com.apple.developer.ubiquity-container-identifiers</key>
<array>
<string>iCloud.info.mycompany.myapp</string>
</array>
<key>com.apple.developer.icloud-services</key>
<array>
<string>CloudDocuments</string>
<string>CloudKit</string>
</array>
...
答案 0 :(得分:0)
这真烦人! 诀窍是打开项目的配置文件并检查字符串是什么。 但是,如果它是您尝试提交到AppStore的应用程序,则应该只使用与生产相关的字符串。 例如,我的一个权利就是这个:
<?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>com.apple.developer.icloud-services</key>
<string>CloudKit</string>
<key>com.apple.developer.icloud-container-environment</key>
<array>
<string>Production</string>
</array>
<key>com.apple.developer.icloud-container-identifiers</key>
<array>
<string>iCloud.[MY BUNDLE]</string>
</array>
<key>com.apple.developer.ubiquity-container-identifiers</key>
<array>
<string>iCloud.[MY BUNDLE]</string>
</array>
</dict>
</plist>
[MY BUNDLE]
与br.com.riandesign.myproject
类似。