本文涉及的方法都是笔者结合网络亲自实践的结果。
前言
开发完的ios企业版app。需要将.ipa文件和.plist文件打包上传,供用户下载,在线安装。这样用户的安装过程就会非常简单:
首先通过手机浏览器safari或者扫描二维码获取到下载.plist的地址。然后浏览器会自动跳转到这个地址,下载、读取.plist。(用户跳转的地址是.plist的下载地址。)最后,iphone通过读取.plist文件中配置的.ipa下载地址,来完成企业版app的安装。
但是安装过程中遇到“无法下载应用”导致失败的情况也非常普遍:
那么遇到这种情况,到底该怎么办呢?
一、网络问题
网络问题比较好排查,如果只有某一个人或者几个人出现这种失败,其他人不存在这种情况,基本就可以确定为网络问题导致,可以通过多重试几次,或者切其他的wifi或网络模式来尝试解决这个问题。
二、手机设置问题
甄别是不是手机设置问题,可以到appstore尝试下载商店中的应用,如果这是也出现同样的错误的话,基本就可以确定是手机设置的问题。
修复这个问题呢,就需要考虑尝试以下动作:
首先清除safari的历史记录:打开“设置”-"Safari"-点击 “清除历史记录与网站数据"
其次注销Apple ID账户:打开"设置"-"iTunes store与app store"点击"Apple ID:"然后"注销"帐户。
最后还原网络设置:打开设置-通用-还原-还原网络设置。设备自动重启。
重启后链接网络如果还是不能下载的话,可以通过设置-当前wifi后的感叹号-dns,修改dns为8.8.8.8即可。
三、云存储的设置问题
云存储的设置如果出现问题,最明显的就是ios7.1后所有的系统安装都会失败,而且失败提醒不是简单的下载不成功,而是“无法安装应用程序因为http://xxx.xxx.xxx证书无效”
导致这个问题的原因其实是ios7.1后要求应用的下载地址必须是https导致。
修复这个问题的办法就是将应用plist的URL修改http修改成https同时plist中ipa的地址也改成https
itms-services://?action=download-manifest&url=http://example.com/manifest.plist
最后服务器也增加对https的支持即可,详细的描述见下面链接中的文章。
http://stackoverflow.com/questions/20276907/enterprise-app-deployment-doesnt-work-on-ios-7-1/22325916#22325916
四、打包证书的问题
如果您的应用大部分安装都失败的话,基本就可以确定是打包证书的问题。
对于这种情况,我们可能需要从以下角度排查:
首先,您使用的企业账号是否有效(一般考虑是否过期,如果过期,则联系相关人员续费即可)
其次,您的企业账号下打包用的证书是不是被别人revoke了。如果是只需要重新设置证书,再打包发布就可以了,具体的打包发布流程可以参考这篇文章:http://blog.csdn.net/kmyhy/article/details/6418280
最后,考虑是不是导出ipa的时候选择的到处选项不对。切记,一定是选择Save for Enterprise Deployment这种才有效。
五、打包时电脑连接外设问题
这个问题不好归纳问题现象,我遇到的现象就是有的手机安装成功,有的安装失败。然后试了各种系统,发现ios7,到ios9.3,均是有的成功有的失败。真的是很崩溃的问题。
最后也是试了上面所有的修复办法,都没有修复,才怀疑可能是打包时电脑连接了外设导致。据说连接外设的电脑,在打包时,包会打成自动匹配该外设的硬件信息,也就是说,如果您的外设正好是64位的系统的话,那么不好意思,这个新包不匹配32位设备。
不过这个问题要修复倒是比较简单。
就是用之前打包的代码版本,重新打包。只是特别提醒,请拔出所有的链接电脑的设备(手机,pad等),选择build only for device下的Generic ios device,然后Archive,最后将导出的包重新上传托管平台就可以了。
以上文章出自:https://www.jianshu.com/p/c8d880cb94e5
笔者在用企业证书打包遇到在iPhone5s(10.3.3)上,提示无法下载应用的问题,但在其他手机上可以正常安装,经过一个个问题排查,重新打包ipa,通过ipa包安装,可以安装成功,但通过扫描线上二维码始终无法安装成功。后从新发布版本,终于成功解决了在5s无法下载的问题。
造成此问题的原因:笔者在打包时选的设备是真机6s。注意!注意!注意!一定要把外部设备拔掉,选择 Generic iOS Device。