iOS 8.1.3 - 企业级应用分发 - 应用程序缺少应用标识符授权。

10

我在iOS 8.1.3上使用企业分发遇到了很多问题。我设法解决了大部分出现此错误的安装问题:

Ignore manifest download, already have bundleID

使用这个答案:https://dev59.com/IF8e5IYBdhLWcg3wb52S#25948839

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

但是在我的一些测试设备上,修改后出现了一个新的错误:

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

我似乎找不到这个问题的解决方案。

编辑1

我尝试将以下内容添加到.entitlements文件中:

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

但是当我尝试为应用程序进行归档以进行分发时,现在出现了这个错误:

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

8
应用程序标识符的授权格式不正确;应包含您的10个字符的App ID Seed,后跟一个点,再后跟您的捆绑标识符:
XXXXXXXXXX.com.domain.appname

1
我应该把这个信息放在哪里?我找不到.entitlements文件,卡住了。 - G_Gus
1
请参考以下链接:https://dev59.com/v2Ik5IYBdhLWcg3wBZ77 - bllakjakk

8
我已经通过这篇帖子中的步骤解决了这个问题: https://dev59.com/hF4c5IYBdhLWcg3wM36R#28235443 对于由第三方签署的应用程序,如果您要使用企业证书重新签署(此演示假设ipa文件为AcmeApp.ipa,您的entitlements文件为entitlements.plist,您的provisioning profile为provProvile.mobileprovision;所有文件都位于桌面文件夹(Mac OSX),并且S836XXACME是您的团队标识符):
创建一个新的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>

解压ipa文件:

cd ~/Desktop

unzip AcmeApp.ipa

移除代码签名:

rm -r Payload/AcmeApp.app/_CodeSignature/ 

复制mobileprovision文件:

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

代码签名:

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

将其压缩为已签名的ipa文件:
zip -qr AcmeApp_resigned.ipa Payload/

您还需要根据之前“已签署”部分的要求更改manifest.plist文件:
<key>bundle-identifier</key>
<string>S836XXACME.uk.co.acme.AcmeApp</string>

我在iOS 8.4.1、8.4、8.0.2和7.1.1设备上尝试了这个解决方案,它对我有效。感谢"Mark Chamberlain" :)

2
这个问题是由于苹果对8.1.3的安全补丁造成的。你可以从苹果开发者论坛中查看讨论。
bllakjakk的答案是正确的。但只是为了明确,10个字符的App ID Seed被称为Team ID,你可以在会员中心的组织简介中找到它。

2
但是你怎么添加它呢? - BTRUE

0
根据Apple的技术说明,

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

安装失败错误

所以你需要遵守这个规定。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接