itms-services协议,不通过AppStore,直接安装IOS应用程序

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qian_meng/article/details/48767209

最近开发的一个IOS项目需要不通过将APP发布到Appstore上直接安装到客户手机上,本来觉得苹果这么封闭的流程,应该不可以实现的吧,结果竟然还正能实现,这边主要是利用苹果自家的浏览器safari和itms-services协议,下面介绍下主要步骤和实现过程中遇到的问题。

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

这边首先需要将项目打包成ipa文件和生成.plist文件。

一、打包ipa和生成.plist文件具体步骤:

1、在苹果开发者后台生成签名文件,使用developer profile或者adhoc distribution profile这边注意不能使用distribution profile,因为这不是发布到Appstore。
2、生成archive,点击菜单栏product中的archive选项进行打包
3、在organizer中点击archive进行distribute,发布的过程中注意选择save for enterprise distribution,不然会失败,完成保存会生成俩文件 .ipa文件和 .plist文件。其中.ipa文件就是应用程序文件, .plist文件是苹果需要通过itms-services协议访问的文件。

下面是.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://218.94.107.227:8996/wJob/job.ipa</string>  
                </dict>  
            </array>  
            <key>metadata</key>  
            <dict>  
                <key>bundle-identifier</key>  
                <string>com.qgbes.pjob</string>  
                <key>bundle-version</key>  
                <string>1.0.0</string>  
                <key>kind</key>  
                <string>software</string>  
                <key>title</key>  
                <string>测试APP免Appstore安装项目</string>  
            </dict>  
        </dict>  
    </array>  
</dict>  
</plist>

属性不多,不做具体解释,这边只关心一点

<key>url</key>  
<string>http://218.94.107.227:8996/wJob/job.ipa</string>

这边是我们生成的ipa文件存放的位置。

二、现在万事俱备只欠东风啦,只需要客户端能够成功访问到我们生成的.plist文件即可。

本来觉得和ipa文件一样,放在服务器上是,访问一下就OK啦,结果发现,最新版本是不行的,之前确实可以通过http的方式进行访问plist文件进行安装,不过现在苹果规定必须以https的方式进行访问。

以https方式访问plist文件的解决方案

1、配置tomat支持https方式访问
2、利用dropbox分享外链进行访问原始文件
3、利用开源中国的git&osc分享外链进行访问原始文件

说说三种方式,第一种方式:对于只使用http方式访问来配置的tomcat,本身来改配置代价高,而且没必要。
第二种方式:dropbox是国外的,而且是要翻墙的,也就是存在不稳定情况,不通用。
第三种方式:国内网站,简单,稳定

这边我们也就只是需要访问个文件,简单点就在git&osc上放个文件,提供个文件链接就OK啦。

这里写图片描述

OK,通过itms-services协议进行访问下载吧。

三、打开客户端safari浏览器,输入

itms-services://?action=download-manifest&url=‘plist文件地址’

这样就结束啦,反正我这边是安装成功啦~~~

总结下注意点
1、签名要使用developer profile或者adhoc distribution profile,不能使用distribution profile
2、个人开发者证书只能在100个设备中实现无线安装
3、最新版ios设备支持https方式访问plist文件(ipa文件是可以通过http方式访问的)

猜你喜欢

转载自blog.csdn.net/qian_meng/article/details/48767209