iOS7.1企业应用"无法安装应用程序 因为证书无效"的解决方案

今天升级了iOS7.1后发现通过之前的url无法安装企业应用了,一直提示“无法安装应用程序 因为http://xxx.xxx.xxx证书无效”,折腾了一番,终于在StackOverFlow上找到了答案。在这里分享给大家。

StackOverFlow链接:http://stackoverflow.com/questions/20276907/enterprise-app-deployment-doesnt-work-on-ios-7-1/22325916#22325916

原因是由于iOS7.1要安装企业应用,url必须是https的,不能是http,这就要求我们的服务器要支持https。因此,只要将原链接:

[plain]  view plain copy
  1. itms-services://?action=download-manifest&url=http://example.com/manifest.plist  ;

改为

[plain]  view plain copy
  1. itms-services://?action=download-manifest&url=https://example.com/manifest.plist  ;

即可,同时增加服务器对https的支持。


如果大家觉得对自己有帮助的话,还希望能帮顶一下,谢谢:)
转载请注明出处,谢谢!



补充:

iOS 7.1正式版发布了,之前使用itms-services://URL方式在线安装ipa文件的方法却失效了,点击的时候报错为:“无法安装应用程序,因xxx.com的证书无效”(错误界面见下图),这应该怎么解决呢?

其实iOS 7.1修改了manifest.plist文件的访问协议,之前可以通过http协议访问,在iOS 7.1之后必须使用https协议方式访问。

\

比如之前的链接代码为:

itms-services://?action=download-manifest&url=http://example.com/manifest.plist

在iOS 7.1之后,就需要修改为:

itms-services://?action=download-manifest&url=https://example.com/manifest.plist

需要一个SSL证书才能够实现在线安装ipa文件的功能。  



苹果原因:

关于升级了ios7.1之后发布企业版证书的测试包不能下载的问题,这个苹果也挺坑的,什么都不说,也不警告一下,直接就不能用了

用xcode的organizer里面的console里发现安装的时候提示这个:

<Warning>: [ERROR]: Cannot load non-https manifest URL: http://192.168.1.36/kj.plist
<Warning>: Could not load download manifest with underlying error: Error Domain=SSErrorDomain Code=128 "无法连接" UserInfo=0x1669d990 {NSLocalizedDescription=无法连接}

那就用https,然后配个自签名证书(上一篇有介绍),结果还是不行:

< Warning > : NSURLConnection/CFURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9813) < Warning >: Could not load download manifest with underlying error: Error Domain=NSURLErrorDomain Code=-1202 "无法连接到商店" UserInfo=0x166bc640 {NSLocalizedDescription=无法连接到商店, NSLocalizedRecoverySuggestion=您仍要连接此服务器吗?, NSLocalizedFailureReason=无法建立安全连接。请检查“日期与时间”设置。, NSErrorFailingURLStringKey= https://192.168.1.36/kj.plist, NSUnderlyingError=0x165b37e0 "此服务器的证书无效。您可能正在连接到一个伪装成“192.168.1.36”的服务器,这会威胁到您的机密信息的安全。", NSURLErrorFailingURLPeerTrustErrorKey= < SecTrustRef:  0x166b83e0 >, NSErrorFailingURLKey= https://192.168.1.36/kj.plist}

然后google发现有人在Twitter说这个自签名证书是不够的....(https://twitter.com/renderplace/status/426754821044338689

然后有人就提了下支持https的DropBox网盘,然后测试了下,的确是可以的,但是就是速度奇慢,聊胜于无吧,方法如下:

 

把manifest的plist文件放到Dropbox中,并拷贝出分享链接,如:https://www.dropbox.com/s/7ps3vuk85n9wy5g/kj.plist

然后把 "www.dropbox.com" 替换成 "dl.dropboxusercontent.com" 即:https://dl.dropboxusercontent.com/s/7ps3vuk85n9wy5g/kj.plist

 

修改html文件中得manifest URL:

< href ="itms-services://?action=download-manifest&url=https://dl.dropboxusercontent.com/s/7ps3vuk85n9wy5g/kj.plist" >快捷酒店管家。 </ a >
再去ios7.1的机上试就可以了,但是那个速度在国内真是不敢恭维...  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值