不通过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的地址,所以要外网访问的话,还需要在路由进行端口映射,这样外网的用户就能下载到你的应用了。

 

时间: 2024-10-23 17:49:06

不通过AppStore发布iOS应用教程的相关文章

iOS APP 发布 上线完整教程 转载

iOS应用上线--从证书申请到打包上线 转载自http://blog.csdn.net/jingyipo/article/details/51596135 本文只针对应用上线来写,其他与上线无关的证书都不在考虑范围内.考虑到第一次接触开发者账号并申请证书的童鞋,本文采取傻瓜式书写流程(即按照流程无脑操作即可),文章末尾会给予一定的概念描述.话不多说,下面将详细介绍流程. 一.在申请证书前,我们需要做一些准备工作: 1.首先你要准备好"苹果全球开发者关系证书"即AppleWWDRCA.c

【转】Unity5.x发布IOS项目Xcode8免签证调试发布教程

http://www.jianshu.com/p/b0fb49fbcc14 最近尝试发布一下IOS项目,发现现在发布已经简单很多了,不需要开发者账户也能简单快捷进行真机调试. 调试: 1.准备工作①硬件:Mac机一台; Iphone或Ipad设备一台②注册Apple账号一个③下载Unity5.x,搜索Unity下载④到AppStore下载Xcode8 2.在Unity发布IOS发布的工程,需要以真机进行调试①Unity发布真机调试:Build Settings→Player Settings→O

Unity5.x发布IOS项目Xcode8免签证调试发布教程

https://www.jianshu.com/p/b0fb49fbcc14 最近尝试发布一下IOS项目,发现现在发布已经简单很多了,不需要开发者账户也能简单快捷进行真机调试. 调试: 1.准备工作 ①硬件:Mac机一台; Iphone或Ipad设备一台 ②注册Apple账号一个 ③下载Unity5.x,搜索Unity下载 ④到AppStore下载Xcode8 2.在Unity发布IOS 发布的工程,需要以真机进行调试 ①Unity发布真机调试:Build Settings→Player Set

发布IOS应用程序到苹果APP STORE完整流程

参考:http://blog.csdn.net/mad1989/article/details/8167529(xcode APP 打包以及提交apple审核详细流程(新版本更新提交审核)) http://www.ttlsa.com/dev/how-to-publish-iosapp-to-appstore/ (如何发布IOS应用程序到苹果APP STORE) 开发环境:xcode5.1.1 iphonesdk:7.1 开发机器:iMac 真机部署测试:apple个人开发者ID 向导: 必备ID

如何在windows系统环境下发布ios app应用上架

如何在windows系统环境下发布ios app应用上架 发布ios app一般是通过苹果公司的开发工具Xcode,需要运行在mac系统上,也就是要通过mac电脑才能发布应用上架,有很多的局限性,现在出现了一款辅助工具软件,可以在windows,mac或linux系统环境,发布app,具有很多实用的功能,而且精简了发布流程,提升了效率.分享给各位开发爱好者. 通过appuploader这款辅助开发工具,可以在windows,mac或linux中将一个或多个ipa文件上传到appstore,故障的

Unity3D for iOS初级教程:Part 2/3

转自:http://www.cnblogs.com/alongu3d/archive/2013/06/01/3111736.html 这篇教材是来自教程团队成员 Christine Abernathy, 他是Facebook的开发支持团队的工程师.欢迎来到Unity3D for iOS系列教程的第二部分!在这个系列的第一部分中,你已经学习了Unity的一些基本技能来构建一个非常简单的项目,并把它部署到iOS设备上.在继续这篇教程之前,你要确认已阅读过第一部分.现在进入第二部分,你要添加一些功能来

懒加载的用处和赋nil操作[iOS开发教程]

懒加载的用处和赋nil操作 1:数据,清空操作: self.array = nil; 2:归档从新从本地获取数据 self.archive = nil; ##id = nil的用处 block当参数,并在方法体中如下调用 safe block版本 <#block#> ? <#block#>() : nil; 或进阶版本:safe block 加 绑定代码版本 if(<#block#>) { <#block#>(); <#Code:在请求成功后同时进行的

微信公开课发布微信官方教程:教你用好微信JS-SDK接口

微信公众平台开放JS-SDK(微信内网页开发工具包),说明文档已经有相关使用方法和示例了,很多同学觉得不是很直观,为此微信公开课发布微信官方教程:教你用好微信JS-SDK接口. 1.分享类接口:支持获取“分享到朋友圈”.“发送给朋友”.“分享到QQ”和“分享到微博”按钮的用户点击状态,同时支持自定义分享内容. 小编解读:说起分享接口应用,最常见的莫过于公众号文章分享.通过分享按钮,用户可以将自己喜欢的文章分享给微信好友,也可分享到微信朋友圈.通过此次开放的分享接口,开发者获得了新的能力:可以在用

IOS编程教程(八):在你的应用程序添加启动画面

IOS编程教程(八):在你的应用程序添加启动画面 虽然你可能认为你需要编写闪屏的代码,苹果已经可以非常轻松地把它做在Xcode中.不需要任何编码.你只需要做的是设置一些配置. 什么是闪屏 对于那些新学代码的人,可能没有听说过“闪屏”把,让我先作一个简单的解释.闪屏是常见于iOS应用程序,以及其他桌面应用程序.这是你启动一个应用程序时,你看到的第一个画面.通常情况下,初始屏幕是一个覆盖整个屏幕的图像,消失后加载主屏幕.下图显示了几种闪屏: 简单闪屏(开始页面) 闪屏的主要目的是为了让用户知道你的程