`

【转】借助第三方支持https协议的存储实现自己网站上扫描二维码安装IOS APP

    博客分类:
  • app
阅读更多

 

使用plist安装,一般是企业级开发者账号不需要登录到APP STORE的IOS设备应用发布时所用到的技巧。

准备:
*一台运行着OSX的苹果电脑,最新版的XCODE,用于导出ipa和plist

一个HTML网页文件(告知iphone如何找到itms-services,已附上)

一个HTTP服务器(存放APP的服务器,就是提供ipa流量的服务器)

一款云存储(以七牛云存储为例,用于推送plist),建议升级到标准版用户,操作非常简单

备选:
一张二维码,一份自动分辨IOS设备的JS脚本


PS:

从2014年6月开始,网上的教程都变得不太好用了,原因有两个:

从IOS7.1开始,http推送plist已经不好使,只能使用https推送

Dropbox已死,需要使用其他支持HTTPS外链的云存储来代替,操作难度升级



开始

第一步:

在使用MACBOOK导出ipa的时候,我们得到ipa的同时,还得到一份plist文件

看到我们导出的plist,需要注意的地方有两个已经用中文标注。

一个是URL,一个是bundle-identifier

<?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>items</key>
    <array>
        <dict>
            <key>assets</key>
            <array>
                <dict>
                    <key>kind</key>
                    <string>software-package</string>
                    <key>url</key>
                    <string>请填上你的ipa下载地址(比如:http://127.0.0.1/app.ipa)</string>
                </dict>
            </array>
            <key>metadata</key>
            <dict>
                <key>bundle-identifier</key>
                <string>请填上你的开发者证书用户名</string>
                <key>bundle-version</key>
                <string>1.0</string>
                <key>kind</key>
                <string>software</string>
                <key>title</key>
                <string>请填上标题</string>
            </dict>
        </dict>
    </array></dict></plist>

1,URL就是我们的ipa存放位置,比如你拥有一台外网服务器,ip地址是12.34.56.78,ipa存放在APP这个文件夹,那么这个地方就填上

http://12.34.56.78/app/应用名字.ipa

2,bundle-identifier就是你申请证书时的名字,格式一般是somebody.app名字

3,这两个point都应该是在你使用XCODE导出ipa的时候要注意填写的

============================

第二步:

使用七牛存储的目的,在于它为我们提供了https连接

具体操作步骤可以参考
http://blog.csdn.net/longxibendi/article/details/37601747  (见下附录)

操作完毕后,只要把生成的超链接复制下来
http://dn-定义的空间名字.qbox.me/应用名字.plist
改成
https://dn-定义的存储空间名字.qbox.me/应用名字.plist

填入到以下的HTML文件,并且添加到网页服务器中发布

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>应用名字</title></head><body><h1 style="font-size:80pt">如果点击无法下载安装,请复制超链接到浏览器中打开<h1/><h1 style="font-size:100pt"><a title="iPhone" href="itms-services://?action=download-manifest&url=https://dn-你的空间名字.qbox.me/你的Plist存放位置/你的plist名字.plist">
Iphone Download</a><h1/></body></html>

第三步:
比如你发布这份HTML网页的地址是

http://12.34.56.78/iphoneAPP.html
 
把这个生成好的超链接,放到http://cli.im/url,生成二维码,再用手机扫一扫。即可完成整个企业级APP使用Plist发布的流程。
 
 
 
 

使用七牛云存储解决ios7.1的app部署问题

使用七牛云存储解决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协议的第三方服务器上。

三.解决问题

使用七牛云存储,可以快速,免费解决这个问题。只需要到http://www.qiniu.com/注册一个账号。然后,开通https协议的域名即可。最后将.plist和.ipa文件上传到七牛云存储上即可。操作过程,非常简单。只要注意几点:

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=您仍要连接此服务器吗?,NSLocalizedFailureReason=无法建 立安全连接。请检查“日期与时间”设置。,NSErrorFailingURLStringKey=https://192.168.1.22 /ekwing.plist,NSUnderlyingError=0x165b37e0 "此服务器的证书无效。您可能正在连接到一个伪装成“192.168.1.22”的服务器,这会威胁到您的机密信息的安 全。",NSURLErrorFailingURLPeerTrustErrorKey=<SecTrustRef:0x166b83e0>,NSErrorFailingURLKey=https://192.168.1.22/ekwing.plist}

转自: http://segmentfault.com/q/1010000000623121
http://blog.csdn.net/longxibendi/article/details/37601747
 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics