注意:我正在使用Xamarin开发。类似的问题在Xamarin论坛上发布在这里
我正在创建一个名为CompanyApp的应用程序。然后,我为它创建了一个应用程序ID com.Company.CompanyApp,以及使用相应应用程序ID的Distribution Provisioning Profile。我上传了二进制文件,并且运行良好。
然后,我继续创建该应用程序的演示版本(基本上是同一应用程序,但进行了少量修改,因此它是相同的解决方案和项目,只是捆绑签名设置不同),CompanyAppDemo和新的应用程序ID com.Company.CompanyAppDemo以及使用新的应用程序ID的新发行配置文件。我更新了iOS Bundle Signing选项,以使用新的Provisioning Profile并生成了IPA。但是,当我将其上传到Application Loader时,出现以下错误:
[2015-01-23 16:08:21 SGT]错误:ERROR ITMS-90164:“无效的代码签名权利。您的应用程序捆绑包签名中的权利与供应配置文件中包含的权利不匹配。根据供应配置文件中,捆绑包包含不允许使用的键值:“ Payload / CompanyApp.app / CompanyApp”中键“应用程序标识符”的“ TEAMID.com.Company.CompanyApp”
[2015-01-23 16:08:21 SGT]错误:ERROR ITMS-90046:“无效的代码签名权利。您的应用程序包的签名包含iOS上不支持的代码签名权利。具体来说,值'TEAMID.com.Company不支持'Payload / CompanyApp.app / CompanyApp'中键'application-identifier'的.CompanyApp'。该值应该是一个字符串,以您的TEAMID开头,后跟一个点'。',然后是包标识符。”
我已经调试了几天,以至于无济于事。
我想知道为什么当我使用新的配置文件签名时,Application Loader抛出的错误是指原始TEAMID.com.Company.CompanyApp的ID而不是TEAMID.com.Company.CompanyAppDemo?这是Xamarin中的错误,是错误的配置文件,还是我丢失了某些东西?您不需要为不同的应用使用不同的证书吗?
请注意,在更改Xamarin中的iOS Build Signing选项之前,我总是在XCode> Preference中刷新Provisioning Profile列表。