使用八种牛云存储解决方案ios7.1的app部署问题
一个.问题叙述性说明
开发完ios版本号的app。须要将.ipa文件和.plist文件打包上传,供用户下载,在线安装。用户安装过程简单描写叙述例如以下:
首先通过手机浏览器safari或者扫描二维码获取到下载.plist的地址。
然后浏览器会自己主动跳转到这个地址,下载、读取.plist。(用户跳转的地址是.plist的下载地址。)这个过程,显然使用http协议来下载.plist文件。最后,iphone通过读取.plist文件里配置的.ipa下载地址。来安装.ipa文件,来完毕ios版本号的app。
举例。站点首页中,下载.plist的代码:
<ahref="itms-services://?action=download-manifest&url=http://www.ekwing.com/ekwing.plist"class="mobile-ios"></a>
可是。苹果从ios7.1開始,用户安装app,须要使用https协议,来下载plist文件。也就说。在安装app的第一步,下载.plist文件。须要使用https协议。
https协议例如以下:
这里不具体描写叙述https协议。HTTPS的信任继承基于预先安装在浏览器中的证书颁发机构(如VeriSign、Microsoft等)(意即“我信任证书颁发机构告诉我应该信任的”)。
因此。一个到某站点的HTTPS连接可被信任,当且仅当:
1. 用户相信他们的浏览器正确实现了HTTPS且安装了正确的证书颁发机构;
2. 用户相信证书颁发机构仅信任合法的站点。
3. 被訪问的站点提供了一个有效的证书,意即,它是由一个被信任的证书颁发机构签发的(大部分浏览器会对无效的证书发出警告)。
4. 该证书正确地验证了被訪问的站点(如。訪问https://example时收到了给“Example Inc.”而不是其他组织的证书);
5. 或者互联网上相关的节点是值得信任的,或者用户相信本协议的加密层(TLS或SSL)不能被窃听者破坏。
简单描写叙述,用户使用https来下载.plist文件。
则须要站点支持https协议。
支持https协议。除了服务端做一些配置外,还须要申请一个数据签名证书。
这个签名证书是由签发机构签发的。
不能自己配置生成。而申请签名证书须要一段时间。
而我们的目的仅仅是希望可以让我们的app被用户正常下载安装就可以。
二.问题分析
解决该问题,就2个方法:
1.自己站点服务上配置https服务,并购买数字签名证书以保证每种类型及其不同版本号的浏览器可以安装了证书颁发机构颁发的。我们购买的数据签名证书。时间开销7天左右。
2.将app文件托管到支持https协议的第三方server上。
三.解决这个问题
使用七牛云存储,能够高速,免费解决问题。仅仅须要到http://www.qiniu.com/注冊一个账号。
然后。开通https协议的域名就可以。最后将.plist和.ipa文件上传到七牛云存储上就可以。操作过程。很easy。
仅仅要注意几点:
1. 开通一个http协议的域名。和一个https协议的域名。
如上图。后缀名是.qiniudn.com的是支持http协议的域名。
后缀名是.qbox.me的是支持https协议的域名。上传.plist、.ipa到七牛云存储。
2. 改动下载.plist文件的地址,改动.plist文件内容。
站点首页,下载.plist地址改成上传到七牛云存储上的支持https协议(域名后缀名是.qbox.me)的下载链接地址。
<ahref="itms-services://?action=download-manifest&url=https://dn-ekwing.qbox.me/ekwing.plist"class="mobile-ios"></a>
3. 将.plist文件内容中。.ipa的下载地址,改成七牛云存储上的支持http协议(后缀名是.qiniudn.com)
<string>http://ekwing.qiniudn.com/ekwing.ipa</string>
4. 总结,.plist的下载用https协议。而.ipa的下载用http协议就可以。改动完后,就可应用ios6、ios7、ios7.1进行測试了。
四. 感谢七牛云存储
感谢七牛运存储提供免费服务。
只是。眼下防盗链还不能用。
希望可以加上防盗链功能。
五. 因ios7.1安装app。须要用https协议而提示的错误
<Warning>:[ERROR]: Cannot load non-https manifest URL:http://192.168.1.22/ekwing.plist
<Warning>:Could not load download manifest with underlying error: ErrorDomain=SSErrorDomain Code=128 "无法连接" UserInfo=0x1669d990
{NSLocalizedDescription=无法连接}
<Warning>: NSURLConnection/CFURLConnection HTTP loadfailed (kCFStreamErrorDomainSSL, -9813)
<Warning>: Could not load download manifest withunderlying error: Error Domain=NSURLErrorDomain Code=-1202 "无法连接到商店" UserInfo=0x166bc640{NSLocalizedDescription=无法连接到商店,NSLocalizedRecoverySuggestion=您仍要连接此server吗?,NSLocalizedFailureReason=无法建立安全连接。请检查“日期与时间”设置。,NSErrorFailingURLStringKey=https://192.168.1.22/ekwing.plist,NSUnderlyingError=0x165b37e0
"此server的证书无效。
您可能正在连接到一个伪装成“192.168.1.22”的server,这会威胁到您的机密信息的安全。
",NSURLErrorFailingURLPeerTrustErrorKey=<SecTrustRef:0x166b83e0>,NSErrorFailingURLKey=https://192.168.1.22/ekwing.plist}
转载。请注明原地址 http://blog.csdn.net/longxibendi/article/details/37601747
版权声明:本文博客原创文章,博客,未经同意,不得转载。