搞定 iOS App 测试包分发,也就这么简单!😎

1,053 阅读7分钟

大家好,我是你们的老朋友,书接上篇,我们讲述了 IOS开发全链路流程 。这篇我们详细讲述下——测试。当APP开发完毕后。我们需要把新鲜出炉的 App 安装到测试人员(比如产品经理、QA 同学,有时候甚至是老板 😅)的手机上,让他们提前体验、找找 Bug。

然而,和安卓可以随便甩一个 .apk/ .aab 安装包不同,iOS 因为其封闭的生态系统,安装测试包的方式要“讲究”得多。很多刚入行的朋友常常在这里踩坑。

今天,我就给大家带来一篇保姆级的教程,彻底讲清楚 iOS 测试包分发的两种主流方式:TestFlightUDID Ad-Hoc。无论你是开发者还是测试者,看完这篇,保证你操作起来行云流水!

方式一:TestFlight - 苹果官方指定,省心又省力 ✅

TestFlight 是苹果官方的 App 测试工具,也是我个人首推的方式。它就像一个“测试专用的 App Store”,开发者上传版本,测试员通过 TestFlight App 下载,体验非常顺滑,管理起来也特别方便。

下面,我们来看看具体的操作流程。

开发者端操作

1. 邀请测试成员

首先,你需要把测试同学的 Apple ID(就是他们的邮箱)添加到你的 App Store Connect 团队里。

  • 登录 App Store Connect
  • 进入 “用户和访问”
  • 点击 + 号,填写测试同学的姓名和邮箱,分配一个合适的职能(通常给 “App 管理” 或 “营销” 即可,只要能访问 App 就行)。

image.png

2. 创建内部测试组

为了方便管理,我们可以把不同的测试人员放到不同的组里,比如 “QA 组”、“产品组”。

  • 进入你的 App,选择 “TestFlight” 标签页。
  • 在左侧 “内部测试” 旁边点击 + 号,新建一个群组,比如我们叫它 “CI”。 image.png

3. 将成员添加到测试组

现在,把我们第一步邀请的测试成员,加入到刚刚创建的测试组里。

  • 点击刚刚创建的 “CI” 组。
  • 在 “测试员” 模块中点击 + 号。
  • 在弹出的列表中,勾选你要添加的测试员,然后点击“添加”。 image.png OK,开发者这边的工作就完成了!是不是很简单?接下来,测试同学的邮箱里就会收到一封来自苹果的邀请邮件。

测试人员端操作

4. 在 iPhone 上下载 TestFlight App

这一步是必须的!去 App Store 搜索 “TestFlight” 并下载它。这是一个蓝色的飞机螺旋桨图标 ✈️。

5. 接受测试邀请邮件

打开你之前提供给开发者的那个邮箱,你会看到一封标题类似于 “... has invited you to test ...” 的邮件。

点开邮件,点击蓝色的 “View in TestFlight” 按钮。这时,邮件里会显示一个独一无二的邀请码 (Redeem Code)复制这个邀请码! image.png

6. 在 TestFlight 中兑换邀请码

  • 打开你手机上的 TestFlight App。
  • 点击右上角的 “兑换” (Redeem)
  • 把刚刚复制的邀请码粘贴进去,点击“兑换”。

image.png

7. 安装测试包

兑换成功后,你就能在 TestFlight 的 App 列表里看到开发者邀请你测试的 App 了。点击 “安装” (Install) 即可!

之后,每当开发者更新了测试版本,你的 TestFlight 都会收到通知,可以直接更新,非常方便。

TestFlight 流程图

为了让大家更清晰,我画了个流程图:

graph TD
    subgraph "开发者 (App Store Connect)"
        A["邀请测试员 (用户和访问)"] --> B["创建内部测试组 (TestFlight)"];
        B --> C["将测试员添加到组"];
        C --> D{发送邀请邮件};
    end

    subgraph "测试员"
        E["在 App Store 下载 TestFlight"];
        D --> F["收到并打开邀请邮件"];
        F --> G["复制邀请码"];
        G --> H["打开 TestFlight App, 点击'兑换'"];
        H --> I["粘贴邀请码并兑换"];
        I --> J["安装 App"];
    end

    E --> H;

方式二:UDID Ad-Hoc - 经典永不过时 🛠️

在 TestFlight 出现之前,UDID 分发是我们的唯一选择。虽然现在流程上比 TestFlight 繁琐一些,但在某些特定场景下,它依然有不可替代的优势。比如:

  • 测试设备没有登录 Apple ID。
  • 需要分发给大量设备,但不想一一邀请他们加入 App Store Connect。
  • 某些内网环境或特殊要求。

那么,UDID 到底是什么?它就是 Unique Device Identifier 的缩写,是每台苹果设备的唯一身份标识码,一串由40个字母和数字组成的字符串。

