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

江枫思渺然 提交于 2020-07-05 02:49:10

问题


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:

Ignore manifest download, already have bundleID

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

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

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

I tried adding this to the .entitlements file:

<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.

回答1:


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:

XXXXXXXXXX.com.domain.appname



回答2:


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

For apps that have been signed by a third party that 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):

Create a new entitlements.plist file:

<?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:

cd ~/Desktop

unzip AcmeApp.ipa

Remove the Code Signature:

rm -r Payload/AcmeApp.app/_CodeSignature/ 

Copy in the mobileprovision file:

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:

zip -qr AcmeApp_resigned.ipa Payload/

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

<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.

thank you "Mark Chamberlain" :)




回答3:


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

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.




回答4:


As per the Technical Notes by 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.

Installation Failure Errors

So you need to conform to this.



来源:https://stackoverflow.com/questions/28371652/ios-8-1-3-enterprise-distribution-application-is-missing-the-application-ide

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!