Ad-hoc版本的不足
需要在苹果开发者中心网页输入手机的UDID
手机数量限制为100台
不能删除已经输入的UDID,只能在每年的续费前按照提示“全部放弃”,这就意味着,要么浪费宝贵的名额,要么重新整理清单
查看手机的UDID,用iTool或者iTunes安转iPa包等对于普通使用者来说门槛也比较高
企业版账号
没有100台的限制,不需要使用者提供UDID
可以在企业内网立即发布,不需要AppStore审核,不需要等待
可以做成扫描二维码自动下载安装,在内网做个页面就可以了,很方便,不过要求是Https的
已经有很多公司在用:开发和内部试用阶段用企业版账号;提交AppStore用开发者账号。当然,在提交AppStore之前,测试还是要测一下的,毕竟企业版账号还是有一点差异的。
限制点:企业版账号和开发者账号不能用同样的Bundle ID
同一个手机上会出现两个相同的APP(名字和icon都一样)
很多第三方库需要通过Bundle ID标识不同的应用,这样一来,企业账号版本和开发者账号版本本质上是两个不同的应用。需要在打包的时候进行配置,APP后台也需要做相应的区分。
第三方库(跟Bundle ID相关)
一般都是输入App的Bundle ID,平台返回一个AppKey,然后集成在iOS客户端代码之中
- 如果是用友盟社会化组建实现,那么和友盟统计一样,需要Bundle ID
- 微信需要输入Bundle ID,不过可以输入3个,影响较小
- 新浪微博也是需要Bundle ID,不过预留了一个测试bundle ID,影响也比较小
- QQ需要Bundle ID,只有一个位置,需要新建应用,并且还要区分iPhone版和iPad版,跟不上时代
- 人脸识别,从代码上看跟企业版账号无关;不过有可能把Android的包名或者iOS的bundle ID打包在静态库中,这样的话就跟某个应用强关联了。这样做可以对应用收费,而不是仅仅是对“客户”收费,可以理解
第三方库(跟Bundle ID无关)
AliPay的App id对应商家的,这个和企业版账号和开发者账号无关
绑定支付宝,需要一个partner ID,是标识合作伙伴的,跟具体的应用无关。
银行支付插件,跟企业版账号无关
TestFlight
25个内测人员(无需审核),2000个外测人员(大约1天左右的审核期),系统为iOS8之后,有效期60天,需要对方的e-mail地址。官方网站
需要安装TestFlight App,有测试需求时,会通过e-mail通知,通过这个App安装beta测试版
有明显的标识(orange dot )区分beta版和正式版,也能方便地截屏、反馈等
如果有应用内购买( in-app purchases),在beta测试版中是免费的。不过对于通过支付宝,银行插件,第三方支付进行交易的话,应该是功能正常的,因为这些并不走苹果的支付系统(猜测,需要验证一下)。
If a beta app has in-app purchases, you do not have to purchase them, as in-app purchases made with beta builds are free within the context of the beta version.
TestFlight原本是一个独立的测试平台,后来被苹果收购,集成在XCode6和iOS8之中
可以很方便地关闭测试,并且是release版本
参考文章
选择建议
如果只是为了突破100个的限制,并且不想输入烦人的UDID,那么Test Flight足够用了
要在Test Flight的网站输入测试用户的邮件地址,稍微有点麻烦,不过能够换来“方便反馈”的好处,还是可以接受的
Test Flight的外测版本,也有1天的审核时间。而不需要审核的内测人员只有25个。当前正式版本的审核也可能只要1天,这个“审核”将是一个很大的浪费。
Test Flight是上线前的beta测试,所以不能用测试环境的那一套东西。
如果应用中有Apple Pay,Test Flight可以提供虚拟支付,这个很难模拟,还是有一定的价值。如果支付体系是支付宝、微信、银联等第三方插件,那么Test Flight的这点价值就很难体现出来。
如果一开始就按照“两个应用”来规划,那么用企业版账号也是一个不错的方法,也有很好的实践
很多第三方库都是通过bundleID来生成AppKey,管理到某个应用,所以需要把这些AppKey放到配置文件中,在企业版和正式版本之中方便切换。这点也是使用企业版账号进行内部测试、试用方案最麻烦的地方。299美元/年的价格,对一些大一点企业倒不是问题。