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

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

问题描述

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

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

我正在创建一个名为 CompanyApp 的应用.然后,我为它创建了一个 App ID com.Company.CompanyApp,以及使用相应 App ID 的 Distribution Provisioning Profile.我上传了二进制文件,它运行得非常好.

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 与一个新的App ID com.Company.CompanyAppDemo,以及使用新 App ID 的新分发配置文件.我更新了 iOS 捆绑签名选项以使用新的配置文件并生成 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] 错误:错误 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] 错误:错误 ITMS-90046:无效代码签署权利.您的应用程序包的签名包含iOS 不支持的代码签名权利.具体来说,键应用程序标识符"的值TEAMID.com.Company.CompanyApp"不支持Payload/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.

我想知道为什么当我与新的签约时profile,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 构建签名选项之前,我总是在 XCode > 首选项中刷新配置文件列表.

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

推荐答案

终于在拔毛2周后..

由于某些原因,如果 Entitlements.plist 中没有设置为 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 的应用程序标识符.然后在 Build Options > iOS Bundle Signing 中包含 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天全站免登陆