iT邦幫忙

2023 iThome 鐵人賽

DAY 15
0
Mobile Development

React Native CLI 開發心法系列 第 15

DAY 15 使用 Firebase 發佈 React Native 測試版 APP - 發佈應用程式

  • 分享至 

  • xImage
  •  

使用 Firebase 發佈測試版本的應用程式的好處在於可以便於同時管理跨平台的應用程式,同時可用 Performance 的監控各項效能指標與使用 Crashlytics 深入瞭解發布的應用程式穩定性。今天我們先來討論如何使用 Firebase 發佈測試版的應用程式給測試人員,有關於 Performance 和 Crashlytics 的部分後面會再另外討論。

https://ithelp.ithome.com.tw/upload/images/20230920/20162496855OFihn59.png

設定測試人員名單

在 APP Distribution 的頁面中,點選測試人員和群組,開始新增測試的群組名稱,並輸入群組人員的 email,邀請他們加入測試。也可以使用 .csv 檔案直接匯入名單。

https://ithelp.ithome.com.tw/upload/images/20230920/201624961P3z5Uu8BW.png

https://ithelp.ithome.com.tw/upload/images/20230920/20162496SWq5soshmI.png

iOS 需要在 Apple developer 中註冊設備 ID (UDID),在 Apple developer / Certificates, Identifiers & Profiles / Devices 中新增 UDID:
https://ithelp.ithome.com.tw/upload/images/20230920/201624969H75YtuwC7.png

iOS 裝置註冊

將測試版應用程式發佈至 Firebase APP Distrbution

Andriod

根據 DAY 12 React Native Android 打包 - APK & AAB 整理的 scripts。

{
  //開發環境 Release 版本的 APK
  "android:dev-release-apk": "cd android && ./gradlew assembleDevelopmentRelease"
}

先產生開發環境版本的 APK 檔案。

yarn android:dev-release-apk

把產生的 APK 放到 firebase 上。

https://ithelp.ithome.com.tw/upload/images/20230920/20162496kdNd6vIq4x.png

上傳完成可以設定要發布測試給哪些人員,然後可以選擇填寫版本的資訊。

https://ithelp.ithome.com.tw/upload/images/20230920/20162496Y0GdCaZEz0.png

iOS

根據 DAY 13 React Native iOS 打包 - IPA 整理的 scripts。

{
    "build_archive": "xcodebuild -workspace ./ios/你的Xcode workspace 文件的名稱.xcworkspace -scheme 你的應用程式方案名稱 -sdk iphoneos -configuration Release Provisioning_Profile=授權文件名稱_adhoc Development_Team=你的開發團隊ID archive -archivePath ./ios_ipa_build/你的文件名稱.xcarchive archive",
    "build_ipa": "xcodebuild -exportArchive -archivePath ./ios_ipa_build/你的應用程式名稱.xcarchive -exportPath ./ios_ipa_build -exportOptionsPlist ./ios/ExportOptions.plist"
}

打包測試版的 ipa 檔案

yarn build_archive && build_ipa

跟剛剛的步驟一樣,把 ipa 檔案上傳,然後建立新版本,設定要發布測試人員。

測試裝置安裝

接受測試邀請

https://ithelp.ithome.com.tw/upload/images/20230920/201624961z756764uV.jpg

在手機上登入 email,使用 Google 登入並接受 firebase 測試邀請,就可以安裝應用程式。

https://ithelp.ithome.com.tw/upload/images/20230920/20162496dF8QcqGyna.jpg

https://ithelp.ithome.com.tw/upload/images/20230920/20162496aUYNJNpulN.jpg

iOS 需另外設定配置文件:在測試應用程式的頁面中,點擊註冊設備。出現提示時,下載 Firebase 配置文件,然後在 iPhone 的"設置"應用中安裝該配置文件。

安裝 Firebase App Tester

Firebase App Tester 可以一次管理多個測試版本。

下載 :https://appdistribution.firebase.google.com/mobilerequired

使用 command line 發布

登入 firebase CLI

firebase login

https://ithelp.ithome.com.tw/upload/images/20230920/20162496tYzSaU7OhM.png

新增 release-note.txt

在專案根目錄底下加入 release-note.txt,內容就可以填寫版本資訊。

https://ithelp.ithome.com.tw/upload/images/20230920/20162496a2M5tqPBnz.jpg

上傳 Android apk

firebase appdistribution:distribute ./android/app/build/outputs/apk/development/release/app-development-release.apk 
--app 應用程式 ID
--release-notes-file './release-note.txt' 
--groups 'android-qa'

--app 後方加入 應用程式 ID,可以在 google-services.json 中 的 mobilesdk_app_id 找到。
--release-notes-file 後面放入 release-note.txt 的目錄位置,這樣在發布時就會自動把版本內容加入信中。
--groups 可以指定要發布的測試人員群組

上傳 iOS ipa

firebase appdistribution:distribute
./ios_ipa_build/應用程式名稱.ipa 
--app 應用程式 ID
--release-notes-file './release-note.txt' 
--groups 'ios-qa' 

--app 後方加入 應用程式 ID,可以在 google-services.json 中 的 GOOGLE_APP_ID key找到。

小結: 一鍵打包+發佈 firebase 指令

只要設定一次,之後一個指令就可以把測試版本的應用程式打包跟發佈到測試人員手上了~

package.json

{
    "android:dev-deploy":"yarn android:dev-release-apk && firebase appdistribution:distribute ./android/app/build/outputs/apk/development/release/app-development-release.apk --app 應用程式 ID --release-notes-file './release-note.txt' --groups 'android-qa'",
    "ios:dev-deploy": "yarn build_archive && build_ipa && firebase appdistribution:distribute ./ios_ipa_build/應用程式名稱.ipa --app 應用程式 ID --release-notes-file './release-note.txt' --groups 'ios-qa'" 
}

上一篇
DAY 14 使用 Firebase 發佈 React Native 測試版 APP - 多種環境配置
下一篇
DAY 16 React Native Android 上架前哨戰 - 使用 Google Play 商店發布測試
系列文
React Native CLI 開發心法31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
DL
iT邦新手 5 級 ‧ 2023-10-10 16:08:47

請問透過firebase去管理內部測試版本
跟直接上傳到App Conect Store的TestFlight管理
筆者對這兩部分差異有什麼想法嗎~?

Ashley iT邦新手 4 級 ‧ 2023-10-10 16:37:43 檢舉

iOS APP 的 Bundle identifier 是代表唯一識別的 App unique id,所以當你使用上傳到 App Conect Store 的 TestFlight 時,你所安裝的測試 app 會覆蓋掉原來的你從 app store 下載下來的 app ,因為 Bundle identifier 是一樣的。

使用 firebase 的原因在於我會再申請一個 Bundle identifier 例如: com.專案名稱.dev ,這樣在安裝測試的時候就不會影響到你原本裝的正式版本的 app ,也方便比對差異。

至於使用 App Conect Store 的時機,通常是我在確定要發佈新的版本前夕做最後的確認,如果沒問題的話就可以直接送審,有要再修正的話就再更新 build number 後重新打包上傳就可以了。

DL iT邦新手 5 級 ‧ 2023-10-10 17:16:25 檢舉

哦哦,感謝分享。
因為我目前所接手的專案都還未正式上線,
提供測試的方式目前都只透過上傳成TestFlight給測試人員與PM
所以想了解一下筆者的看法!

我要留言

立即登入留言