美文网首页我爱编程
搭建iOS应用OTA服务

搭建iOS应用OTA服务

作者: 曼妙的汉子 | 来源:发表于2018-06-21 21:51 被阅读164次

安装Apache并配置https模块,如果已有具备管理权限的https服务器可以忽略这一步

OSX自带的有Apache,本文以部署在OSX上为例,其他操作系统请自行安装Apache
1. 生成自签名CA证书
openssl genres -des3 -out ota-ca.key 2048
openssl req -new -x509 -days 3650 -key ota-ca.key -out ota-ca.crt
2. 用上一步生成的CA证书为OTA服务颁发证书
openssl genrsa -des3 -out ota-server.key 2048
openssl req -new -key ota-server.key -out ota-server.csr
openssl x509 -req -in ota-server.csr -out ota-server.crt -sha1 -CA ota-ca.crt -CAkey ota-ca.key -CAcreateserial -days 3650

在生成csr的时候,命令行会提示输入证书相关信息,其中比较重要的为Common Name,必须与OTA服务的域名一致。在内网环境中,我们可以使用机器的IP地址(最好固定IP地址,不然IP地址更新后证书就失效了,要重新颁发)。如果对内网用户的DNS服务器有配置权限,也可以在DNS服务器上配置一条域名指向OTA服务所在主机的IP地址,这样方便记忆。

3. 移除OTA服务密钥的密码
openssl rsa -in ota-server.key -out ota-server-nopass.key
4. 加载Apache与https相关的模块,移除httpd.conf中下面两行配置的注释
LoadModule socache_shmcb_module libexec/apache2/mod_socache_shmcb.so
LoadModule ssl_module libexec/apache2/mod_ssl.so
5. 引入Apache的https配置文件,移除httpd.conf中下面一行配置的注释
Include /private/etc/apache2/extra/httpd-ssl.conf
6. 配置一个虚拟主机用于OTA的https服务
<VirtualHost *:443>
    ServerName 192.168.1.112
    DocumentRoot "/Library/WebServer/Documents"

    SSLEngine on
    SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
    SSLCertificateFile /private/etc/apache2/ssl/ota-server.crt
    SSLCertificateKeyFile /private/etc/apache2/ssl/ota-server-nopass.key

    <Directory "/Library/WebServer/Documents">
        Options Indexes FollowSymLinks
        AllowOverride All
        Order allow,deny
        Allow from all
        Require all granted
    </Directory>
</VirtualHost>
7. 在mime.types文件中配置ipa和plist文件的mime类型
application/octet-stream ipa
text/xml plist

生成ipa以及manifest.plist文件并上传至OTA的web服务目录下

以上面的虚拟主机配置为例,需要把文件上传至/Library/WebServer/Documents目录或者子目录下,本文的例子中将直接上传到该目录,manifest.plist中相关的url请正确填写

编辑用于安装CA证书以及安装ipa的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:40pt">iOS应用OTA安装<h1/>
<h1 style="font-size:40pt">
<a title="iPhone" href="itms-services://?action=download-manifest&url=https://192.168.1.112/manifest.plist">点击安装</a>
<h1/>
<a title="iPhone" href="http://192.168.1.112/ota-ca.crt">ssl 证书安装</a>
<h1/>
</body>
</html>

将html文件上传至/Library/WebServer/Documents

重启Apache
sudo apachectl restart
至此,用户可以在iPhone的safari浏览器中通过域名或者IP地址访问OTA服务了,第一次安装ipa前需要安装CA证书并信任,之后就可以通过OTA安装ipa了

相关文章

网友评论

    本文标题:搭建iOS应用OTA服务

    本文链接:https://www.haomeiwen.com/subject/guaxyftx.html