创建和分享内部分发构建
编辑页面
了解内部发布构建、我们为什么需要它们,以及如何创建它们。
For the complete documentation index, see llms.txt. Use this Use this file to discover all available pages.
在本章中,我们将学习如何设置内部分发构建。

使用 EAS 创建一个内部分发构建,并直接与团队共享以进行测试。
内部分发构建
内部分发构建非常适合与团队成员共享更新,让技术和非技术相关方都能直接提供反馈。与开发构建不同,这些构建不需要运行开发服务器,从而简化了测试流程。
在内部分发应用的方式
Google 和 Apple 都提供了内置机制用于在内部共享应用:
- Android:使用 Google Play beta
- iOS:使用 TestFlight
不过,这两种传统方法都有其局限性。例如,TestFlight 一次只允许一个有效构建。
使用 EAS Build 加快分发
EAS Build 能加快这一流程。它会为我们的构建创建可分享的链接,并提供使用说明。它带有一个专为促进内部分发而设计的默认配置,提供了比传统方法更高效的替代方案。
创建内部分发构建
要使用 EAS Build 创建并分发构建,我们需要遵循以下步骤:
1
配置 preview 构建配置文件
在我们最初的 eas.json 设置中,已经有一个默认配置,其中包含一个专为内部分发设计的 preview 构建配置文件:
{ "build": { "preview": { "distribution": "internal" } } }
这就是创建第一个内部分发构建所需的全部内容。上面代码片段中的 preview 构建配置文件有一个 distribution 属性,其值设置为 internal。这个值允许我们与任何人分享构建 URL,以便他们可以在自己的设备上安装,并且不需要运行开发服务器来启动应用。
如前几章所述,对于非应用商店构建,Android 需要 .apk 格式,而 iOS 需要 .ipa 格式。内部分发构建同样适用这一点。当 distribution 设置为 internal 时,会自动为设备创建这些文件格式的应用二进制文件。
2
创建
创建内部分发构建需要 应用签名凭据。
Android 应用签名没有严格限制,允许安装任何兼容的 .apk 文件。在创建开发构建时,会为其生成一个新的 Android Keystore。因此,preview 构建不需要再生成新的 keystore。
另一方面,Apple 对 iOS 设备上的应用分发有更严格的规则。我们需要一个 ad hoc provisioning profile,其中明确列出允许运行该应用的设备。一些应用满足特定要求的组织,也许可以使用 Apple Developer Enterprise Program 将应用内部分发给更大范围的受众。
- 使用
preview配置文件发起 Android 构建:
- eas build --platform android --profile preview- 此命令会触发 EAS Build,并且在 EAS 仪表盘中,我们可以看到构建进度:
使用 ad hoc provisioning profile 签名的应用,可以由其 UDID 已注册到该 provisioning profile 的 iOS 设备安装。
- 要注册更多设备,请使用
eas device:create。此命令会注册一个 iOS 设备,并为我们提供一个可分享的 URL 或二维码用于设备注册:
- eas device:create-
此命令会注册一个用于安装应用的 iOS 设备,并生成一个可分享的 URL(或二维码)用于设备注册。
提示:此命令可在任何时候启用设备注册。不过,只有在注册之后创建的构建才能在新添加的设备上运行。 -
要创建 preview 构建,我们需要在
eas build命令中使用preview配置文件:
- eas build --platform ios --profile preview- 此命令会触发 EAS Build,并且在 EAS 仪表盘中,我们可以看到构建进度:
使用 eas build:resign 注册设备的替代方法
eas build:resign 命令可用于使用新的 ad hoc provisioning profile 对现有 iOS .ipa 进行重新签名,从而无需完整重新构建。
你在设置企业级 provisioning 吗?
Apple Enterprise Program 会员每年费用为 299 美元,而且并非所有组织都符合资格,因此你很可能会使用 ad hoc provisioning,它适用于任何普通的付费 Apple Developer 账户。
如果你拥有 Apple Developer Enterprise Program 会员资格,用户可以在无需预先注册其 UDID 的情况下将你的应用安装到设备上。他们只需将该配置文件安装到设备上,然后就可以访问已有构建。你需要在 eas build 过程中使用你的 Apple Developer Enterprise 账户登录,以设置正确的 provisioning。
如果你同时通过企业级 provisioning 和 App Store 分发应用,则每种场景都需要使用不同的 bundle identifier。我们建议以下两种方式之一:
- 在使用 Expo CLI 生成的项目中,使用 app.config.js 动态切换标识符。
- 在现有 React Native 项目中,为每个 bundle identifier 创建一个单独的
scheme,并在不同的构建配置文件中指定对应的 scheme 名称。
你在使用手动本地凭据吗?
如果是,请确保将你的 credentials.json 指向你通过 Apple Developer Portal 生成的 ad hoc 或企业级 provisioning profile(可以更新另一个用于其他分发类型的现有 credentials.json,或将其替换为一个指向相应 provisioning profile 的新文件)。请注意,EAS CLI 只会对你的本地凭据进行有限验证,而且你需要手动处理设备 UDID 注册。阅读更多关于使用本地凭据的内容。
3
4
总结
Chapter 6: Create and share internal distribution build
我们成功为 Android 和 iOS 创建了内部分发构建,iOS 使用了 ad hoc provisioning,并在同一设备上安装了多个应用变体。
在下一章中,了解面向开发者和面向用户的应用版本,以及如何自动管理它们。