Ad-Hoc 分发的原理就是:开发者将测试设备的 UDID 注册到苹果开发者中心,然后用一个包含了这些 UDID 信息的“配置文件”来签名打包 App,这样这个 App 包(.ipa 文件)就只能在这些注册过的设备上安装。

流程概览

1. 获取测试设备的 UDID

这是第一步,也是最关键的一步。让测试同学提供他们设备的 UDID。有几种常用方法:

  • 通过 Finder (macOS Catalina 及以后) 或 iTunes (旧版 macOS 和 Windows)

    1. 用数据线将 iPhone 连接到电脑。
    2. 打开 Finder 或 iTunes,找到你的设备。
    3. 在设备信息摘要页面,点击序列号那一行,信息就会切换显示出 UDID。右键即可拷贝。
  • 通过第三方网站 (最方便) 让测试同学用 Safari 浏览器打开这个网址:蒲公英获取UDID 。这是最推荐的方式,对非技术人员最友好。

2. 在开发者中心注册设备 UDID

  • 开发者登录 Apple Developer
  • 进入 “Certificates, Identifiers & Profiles” -> “Devices”
  • 点击 + 号,选择平台 (iOS),填写设备名称(方便自己记忆),并粘贴从测试者那里获取到的 UDID。

3. 更新 Ad-Hoc Provisioning Profile

一个 Ad-Hoc 描述文件(Provisioning Profile)绑定了 App ID、开发者证书以及允许安装的设备 UDID 列表。

  • 进入 “Profiles” 页面。
  • 如果你已经有了一个用于 Ad-Hoc 的 Profile,点击它,选择 “Edit”。在设备列表中,勾选上你刚刚新添加的设备,然后保存并重新下载这个 Profile 文件。
  • 如果还没有,就新建一个 Profile,类型选择 “Ad Hoc” ,然后按引导关联 App ID、证书,并勾选所有需要测试的设备。

4. 使用新的 Profile 打包 .ipa 文件

  • 在 Xcode 中,确保你的 Signing & Capabilities 设置中,使用的是刚刚更新并下载的那个 Ad-Hoc Provisioning Profile。
  • 选择 Product -> Archive
  • 在 Archives 窗口中,选择刚刚归档的版本,点击 “Distribute App”
  • 分发方式选择 “Ad Hoc” ,然后一路 Next,Xcode 会自动使用正确的配置文件进行签名,最后导出 .ipa 文件。

5. 分发 .ipa 文件

现在你得到了一个 .ipa 文件,怎么给测试人员呢?

  • 上传到第三方分发平台:这是最常用的方式。像 fir.im蒲公英 等平台,你把 .ipa 文件传上去,它会生成一个二维码或短链接。测试者用手机扫描或打开链接,就可以直接安装了。
  • 通过 AirDrop (隔空投送) :如果测试者就在你旁边,这是最快的方式。
  • 通过 Apple Configurator 2:这是苹果官方的工具,可以把 .ipa 文件通过数据线直接安装到手机上,适合企业内部批量安装。

UDID 流程图

graph TD
    subgraph "测试员"
        A["通过 get.udid.io 等方式获取本机 UDID"] --> B["将 UDID 发送给开发者"];
    end

    subgraph "开发者"
        B --> C["登录开发者中心, 在 'Devices' 添加 UDID"];
        C --> D["在 'Profiles' 中, 编辑或创建 Ad-Hoc Profile, 包含新的 UDID"];
        D --> E["下载新的 Profile, 并在 Xcode 中配置"];
        E --> F["Archive 并导出使用 Ad-Hoc Profile 签名的 .ipa 包"];
        F --> G["将 .ipa 上传到分发平台(如 fir.im)"];
    end

    subgraph "测试员 (安装)"
        G --> H["通过链接或二维码下载安装 App"];
    end

总结:我该用哪个?

最后,我们来个简单的总结对比:

特性TestFlightUDID Ad-Hoc
官方性苹果官方,强力推荐传统方式,依然有效
便捷性非常高,App 内更新相对繁琐,依赖三方平台
设备限制内部测试100人,外部10000人每年每种设备类型100台
版本管理方便,有构建版本列表需手动管理 .ipa 文件
反馈可直接在 App 内截图反馈依赖其他沟通工具
适用场景日常开发测试、小范围公测企业内部分发、无 Apple ID 设备

总的来说,对于绝大多数团队和项目,我都强烈建议你优先使用 TestFlight。 它流程更简单、体验更接近线上、管理更方便。只有在一些特殊情况下,我们才需要求助于经典的 UDID Ad-Hoc 方式。

好了,关于 iOS 测试包分发的那些事儿,今天就聊到这里。希望这篇超详细的图文教程能帮到你!如果觉得有帮助,别忘了点赞、收藏、分享三连哦!👍