xcode iOS 8.1.3 - 企业分发 - 应用程序缺少应用程序标识符权利

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/28371652/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-15 06:36:32  来源:igfitidea点击:

iOS 8.1.3 - Enterprise Distribution - Application is missing the application-identifier entitlement

iosxcodeios8enterprise-distribution

提问by Jan

I'm having so much problems with Enterpsie Distribution on iOS 8.1.3. I managed to fix MOST of my installations which were giving this error:

我在 iOS 8.1.3 上的 Enterprise Distribution 遇到了很多问题。我设法修复了大多数出现此错误的安装:

Ignore manifest download, already have bundleID

with this answer: https://stackoverflow.com/a/25948839/517688

有了这个答案:https: //stackoverflow.com/a/25948839/517688

Which basically tells you to fake the bundleID on the server manifest.plist.

这基本上告诉你在服务器 manifest.plist 上伪造 bundleID。

But on some of my test devices I'm getting a new error after the change:

但是在我的一些测试设备上,更改后我收到了一个新错误:

Error Domain=MIInstallerErrorDomain Code=63 "Application is missing the application-identifier entitlement."

And I can't seem to find a solution for this one.

我似乎无法找到解决方案。

EDIT 1

编辑 1

I tried adding this to the .entitlements file:

我尝试将其添加到 .entitlements 文件中:

<key>application-identifier</key>
<string>com.domain.appname</string>

but now I'm getting this error when trying to Archive the app for distribution:

但现在我在尝试存档应用程序以进行分发时收到此错误:

None of the valid provisioning profiles allowed the specified entitlements: application-identifier, aps-environment.

采纳答案by bllakjakk

The application-identifier entitlement is not formatted correctly;

应用程序标识符权利的格式不正确;

It should contain your 10-character App ID Seed, followed by a dot, followed by your bundle identifier:

它应该包含您的 10 个字符的 App ID 种子,后跟一个点,后跟您的包标识符:

XXXXXXXXXX.com.domain.appname

回答by rachid.elidrissi

I have resolved this issue by following the steps from this post: https://stackoverflow.com/a/28235443/2638825

我已经按照这篇文章中的步骤解决了这个问题:https: //stackoverflow.com/a/28235443/2638825

For apps that have been signed by a third partythat you're resigning with your enterprise certificate (this walkthrough is assuming the ipa file is AcmeApp.ipa, your entitlements file is entitlements.plist and your provisioning profile is provProvile.mobileprovision; all files are in the Desktop folder (Mac OSX), and S836XXACME is your team identifier):

对于已由第三方签名且您使用企业证书辞职的应用程序(本演练假设 ipa 文件为 AcmeApp.ipa,您的权利文件为 entitlements.plist,您的配置文件为 provProvile.mobileprovision;所有文件位于桌面文件夹 (Mac OSX) 中,S836XXACME 是您的团队标识符):

Create a new entitlements.plist file:

创建一个新的 entitlements.plist 文件:

<?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>application-identifier</key>
<string>S836XXACME.uk.co.acme.AcmeApp</string>
<key>get-task-allow</key>
<false/>
</dict>
</plist>

Unzip the ipa:

解压ipa:

cd ~/Desktop

unzip AcmeApp.ipa

Remove the Code Signature:

删除代码签名:

rm -r Payload/AcmeApp.app/_CodeSignature/ 

Copy in the mobileprovision file:

复制到 mobileprovision 文件中:

cp provProfile.mobileprovision Payload/AcmeApp.app/embedded.mobileprovision

Codesign:

代码设计:

codesign -f -s "iPhone Distribution: ACME Corporation Limited" --entitlements entitlements.plist Payload/AcmeApp.app

Zip it up as the resigned ipa:

将其压缩为已辞职的 ipa:

zip -qr AcmeApp_resigned.ipa Payload/

You also need to amend the manifest.plist file as per the 'ALREADY' signed part earlier:

您还需要根据之前“已经”签名的部分修改 manifest.plist 文件:

<key>bundle-identifier</key>
<string>S836XXACME.uk.co.acme.AcmeApp</string>

I tried this solution on iOS 8.4.1, 8.4, 8.0.2 and 7.1.1 devices and it works for me.

我在 iOS 8.4.1、8.4、8.0.2 和 7.1.1 设备上尝试了这个解决方案,它对我有用。

thank you "Mark Chamberlain" :)

谢谢“马克张伯伦”:)

回答by howa

This problem is caused by Apple's security patch for 8.1.3. You could see the discussion from Apple Developer forums.

此问题是由 Apple 的 8.1.3 安全补丁引起的。您可以在Apple Developer 论坛上看到讨论。

bllakjakk's answer is right. But just to make it clear, the 10-character App ID Seed is called Team ID and you could find it from your Organization Profile in Member Centre.

bllakjakk 的回答是正确的。但为了清楚起见,10 个字符的 App ID 种子称为团队 ID,您可以在会员中心的组织资料中找到它。

回答by San

As per the Technical Notes by Apple

根据 Apple 的技术说明

(your_app) failed to install Unable to download application, (your_app) could not be downloaded at this time. Application is missing the application-identifier entitlement Upgrade's application-identifier entitlement string ({Your New App ID Prefix}.com,YourApp.Bundle.ID) does not match installed application's application-identifier string (({Your Old App ID Prefix}.YourApp.Bundle.ID); rejecting upgrade.

(your_app) 安装失败 无法下载应用程序,此时无法下载 (your_app)。应用程序缺少应用程序标识符权利升级的应用程序标识符权利字符串 ({Your New App ID Prefix}.com,YourApp.Bundle.ID) 与已安装应用程序的应用程序标识符字符串 (({Your Old App ID Prefix}. YourApp.Bundle.ID);拒绝升级。

Installation Failure Errors

安装失败错误

So you need to conform to this.

所以你需要遵守这个。