应用测试分发 - 蒲公英、TestFlight

前言

最近又牵扯到了应用测试包的打包问题,为了避免频繁给测试真机安装应用,个人注册了蒲公英。继而简单整理了下 蒲公英和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,然后重试。

  • 其他一些原因

    1. 在导出 ipa 文件时,选择了 App Store 方式;

    2. 在导出 ipa 文件时,选择了 Ad-hoc 方式,但是没有添加设备 UDID;

    3. 在导出 ipa 文件时,选择了 In-house 方式,但证书已经过期;

    4. 在生成 App 安装包时,没有在 Xcode 中设置正确的 Architecture;

      具体操作方法是:在 Xcode - Build Settings - Architecture 中,增加 armv7、armv7s、arm64,以便所有设备都可以安装。然后,将 "Build active architecture only" 设置为 NO。

      查看各个 iOS 设备支持的 Architecture 类型。link

    5. App 支持的 iOS 系统版本,和当前设备系统版本不符;

    6. 设备上已经安装了 App,且已经安装的 App 和将要安装的 App 是用不同证书打包的;

    7. 网络中断或异常

    关于更多的异常可以参见蒲公英 文档中心

实现持续集成

可以通过 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 中下载,或者构建新的测试版本。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,294评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,493评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,790评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,595评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,718评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,906评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,053评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,797评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,250评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,570评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,711评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,388评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,018评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,796评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,023评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,461评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,595评论 2 350