错误ITMS-90164/90046:无效的代码签名权利 [英] ERROR ITMS-90164/90046: Invalid Code Signing Entitlements

查看:1024
本文介绍了错误ITMS-90164/90046:无效的代码签名权利的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

注意:我正在使用Xamarin进行开发.在Xamarin论坛上发布的类似问题此处

Note: I'm developing using Xamarin. Similar question posted in Xamarin Forum here

我正在创建一个名为 CompanyApp 的应用.然后,我为它 com.Company.CompanyApp 创建了一个应用程序ID,并使用了相应的应用程序ID的分发配置概要文件.我上传了二进制文件,它运行得很好.

I'm creating an app called, say CompanyApp. Then I created an App ID for it com.Company.CompanyApp, along with Distribution Provisioning Profile that uses the corresponding App ID. I uploaded the binary and it worked perfectly fine.

然后,我继续创建该应用程序的演示版本(基本上是同一应用程序,但进行了少量修改,因此它是相同的解决方案和项目,只是捆绑签名设置不同), CompanyAppDemo 应用程序ID com.Company.CompanyAppDemo ,以及使用新应用程序ID的新发行配置文件.我更新了iOS Bundle Signing选项,以使用新的Provisioning Profile并生成了IPA.但是,当我将其上传到Application Loader时,出现以下错误:

Then I went on create a demo version of the app (basically the same app with small modification, so it's the same solution & project, just different bundle signing setting), CompanyAppDemo with a new App ID com.Company.CompanyAppDemo, along with a new Distribution Provisioning Profile that uses the new App ID. I updated the iOS Bundle Signing options to use the new Provisioning Profile and generated the IPA. But when I uploaded this to Application Loader, I got the following error:

[2015-01-23 16:08:21 SGT]错误:ERROR ITMS-90164:无效代码 签名权利.应用程式套件签章中的权利 与配置文件中包含的内容不匹配. 根据供应配置文件,捆绑包包含一个键值 不允许的:密钥为"TEAMID.com.Company.CompanyApp" 'Payload/CompanyApp.app/CompanyApp'中的'application-identifier'"

[2015-01-23 16:08:21 SGT] ERROR: ERROR ITMS-90164: "Invalid Code Signing Entitlements. The entitlements in your app bundle signature do not match the ones that are contained in the provisioning profile. According to the provisioning profile, the bundle contains a key value that is not allowed: 'TEAMID.com.Company.CompanyApp' for the key 'application-identifier' in 'Payload/CompanyApp.app/CompanyApp'"

[2015-01-23 16:08:21 SGT]错误:ERROR ITMS-90046:无效代码 签名权利.您的应用程序包的签名包含 iOS不支持的代码签名权利.具体来说, 关键应用程序标识符"的值"TEAMID.com.Company.CompanyApp" 不支持有效载荷/CompanyApp.app/CompanyApp"中的.这个值 应该是一个以您的TEAMID开头的字符串,后跟一个点.", 然后是包标识符."

[2015-01-23 16:08:21 SGT] ERROR: ERROR ITMS-90046: "Invalid Code Signing Entitlements. Your application bundle's signature contains code signing entitlements that are not supported on iOS. Specifically, value 'TEAMID.com.Company.CompanyApp' for key 'application-identifier' in 'Payload/CompanyApp.app/CompanyApp' is not supported. This value should be a string starting with your TEAMID, followed by a dot '.', followed by the bundle identifier."

我已经调试了好几天,以至于无济于事.

I have been debugging for days to figure out to no avail.

我想知道为什么当我与新人签约时 配置文件中,Application Loader引发的错误是指原始 TEAMID.com.Company.CompanyApp 的ID,而不是 TEAMID.com.Company.CompanyAppDemo ?这是Xamarin中的错误,是错误的配置文件,还是我遗漏了某些东西?您不需要为不同的应用使用不同的证书吗?

I am wondering why when I signed with the new profile, the error that Application Loader threw refer to the ID of the original TEAMID.com.Company.CompanyApp instead of TEAMID.com.Company.CompanyAppDemo? Is this a bug in Xamarin that pick up a wrong provisioning profile or am I missing something? You don't need different certificate for different app right?

请注意,在更改Xamarin中的iOS Build Signing选项之前,我始终会刷新XCode> Preference中的Provisioning Profile列表.

Note that I have always refreshed the Provisioning Profile list in XCode > Preference before changing the iOS Build Signing option in Xamarin.

推荐答案

最后,拔掉头发2周..

Finally after 2 weeks of hair pulling..

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

For some reasons, if there is no key 'application-identifier' in the Entitlements.plist that is set to TEAMID.com.Company.CompanyAppDemo, Xamarin will use the original application-identifier, i.e. TEAMID.com.Company.CompanyApp

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

So the solution was to add application-identifier specifying the correct application bundle ID inside Entitlements.plist. Then include the plist in the Build Options > iOS Bundle Signing.

这篇关于错误ITMS-90164/90046:无效的代码签名权利的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