前言
最近又牵扯到了应用测试包的打包问题,为了避免频繁给测试真机安装应用,个人注册了蒲公英。继而简单整理了下 蒲公英和TestFlight 两种测试分发方式。
因为是简单整理,会比较零碎,需要一定的基础知识,比如应用打包、证书签名等。如果能帮到读者多了解一些知识,那是很好的。也希望能得到宝贵的反馈意见。
蒲公英
注册
蒲公英需要注册使用,分为 个人 和 公司。都需要认证信息。
- 个人:身份证照片、身份证号、邮箱、手机号以及一些基本信息;
- 公司:营业执照照片、营业执照号以及一些基本信息。
导出时证书选择和签名方式
证书选择
在发布到蒲公英上的安装包,可以选择如下两种方式的证书签名:
- Ad-hoc;
- In-house。
具体使用哪种方式,取决于苹果开发者账号类型。
使用 Ad-hoc 方式的的账号类型可以是:个人账号($99)、公司账号($99)、企业账号($299)、教育账号($0);
使用 In-house 方式的账号类型是:企业账号。
签名方式
目前为止,苹果为 iOS 应用提供了三种类型的证书签名方式:
- Ad-hoc;
- In-house;
- App-Store;
蒲公英会根据打包证书的不同,分别显示 内测版,企业版,App-Store版。
对应的三种类型,蒲公英支持的安装范围也不同:
- Ad-hoc 需要UDID被添加到证书中的设备才可安装 ----个人、公司、企业、教育账号
- In-house 任何 iOS 设备均可安装 ----企业账号
- App-Store 通过 App Store 安装 ----个人、公司、教育账号
不是以企业账号使用 Ad-hoc 方式,因为证书中设备数量的限制,只能安装 100 台设备。
打包方式
打包到蒲公英的包,在 export 出 ipa 包时,不要选择 Save for App Store Deployment 选项。否则可能会出现无法安装的问题。
- 如果是个人或公司苹果账号,选择 Save for Ad Hoc Deployment;
- 如果是企业苹果账号,选择 Save for Enterprice Deployment。
上传应用
蒲公英有 3 种上传应用方式:
- 通过蒲公英网站(常用);
- 通过蒲公英桌面客户端;
- 通过蒲公英开放 API。
通过网站上传应用 ipa 包,然后填写一些基本信息,就可以在蒲公英上发布应用,然后通过 二维码 下载。
发布应用
蒲公英有 2 种发布方式:
- 立即发布;
- 定时发布。
安装失败原因排查
使用蒲公英安装 iOS 内测应用时,会遇到安装失败的情况,常见的原因如下:
-
在 iOS 9 中启动应用时,出现“未守信任的企业级开发者”
设置 - 通用 - 描述文件(设备管理),信任应用的企业证书 。 link
-
在 iOS 9 中点击“安装”按钮后,没有弹出“是否安装”的提示
先删除之前已经安装的应用,然后再从蒲公英安装。
-
iOS 9 中,点击“安装”,没有任何反应,桌面也没有在安装的应用图标,但是状态栏的网络图标在转
多等一会。网络图标在转说明后台已经在下载安装了。
-
在 iOS 8 或 iOS 9 中安装一个之前安装过的应用时,安装失败
可以在蒲公英应用设置中,将“iOS 8安装修复”功能打开。
-
安装 iOS 应用时,出现提示“无法连接到 ssl.pgyer.com”
一般是由于网络,或者缓存错误造成的。
1、重启手机,然后重试;
2、换 wifi,然后重试。 -
其他一些原因
在导出 ipa 文件时,选择了 App Store 方式;
在导出 ipa 文件时,选择了 Ad-hoc 方式,但是没有添加设备 UDID;
在导出 ipa 文件时,选择了 In-house 方式,但证书已经过期;
-
在生成 App 安装包时,没有在 Xcode 中设置正确的 Architecture;
具体操作方法是:在 Xcode - Build Settings - Architecture 中,增加 armv7、armv7s、arm64,以便所有设备都可以安装。然后,将 "Build active architecture only" 设置为 NO。
查看各个 iOS 设备支持的 Architecture 类型。link
App 支持的 iOS 系统版本,和当前设备系统版本不符;
设备上已经安装了 App,且已经安装的 App 和将要安装的 App 是用不同证书打包的;
网络中断或异常
关于更多的异常可以参见蒲公英 文档中心
实现持续集成
可以通过 Jenkins、Travis CI 实现持续集成。也可以通过 fastlane 快速打包,并在蒲公英发布成功后发出通知,比如 钉钉、邮件以通知其他人。
具体见蒲公英文档中心
TestFlight
TestFlight 概述
TestFlight 现在是苹果的官方测试软件,以邮件形式告知测试人员版本变化,同时可以收集测试信息,可以在应用发布到 App Store 之前收到宝贵的反馈。 只要提供邮箱,任何人都可以成为测试人员,不过最多可以添加 10,000 名(外部)测试人员。
使用
使用 TestFlight 前,需要上传应用的测试版本到 iTunes Connect,然后在 iTunes Connect 中添加测试人员姓名和电子邮箱。测试人员将为 iOS, watchOS,tvOS 安装 testflight 程序。
基本流程是:
1、 iTunes Connect 构建版本;
2、上传测试应用到 iTunes Connect;
3、iTunes Connect 审核;
4、添加测试人员;
5、测试人员安装 TestFlight App;
6、审核成功后,测试人员收到邮件,开始安装测试。
需要说明的是 第 2 步中的审核,并不是 App
Store 的审核。第一次构建版本需要审核,之后的版本可能不需要审核,或审核速度会很快。
测试期间,所有应用内购买都是免费的。
测试人员
TestFlight 测试人员有两种角色:
-
内部测试人员
可以邀请多达 25 名内部测试人员。这些人员可以在 iTunes Connect 被分配管理员、开发人员、营销人员等角色。每个人员可以测试多达 30 个设备。内部人员可以访问所有用于测试的版本。
-
外部测试人员
可以邀请多达 10,000 名外部测试人员。可以将外部测试人员组织到自定义组中,并与每个组共享不同的构建。在外部测试之前,应用程序必须通过Beta应用程序审查,以确保其符合完整的 App Store审查指南。只有beta版本的第一个版本需要全面审查。
支持的应用
一次最多可测试 100 个应用程序,内部或外部应用程序,并且构建版在上传后的 90 天内保持活动状态。TestFlight 同时支持 iOS 应用程序,watchOS 应用程序,tvOS 应用程序和 iMessage 应用程序的多个版本。
具体见 Apple TestFlight - Apple Developer
总结
简单总结下,在不考虑 企业苹果账号无限设备安装 情况下,可以从以下几点衡量蒲公英和 TestFlight。具体使用哪种方式还是看公司或个人需要。
-
支持设备数量
蒲公英有证书设备数量限制,最多 100 台设备。而且要获取 UDID,不方便外部人员使用,可以公司内部小范围使用。
TestFlight 可添加 10,000 名外部测试人员,基数比较大。而且只需要邮箱即可,会自动通过邮件通知,不需要集成。内部测试人员可以集中在公司内部,外部测试人员没有限制。
-
使用复杂度
蒲公英上传比较方便,不需要审核。测试人员也不需要安装 App,只需要扫码就可以。可以短时间内快速更新构建版本。
TestFlight 需要上传到 iTunes Connect,并且对外测试时,第一次构建需要全面审核。而且测试人员需要安装 TestFlight App。适合在 App Store 上架前测试收集 App 运行情况。不适合短时间内快速的更新版本构建。
-
版本兼容性
两者都可以测试多个构建版本。
-
时效性
蒲公英基础用户的应用有 90 天的有效期,并且基础用户不能续签。高级用户 365 天,专业用户不限。
TestFlight 也是有 90 天测试时长,之后就不能再打开测试版本。可以从 App Store 中下载,或者构建新的测试版本。