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

来源:互联网 发布:陕西广电网络产业集团 编辑:程序博客网 时间:2024/05/17 23:05

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

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

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

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

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

openssl genrsa -out myCA.key 2048openssl 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 2048openssl req -new -out mycert.req -key mycert.key -subj /CN=192.168.1.18openssl 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_modulemake 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文件:

<?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>https://192.168.1.18:443/xxx.ipa(需要下载的ipa包)</string>               </dict>               <dict>                   <key>kind</key>                   <string>display-image</string>                   <key>needs-shine</key>                   <true/>                   <key>url</key>                   <string>https://192.168.1.18:443/xxx-Icon.png(icon)</string>               </dict>           </array>           <key>metadata</key>           <dict>               <key>bundle-identifier</key>               <string>你应用的bundleId</string>               <key>bundle-version</key>               <string>你应用的bundleVersion</string>               <key>kind</key>               <string>software</string>               <key>subtitle</key>               <string>自定义subtitle</string>               <key>title</key>               <string>自定义title</string>           </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设备上打开浏览器访问这个页面,点击下载链接,则会开始下载应用并安装,退回到桌面看一下是否已经开始安装即可。

0 0