1.准备
1)tomcat 7.x
2) 待发布ipa文件,本文使用test.ipa
3)JDK 1.7以上环境
4)jetty-5.1.10.jar包(地址:http://pan.baidu.com/s/1jGEjXIm
密码:kspa
)
2. 搭建https服务器:
1)为了方便,在tomcat/webapps下创建work文件夹,此文件夹用来存放待发布的ipa以及ipa.plist(后文解释),在work文件夹下创建ca文件夹,ca文件夹用来存放生成的ca证书等文件
2)下载setup.sh (地址::http://pan.baidu.com/s/1pJIJ6rx 密码:88sb
)
3)将下载好的jetty-5.1.10.jar与setup.sh复制到tomcat/webapps/work/ca文件夹下
4)打开终端,利用cd命令进入tomcat/webapps/work/ca,例如我的操作
然后输入ls命令应该能看见如下2个文件
5)在终端中输入sh setup.sh,当运行到下图时,需要用户输入一些信息
从这开始,为用户输入信息,此项可以不填写,直接回车跳过,一直到如下图
Organization Name 需用户随便输入一个关键字,用来与后面生成证书对应,这里我输入abc,然后回车一直到
Common Name 为必填项,其内容为服务器IP地址,这里就是你的电脑IP地址,例如10.220.114.123,输入后回车到
密码建议设置123456,如果设置其他密码需牢记,然后回车
会发现有重复出现了Country Name,不用管他,从此开始跟上面步骤完全一样,一直回车到必选项Organization Name,这里填写内容跟上次填写必须一致,上面为abc,这里也填abc,然后回车,一致到CommonName,也是填写IP地址,然后一路回车会出现
填写y然后回车,然后在填写y,在回车然后出现如下界面
这里密码跟上面输入一致,都是123456,后面每次回车后,都会输入密码,一共四次,一直填写123456即可然后看到如下界面
一个keystorefile Path,一个truststorefile path,我们关心的就是这两个路径会在下一步中用到
6)配置tomacat server.xml
用本文编辑器打开tomcat/conf/server.xml,找到80多行的位置,下图
在绿色文字之后新开一行,插入如下内容
不想手动输入,复制如下文字到此
<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false"
keystoreFile="/Users/Admin/Desktop/apache-tomcat-7.0.63/webapps/work/ca/server.p12"
keystorePass="123456" keystoreType="PKCS12"
truststoreFile="/Users/Admin/Desktop/apache-tomcat-7.0.63/webapps/work/ca/server.jks"
truststorePass="123456" truststoreType="JKS"/>
注意:红色部分keystoreFile trustoreFile均为第五步生成的路径,你可以直接复制第五步路径到此
至此,tomcat https服务器搭建完成,然后进入tomcat/bin下,执行sudo shutdown.sh关闭tomcat,在执行sudo startup.sh开启tomcat,在浏览器输入https://你的ip:8443后能看到tomcat界面,说明服务器搭建成功
3.配置ipa.plist
1)苹果应用程序不能直接放到服务器进行下载,需要通过itms-services:连接到配置好的plist进行下载,复制下面代码,保存成test.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://10.222.126.26:8443/work/test.ipa</string>
</dict>
</array>
<key>metadata</key>
<dict>
<key>bundle-identifier</key>
<string>com.deppon.DPM</string>
<key>bundle-version</key>
<string>1.0</string>
<key>kind</key>
<string>software</string>
<key>subtitle</key>
<string>App Subtitle</string>
<key>title</key>
<string>App Title</string>
</dict>
</dict>
</array>
</dict>
</plist>
注意红色部分,红色部分为ipa包的位置,我们在第一步已经说过,ipa包放在tomcat/webapps/work文件夹下,因此红色部分配置成https://你的ip:8443/work/test.ipa,bundle-identifier bundle-version可以在xcode中工程项目下的info.plist中找到
然后将保存好的plist放在tomcat/webapps/work下
2)建立下载链接网页,注意,此网页为http请求,不能是https,因为第一次进入此页面时,手机并没有安装此ip的证书,进入此页面后,会引导安装证书。
将以下代码保存成index.html文件
<html>
<body>
<a href="http://10.22.26.26:8080/work/ca/ca.crt">downLoadCA</a><br><br><br>
<a href="itms-services://?action=download-manifest&url=https://10.224.226.26:8443/work/test.plist">APP</a>
</body>
</html>
注意以上两个链接,一个为http链接,一个为https,其中ip地址为你自己的ip地址,然后将保存好的index.html文件放入tomcat/webapps/work下面
3)手机浏览器输入ip:8080/work/index.html,点击downLoadCA,进行证书安装,然后点击APP,测试下载,注意:第一次一定要使用safi打开index。html,一定要先安装证书在下载app,否则会出现无法连接到ip的提示
4)总结
有的读者会发现,怎么文章中出现的链接有的端口是8080,有的是8443,这是因为早ios7后,ipa程序要通过https服务器进行下载,第二部分就是教大家搭建https服务器,搭建好的服务器端口为8443,而8080则为tomcat http请求的默认端口,向下载主页index.html等可以用http访问;如果搭建完成后,进行下载时,仍出现不能连接到某ip的提示,注意2点,一个是是否确保手机先点击了downLoadCA,然后点击APP链接下载的,如果是,仍然出现的话,则很可能是第二部分中,两次配置Organzation Name不一致或致Common Name不是你的ip的原因,另外需要注意的是,当主机ip改变时,需要重新执行以上步骤.