xChar
·3 months ago

这篇笔记是记录我在分发 App 给到别人测试的过程中踩的坑,希望能让你少踩一次,当然前提你需要有 Apple Developer 的账号。

参考 Expo 的 Share pre-release versions of your app 一文,你有以下三种方式分享你 App 的预览版。

  1. Internal distribution
  2. TestFlight 内部测试
  3. 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"
      }
    }
  }
}
Loading comments...