温馨提示:本文翻译自stackoverflow.com,查看原文请点击:ios - ERROR ITMS-90164/90046: Invalid Code Signing Entitlements
app-store ios xamarin provisioning-profile application-loader

ios - 错误ITMS-90164 / 90046:无效的代码签名权利

发布于 2020-04-12 13:19:12

注意:我正在使用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列表。

查看更多

提问者
yonasstephen
被浏览
73
yonasstephen 2015-01-27 14:43

终于在拉扯头发2周后..

由于某些原因,如果Entitlements.plist中没有设置为TEAMID.com.Company.CompanyAppDemo的关键“应用程序标识符”,则Xamarin将使用原始的应用程序标识符,即TEAMID.com.Company.CompanyApp

因此,解决方案是在Entitlements.plist中添加应用程序标识符,以指定正确的应用程序捆绑包ID。然后在构建选项> iOS捆绑签名中包含plist。