這篇筆記是記錄我在分發 App 給到別人測試的過程中踩的坑,希望能讓你少踩一次,當然前提你需要有 Apple Developer 的帳號。
參考 Expo 的 Share pre-release versions of your app 一文,你有以下三種方式分享你 App 的預覽版。
- 內部分發
- 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"
}
}
}
}