这篇笔记是记录我在分发 App 给到别人测试的过程中踩的坑,希望能让你少踩一次,当然前提你需要有 Apple Developer 的账号。
参考 Expo 的 Share pre-release versions of your app 一文,你有以下三种方式分享你 App 的预览版。
- Internal distribution
- TestFlight 内部测试
- TestFlight 外部测试
内部分发#
- 通过内部分发的方式,每台测试设备需要使用临时的配置文件,并且每年只能使用此方法分发至最多 100 部 iPhone。
- 临时配置文件的需要需要获取设备的 UDID。要么你需要让用户自己通过 Mac Xcode 连接来获取,要么需要通过安装配置文件来获取(你需要建立和测试者之间的信任)。
- 每次注册测试设备到 Apple,你都需要等待 Apple 来处理,这可能会花上一天的时间。
- 每次注册完新的设备,你都需要重新进行 build。
- 这种方式分发的应用需要用户在手机上开启开发者模式。
综上,这种方式只适用于很小范围内的内部测试。
TestFlight 内部测试#
TestFlight 内部测试需要你为测试者分配你的 Apple Developer 账号权限,它不需要将你的 App 提交审核。所以它同样只适用于小范围的内部测试。
TestFlight 外部测试#
TestFlight 外部测试可以以多种方式来分发你的 App 到用户,比如通过邮箱添加或是链接添加,这也是最常见的外部测试方式。
它的要求是你需要提交 App 到审核,提交时还显示需要你提供用于测试人员测试的账号,但实际上你可以忽略提交这个信息。据我提交的体验来说,首次提交会需要一天的时间,但也不会不让通过。后面的审核都是即时通过的机审,很方便。
顺便一提,填联系信息时,手机号的报错并不正确,你只是需要添加上 +86。
总结#
在你想要分享你写的 App 给别人使用时,我推荐你首先尝试 TestFlight 外部测试来分发,即时你还没准备好审核。如果首次审核直接过的话,那就皆大欢喜了。
使用 expo 和 eas 来构建并提交 App 十分方便,你只需要:
npx eas build --profile production --local
npx eas submit -p ios
当然,别忘了更新你的 eas 配置:
{
"cli": {
"appVersionSource": "remote"
},
"build": {
"development": {
"developmentClient": true,
"distribution": "internal"
},
"preview": {
"distribution": "internal"
},
"production": {
"autoIncrement": true
}
},
"submit": {
"production": {
"ios": {
"ascAppId": "123456"
}
}
}
}