企业内网通过itms-services(https)协议安装IOS应用

一、使用itms-services能做什么?

公司内部打ipa包安装到测试机用usb插电脑很烦躁,每台测试机都要来插我的电脑太不友好,于是,如果能在wifi环境中每个测试人员直接无线安装ipa到手机就很爽了,全程不用来打断我的工作。

二、如何创建自签名的SSL证书?

由于新版IOS使用itms-services只支持https协议,所以需要在服务器添加SSL支持,如果有从CA机构申请的SSL证书则忽略,测试环境我使用了自签名证书。

1、首先创建自己的CA根证书

openssl genrsa -out myCA.key 2048

openssl req -x509 -new -key myCA.key -out myCA.cer -days 730
-subj /CN="My CA"

2、将myCA.cer安装到IOS测试机上,以此当做内置的受信任根CA,可以使用safari下载安装

3、上面的CA创建好之后,我们可以基于该证书创建许多证书

openssl genrsa -out mycert.key 2048

openssl req -new -out mycert.req -key mycert.key -subj /CN=192.168.1.18

openssl x509 -req -in mycert.req -out mycert.cer -CAkey myCA.key -CA myCA.cer -days 365 -CAcreateserial -CAserial serial

三、如何搭建私服?

使用nginx做服务器,编译的时候加入ssl模块:

./configure --with-http_ssl_module
make 
make install

conf/nginx.conf中加入:

server {
        listen       443(如果端口有冲突可自行替换其他端口) ssl;
        server_name 192.168.1.18(替换成你服务器的IP);

        ssl_certificate      /你自己的路径/mycert.cer;
        ssl_certificate_key  /你自己的路径/mycert.key;

        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;

        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;

        location / {
            root   html;
            index  index.html index.htm;
        }
    }

在conf/mime.types里添加:

application/octet-stream    ipa;
text/xml    plist;

重启nginx即可,访问https://192.168.1.18:443/ 查看成功与否。

四、如何通过wifi将ipa安装到手机上?

在nginx上新建一个manifest.plist文件:



<plist version="1.0">
<dict>
   <key>itemskey>
   <array>
       <dict>
           <key>assetskey>
           <array>
               <dict>
                   <key>kindkey>
                   <string>software-packagestring>
                   <key>urlkey>
                   <string>https://192.168.1.18:443/xxx.ipa(需要下载的ipa包)string>
               dict>
               <dict>
                   <key>kindkey>
                   <string>display-imagestring>
                   <key>needs-shinekey>
                   <true/>
                   <key>urlkey>
                   <string>https://192.168.1.18:443/xxx-Icon.png(icon)string>
               dict>
           array>
           <key>metadatakey>
           <dict>
               <key>bundle-identifierkey>
               <string>你应用的bundleIdstring>
               <key>bundle-versionkey>
               <string>你应用的bundleVersionstring>
               <key>kindkey>
               <string>softwarestring>
               <key>subtitlekey>
               <string>自定义subtitlestring>
               <key>titlekey>
               <string>自定义titlestring>
           dict>
       dict>
   array>
dict>
plist>

写一个简易的html页面,添加一个下载按钮:
download.html

<html>
    <a href="itms-services://?action=download-manifest&url=https://192.168.1.18:443/manifest.plist">点击下载a>
html>

重点就是href中的配置,新版ios只支持https,所以url配置刚刚搭建好的nginx的https的url
在ios设备上打开浏览器访问这个页面,点击下载链接,则会开始下载应用并安装,退回到桌面看一下是否已经开始安装即可。

你可能感兴趣的:(IOS)