苹果安装app的另一种方式(通过itms-services协议,直接安装IOS应用程序)

原文: https://blog.csdn.net/xlyrh/article/details/79078271

要求:

1、ipa的下载地址放到plist的文件中,链接指定plist(plist格式见下文)

2、plist的链接要求一定是https的,而且必须是公网ssl,自签名及免费的https不可用。

3、链接格式要求一定是符合苹果规范的,itms-services://?action=download-manifest&url=https://****/***.plist

目前可以使用https测试用的域名:https://raw.githubusercontent.com/ (2018-01-16 测试通过)

具体方法:将plist上传到github上,查看plist内容页面上右上角点击“Raw”

使用该地址链接格式为https://raw.githubusercontent.com/用户名/项目名/master/xxxx.plist

拼接链接:itms-services://?action=download-manifest&url=https://raw.githubusercontent.com/用户名/项目名/master/xxxx.plist

在iphone手机中打开Safari,访问该链接,提示“在"iTunes"中打开链接吗?",点击打开

提示“raw.githubusercontent.com”要安装“XXXXX”,点击安装即可在线下载安装ipa。

.plist格式

<?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>http://xxxxxxxxxxxxxxxxxxx/xxx.ipa</string>

                                                                </dict>

                                                                <dict>

                                                                                <key>kind</key>

                                                                                <string>full-size-image</string>

                                                                                <key>needs-shine</key>

                                                                                <true/>

                                                                                <key>url</key>                                                                                                                                    

                                                            <string>http://xxxxxxxxxxxxxxxxxx.png</string>

                                                            </dict>

                                                            <dict>

                                                                            <key>kind</key>

                                                                            <string>display-image</string>

                                                                            <key>needs-shine</key>

                                                                            <true/>

                                                                            <key>url</key>                                                                           

                                                            <string>http://xxxxxxxxxxxxxxxxxx.png</string>

                                                            </dict>

                                        </array>

                                        <key>metadata</key>

                                        <dict>

                                                        <key>bundle-identifier</key>

                                                        <string>com.xxxx.demo</string>

                                                        <key>bundle-version</key>

                                                        <string>1.0.0</string>

                                                         <key>kind</key>

                                                         <string>software</string>

                                                        <key>title</key>

                                                        <string>XXXX App download</string>

                                        </dict>

                        </dict>

        </array>

</dict>

</plist>




原文:https://blog.csdn.net/zhanghuiqi205/article/details/82942310

ios安装测试包时,除了直接用xcode安装外我们最常用的还有想fir.im等第三方分发平台,那么像fir.im这些平台是怎么做到扫码直接安装的呢,这就是使用了itms-services协议.

其实分发平台获取你上传的app后,会生成一个plist文件,通过它我们可以下载对应的ipa文件.


那么plist文件内容是这样的。内容主要是告诉我们下载ipa文件的地址和icon图片的下载地址。这个文件必须通过https的访问才可以。因为现在苹果规定必须以https的方式进行访问


同学们一定很好奇,这中间是怎么一个过程呢。其实是利用苹果自家的浏览器safari和itms-services协议来实现的。

通过itms-services协议,可以通过safari浏览器直接在iOS设备上安装应用程序。利用这种方式,只要在内网布置一个服务器,测试人员只需要通过测试设备的safari浏览器访问特定的url既可以实现安装

当我们上传我们的app到服务器上的时候,我们会把所有的地址存储起来,并把相关的信息都存储在数据库。这样就会在展示页显示我们app的信息:如图所示,此处我是关联了两个程序。其实就是一个字段相互引入各自的下载路径,通过判断设备来进行下载,来实现二维码合二为一。


接下来,在我们的二维码扫描页面,


然后我们看一下手机上,下载按钮连接的地址是什么。其实就是install.php中的内容,里面就是我们通过苹果的协议,来进行下载的连接。


我们来看看install的内容:


那么如果没有https的环境,也没关系,我们可以利用第三方的外链来实现。放到第三方平台,比如七牛云或者码云上去,我这里是放到了码云上去,只需要把这里的地址换成码云上源文件的地址就可以。


那么接下来我们就可以实现扫描二维码下载app到苹果和安卓手机了,那么我们看一下测试的效果:


那么到现在我们实现了通过另外一种方式安装苹果app的方法,这也是很多内部分发平台的实现原理。对于这种的安装方式,在打开APP的时候会提示是否信任此设备。这也是没有从苹果商店下载的好处,你需要去信任这个,至于位置就是在设置——》通用——》设备管理——》此处位置:


当然现在很多分发平台是有直接跳转到这里的功能的。


其实就是一个a标签的连接,直接跳转到设备管理的位置。

说了这么多,整个app的安装过程我们就讲述完了。然后就是可以愉快的使用我们的app了。那么总结一下,主要的知识点就是:

1.苹果app必须签名成功。

2.上传到服务器,获得信息和下载地址,得到两个文件,一个是plist文件和ipa文件,当然还有图片。

3.通过访问plist文件来达到下载ipa文件和图片的目的,使用了苹果的itms-services:///?action=download-manifest&url=一个https地址

4.信任设备。

5.其他知识点:二维合一,就是一个判断,和得到相互的下载地址,然后继续上述的协议,下载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>items</key>

<array>

<dict>

<key>assets</key>

<array>

<dict>

<key>kind</key>

<string>software-package</string>

<key>url</key>

<string>http://xxxxxxxxxxxxxxxxxxx/xxx.ipa</string>

</dict>

<dict>

<key>kind</key>

<string>full-size-image</string>

<key>needs-shine</key>

<true/>

<key>url</key>

<string>http://xxxxxxxxxxxxxxxxxx.png</string>

</dict>

<dict>

<key>kind</key>

<string>display-image</string>

<key>needs-shine</key>

<true/>

<key>url</key>

<string>http://xxxxxxxxxxxxxxxxxx.png</string>

</dict>

</array>

<key>metadata</key>

<dict>

<key>bundle-identifier</key>

<string>com.xxxx.demo</string>

<key>bundle-version</key>

<string>1.0.0</string>

<key>kind</key>

<string>software</string>

<key>title</key>

<string>XXXX App download</string>

</dict>

</dict>

</array>

</dict>

</plist>

---------------------

作者:杨小扬

来源:CSDN

原文:https://blog.csdn.net/xlyrh/article/details/79078271

版权声明:本文为博主原创文章,转载请附上博文链接!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342

推荐阅读更多精彩内容