正常情况,做好一个苹果的app,要想让大众用户下载安装使用,都是上传到app store,用户登录app store找到你开发的app下载安装使用。
<key>items</key>
<array>
<dict>
<key>assets</key>
<array>
<dict>
<key>kind</key>
<string>software-package</string>
<key>url</key>
<string>http://www.iinterest.net/ipa/Everlight-3.1-Nathan1233.ipa</string>
</dict>
<dict>
<key>kind</key>
<string>display-image</string>
<key>needs-shine</key>
<true/>
<key>url</key>
<string>http://www.iinterest.net/webapp/images/ifw114.png</string>
</dict>
<dict>
<key>kind</key>
<string>full-size-image</string>
<key>needs-shine</key>
<true/>
<key>url</key>
<string>http://www.iinterest.net/webapp/images/ifw114.png</string>
</dict>
</array><key>metadata</key>
<dict>
<key>bundle-identifier</key>
<string>net.iinterest.www</string>
<key>bundle-version</key>
<string>8.0.3.99</string>
<key>kind</key>
<string>software</string>
<key>subtitle</key>
<string>Everlight</string>
<key>title</key>
<string>Everlight</string>
</dict>
</dict>
</array>
但是app能否成功出现在苹果的app store,还需要有一个时间段让苹果对你开发的app进行审核,如果审核有问题还要退回解决后重新上传,所以耗费周期有时很长。
现在问题出现,如果开发出app,先给周边的朋友、同事测试,假如这个人数有几十人到上百人,该如何办呢??
办法一:把每一台要安装app的ios设备的UDID号复制出来,加入到开发环境,编译好app后发给用户,让用户把ios设备连线到电脑,将收到的app拖到itunes,然后和ios设备同步安装。这些步骤在一个开发者看来再简单不过的操作,但是普通的用户就会说:
太复杂,搞不定?
办法二:办法一不是太麻烦嘛!亮出第二招。
根据苹果发布的“
Distributing Enterprise Apps for iOS 4 Devices”说明文件,苹果在iOS4中新增了一项功能,就是无线发布iOS App(installing apps wirelessly)
,——用户不需要经过iTunes,只用在Safari中点击一个链接就可以下载并安装应用。
实现起来只需两步:
1.创建HTML页面
该页面用于发布App,我们可以在这个页面添加诸如软件介绍,更新说明等信息…当然核心代码是这个:
<a href="itms-services://?action=download-manifest&url=http://iinterest.net/
anifest.plist">Install App</a>当用户使用Safari浏览器浏览这个页面并点击该链接时,iOS设备会自动识别,返回HOME界面下载并安装该App,就和我们在iTunes中点击下载按钮的效果一致。
2.创建manifest.plist文件
manifest.plist用于记录App的一些重要信息如:下载url、软件图标url、软件名称等,关于anifest.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>
</dict>
</plist>
以上示例我也是借用这些大侠的劳动成果
http://www.iinterest.net/2011/09/22/installing-apps-wirelessly-ipa/。办法二解决了用户侧的安装麻烦问题,但是开发者依然需要知道用户ios设备的UDID号,一百以内的还好管理,超过一百个UDID,管理起来就很麻烦,而且超过100个,开发者就要申请苹果的企业开发者账号了。
有没有不用UDID号,也能给上百台ios设备安装app的办法呢。当然是有地。且看办法三!
办法三:你可要花大价钱了
其实办法三,还是使用办法二的无线发布iOS App(installing apps wirelessly)套路,只是开发者需要去申请苹果的EDP(
Enterprise developers Program)也就是企业开发者账户,这个一年的费是299美刀。
申请EDP还有一个前置的任务,开发者先要申请一个邓氏全球编码(
D-U-N-S® Number),这个编码的申请网址是
http://www.dnbregistered.com.cn,是国内代理公司。费用分为三个类别:
- 标准版 8600/两年 貌似国内大多使用这个
- 实地考查版 15800/两年 代理商极力推荐这个
- VIP版 21000/两年
有了邓氏全球编码,又成功申请了企业开发者账户,就可以使用installing apps wirelessly方式,向你的用户提供app的安装和下载了,而且你根本不用知道用户的UDID的。
如果你想测试完,将正式版app发布到app store上去,我要告诉你这个不行。因为苹果规定企业开发者账户下发布的app,是无法上传到app store供用户下载的,这个账户只能供内部人员使用,所以如果你想做成收费app,还是老实申请99美刀开发者账户。
办法四:testflight
使用TestFlight,甚至不需要有苹果开发者账户,就可以测试APP。
TestFlight提供了一个云端安装app的方案,可以大大降低目前iTunes同步的难度。
TestFlight能做比云端安装app多得多的事情,它的另一大功能是:你可以把测试用户分成不同的群体,分别提供不同版本的app,比如向公司同事提供一个版本,投资人则是另一个版本。它可以追踪各个群体的统计数据,还可以帮助开发者招募测试人员。当然,这些都得受苹果公司的限制(需要标识符)。
TestFlight一样可以用在iPad和iPod touch这些iOS设备上。对于想尝试一下的开发者它是免费的,同时也有一个还没有确定价格的企业版本。
他的基本工作原理是:
首先是采集用户信息:
测试用户在接收到开发者 (Developer) 的 TestFlight 邀请之后,用户只需拿自己的 iPhone 打开邀请中的链接,注册账号,注册硬件 ( Register Device ) ,TestFlight 会自动采集用户 iPhone 的 UDID 、iOS 版本、硬件版本,并发送给开发者。
然后开发者
将 IPA 上传到 TestFlight 网站,然后勾选合适的测试用户,点击确认,你就完事了。用户会马上收到TestFlight 的更新通知。然后,用户只需在她的 iPhone 上登录 TestFlight 网站, TestFlight 就会自动将测试 IPA 安装到她的 iPhone 上。
当然还可以
实时监测 IPA 的安装情况。担心有的用户没有成功安装? TestFlight 能够实时给你反馈最新统计数据。