不通过AppStore发布iOS应用教程

前提:

    要实现这一功能,首先要有一个企业账户(年费是$299),并且已经配置好了相应的证书以及Provisioning Profile。

    其次,要有一个git.oschina.net的帐号,用于相关文件的存放。

    最后,要安装Apache之类的Web服务器。

详细教程:

第一部分:Xcode应用打包

    首先,打开你要发布的Xcode工程。选择工具栏的Product->Archive,此时Xcode会对应用程序进行打包。

 

    如果Archive是灰的,把运行平台选为iOS设备就可以了。

    打包完成之后,会弹出Archives对话框。这里显示了刚刚打包好的工程,此时要点击右侧的Distribute按键。

 

    点击Distribute按键之后会提示进行发布方式选择。这里选择中间的Save for Enterprise or Ad Hoc Deployment。

    接下来会弹出提示选择相应的Provisioning Profile,必须是企业账户并正确配置后才能有相应的发布Provisioning Profile。选择完成后点击Export。

 

 

    之后会进入文件存储路径选择,这里我们选择了桌面。然后勾选底下的Save for Enterprise Distribution,此时会弹出企业发布的相关设置。这里必填的只有两项:Application URL和Title,前者是应用的下载地址,后者是应用的名称。由于我们现在还没有部署程序下载地址。所以这里可以先填入类似下图的地址,Title就起应用的名字。其他的可以留空。

 

    点击Save,此时会发现桌面多了两个文件,一个是.ipa文件,一个是.plist,有了这两个文件,就能部署在线安装应用了。

    如果你的iOS设备已经越狱,此时把这个ipa通过xx助手里面安装就能装上了。

第二部分:部署下载服务器    

    首先,你要搭建一个Web服务器,Mac上可以通过MAMP(http://www.mamp.info/en/)进行,下载安装基本都是一路Next,没有什么难度,安装完成之后,启动MAMP,在Preference里面查看Apache Port,默认是8888。之后点击OK关闭Preference。此时只要点击Start Servers便可以启动Web服务器。

 

    此时其他设备通过你电脑的ip:端口便可以访问你的Web服务器了。比如你的Mac的IP是192.168.1.107,用手机浏览器访问192.168.1.107:8888便可以访问服务器了(当然这里要保证在同一路由下)。

    看到这里,你可能会想直接把ipa放到服务器里面,然后用手机浏览器直接打开这个ipa进行安装,但很可惜这是不行的,苹果还没有这么开放。

    虽然无法通过直接打开ipa下载安装应用,但我们也可以把之前在桌面生成的ipa和plist文件放到Web服务器的根目录下(默认是Application/MAMP/htdocs)。还记得之前打包应用的时候,有一项Application URL是随便填的吗,这里可以输入正确的地址了:假设你的IP地址是192.168.1.107,Apache端口是默认的8888,这里Application URL就应该是http://192.168.1.107:8888/**.ipa(这里**填入你应用的名称)。修改Application URL的方法是:打开你刚刚放到Web服务器根目录的plist,修改里面url对应的值,改成http://192.168.1.107:8888/**.ipa。

 

    来到Web服务器根目录,删掉原来的index.php文件(当然,最好是先备份一下),新建一个index.html的文件(推荐使用Sublime Text2工具)。然后输入以下语句(将http://192.168.1.107:8888/UVMork.plist换成相应的地址):

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <title>iPhone Application</title>
    </head>
    <body>
        <ul>
            <li><a href="itms-services://?action=download-manifest&url=http://192.168.1.107:8888/UVMork.plist"> App Install</a>
            </li>
        </ul> 
    </body> 
</html>

 

    保存后,用手机访问192.168.1.107:8888便会进入这个html页面。

    此时,点击App Install,会有两种情况,如果你的iOS设备是iOS7.0或者更低的版本,App已经开始安装了,但是,如果你的设备是iOS7.1的,很可惜,会提示证书无效,无法安装。

    无法安装的原因是苹果在iOS7.1之后更改了itms-services协议,更改后只能通过https协议在线安装应用。而我们之前部署的Web服务器都是http开头的,也就无法安装。

    解决的方法有两种。第一种是为你的Web服务器添加https协议,第二种便是这里要用到的通过使用了https协议的第三方网盘来存放plist以及ipa文件,实现类似自己搭建的Web服务器的效果。但是不是任意网盘都能实现这一功能的,国内的百度云盘,360等都不支持。国外的Dropbox支持,但有墙在,基本没法用。这里我们使用的是开头提到的git.oschina.net。

    接下来的步骤就是把ipa和plist都存放在git.oschina.net里,然后修改Web服务器index.html的链接地址,改为plist文件在git.oschina.net的地址(你可以通过查看文件的原始数据获得这个地址),然后iOS设备访问原来的地址(192.168.1.107:8888)便可以正确安装了。如果你用过Git进行代码管理,基本就不需要教程了。如果你没有接触过Git,可以先学习下Git的一些基本功能。

    首先登录https://git.oschina.net,然后点击右上角的加号『创建一个新项目』,项目名可以填Xcode的工程名。其他可以留空。然后点击创建项目按键,项目就创建完成了。  

    接着,进入项目的地址,找到项目对应的HTTPS地址(以git结尾),复制到剪贴板。

    接着用你的Git工具(比如Version)把此地址的项目下到本地,然后将你的ipa和plist文件通过Git工具Push到远端。Push完成之后,在浏览器中刷新你的Git工程所在的页面,就能看到刚刚Push的文件了。

    此时,在浏览器中打开ipa文件,右键点击『下载』,选择拷贝下载链接。然后修改刚Push到远端的plist文件的url,改成这个下载连接。修改之后再次Commit,Push到远端。

    最后,打开MAMP服务器的网页文件目录,修改html的地址为刚刚Push的plist的地址(通过浏览器查看plist文件的原始数据可以获得)就行了,iOS7.1或更新的设备再次通过浏览器访问原来的地址(192.168.1.107:8888),点击App Install便可以正确安装应用了。

    接下来,你可以设计下下载的页面,让这个页面更好看。此外,由于网址是LAN的地址,所以要外网访问的话,还需要在路由进行端口映射,这样外网的用户就能下载到你的应用了。

 

posted @ 2015-07-16 16:25  GX-  阅读(7120)  评论(0编辑  收藏  举报