mac下利用tomcat发布ios应用程序

来源:互联网 发布:淘宝店上架宝贝教程 编辑:程序博客网 时间:2024/05/16 04:45
    本教程教你在mac环境下利用tomcat发布自己开发的ios应用程序,本文主要为懒人提供,省略掉了生成ca证书的过程。

   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改变时,需要重新执行以上步骤.

0 0
原创粉丝点击