Enterprise app deployment doesn't install on iOS 8.1.3
来源:互联网 发布:js读取html代码 编辑:程序博客网 时间:2024/06/08 08:39
QUESTION:
After updating iOS 8.1.3, I try to download, but the "Unable to download app" and "could not be installed at this time" messages appear.
What changes between 8.1.2 and 8.1.3 do I have to take into consideration?
Download mode: < a href="itms-services://?action=download-manifest&url=https://****.plist">
Thanks!
I'm running into the exact same problem on 8.1.3. Even app updates fail to install. So far we suspect we'll have to change the signing process or something along those lines. The issue is that apps that were installed while in < 8.1.3 continue to work in 8.1.3, which is unexpected.
I'm also having enterprise-signed apps that installed in iOS 8.1.2 not install in iOS 8.1.3. I get this error message in XCode's log: "Application is missing the application-identifier entitlement."
ANSWERS:
Fix to the problem:
Your application must have a valid `entitlements.plist', which includes correct the valid bundle identifier of an application.
If you are distributing an application signed with a iOS development certificate, here is an example of a entitlements.plist you should include with your app.
<?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>com.yourbundleidhere.mycoolapp</string> <key>com.apple.developer.team-identifier</key> <string>com.yourbundleidhere.mycoolapp</string> <key>get-task-allow</key> <true/> <key>keychain-access-groups</key> <array> <string>com.yourbundleidhere.mycoolapp</string> </array></dict></plist>
If you are using a wildcard profile, replace com.yourbundleidhere.mycoolapp
with yourwildcardappid.*
. In both instances, you can use iResign to properly resign applications and include the now required, entitlements.plist.
Explanation of the problem
Due to security patches (see here under CVE-2014-4493), without the entitlements.plist, the application will not install. The security patch keeps applications from overriding existing apps and installing over the top of them/replacing them.
NOTE: I haven't currently tested this against iOS 8.1.2 or lower (proceed with caution!)
For apps that have ALREADY been signed with your OWN enterprise certificate, all you have to do (as mentioned by RAStudios in his edit) is to edit the manifest.plist:
Before:
<key>bundle-identifier</key><string>uk.co.acme.AcmeApp</string>
After:
<key>bundle-identifier</key><string>S836XXACME.uk.co.acme.AcmeApp</string>
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 ~/Desktopunzip 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>
- Enterprise app deployment doesn't install on iOS 8.1.3
- iOS 8 - Can't Install Enterprise App
- Building iOS Apps for Enterprise Deployment
- Install Oracle Database 12cR2 On Oracle Enterprise Linux7.3
- 'Icon already includes gloss effects' doesn't work on iOS 6 compiled on xCode 5 with SDK 7
- Install MongoDB Enterprise on Red Hat Enterprise or CentOS
- Install Open TFTP Server on Deployment Solution 7.1
- Install gcc on iOS
- TLS doesn't work on PPPoE in Chelan: MTU issue
- setComponentEnabledSetting doesn't work on widget 以及副作用
- 英语练习30 Money doesn't grow on trees
- gnome-terminal doesn't start on Ubuntu 15.04
- Why doesn't Genymotion run on Windows 10?
- ubuntu14.04 on T460 thinkpad, wifi doesn't work
- asp.net mvc app deployment on II7.5
- can't install opengles on ubuntu 12.04
- How to install Git on RedHat Enterprise 53
- Steps to install JDK7 on Redhat Enterprise 5
- MFC RADIO button 使用
- Leetcode OJ Remove Duplicates from Sorted Array
- Eclipse快捷键(常用)
- 编码
- 设置对话框响应键盘的按键
- Enterprise app deployment doesn't install on iOS 8.1.3
- 总结一下内存泄漏的几个点
- Java语言程序设计-基础篇-编程练习4-18
- VS自带数据库SqlExpress
- linux awk命令详解
- 入门训练 圆的面积
- Win_Gvim的编码配置
- Unity+NGUI性能优化方法总结
- 解码流程的理解