完成 App 後,就要準備打包與上架了。首先來看打包 Android App 的步驟:
在 gitignore 加上 *.keystore 否則會有資安問題
建立 keystore ,輸入以下指令後回答他問你的問題,之後會自動生成一個效期一萬天的 keystore 。其中一個問題會問你密碼,他會是等等要上傳的密碼:
sudo keytool -genkey -v -keystore my-upload-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000
把 keystore 放到 android/app 裡
要把密碼存在本機的 gradle ,避免被 git 紀錄。先下載 gradle :
brew install gradle
若未來有需要查 gradle home path ,指令為:
brew info gradle
輸入 cd ~/.gradle
輸入 ls
確認有沒有 gradle.properties 這個檔案
7a. 如果沒有,用 vi gradle.properties 創建。輸完指令後會進入 vim 編輯器,將下方的內容貼到裡頭:
MYAPP_UPLOAD_STORE_FILE=my-upload-key.keystore
MYAPP_UPLOAD_KEY_ALIAS=my-key-alias
MYAPP_UPLOAD_STORE_PASSWORD=**\*** (剛剛創建 keystore 他問你密碼的那串密碼)
MYAPP_UPLOAD_KEY_PASSWORD=**\*** (剛剛創建 keystore 他問你密碼的那串密碼)
貼好後先按 Esc 回到一般模式,然後按 : 進入命令模式,再按 :wq
存檔離開。如果你不熟悉如何操作 vim ,可參考這個網站教學
7b. 如果有,進入該檔案並將步驟七的四行內容貼進去
signingConfigs {
release {
if (project.hasProperty('MYAPP_UPLOAD_STORE_FILE')) {
storeFile file(MYAPP_UPLOAD_STORE_FILE)
storePassword MYAPP_UPLOAD_STORE_PASSWORD
keyAlias MYAPP_UPLOAD_KEY_ALIAS
keyPassword MYAPP_UPLOAD_KEY_PASSWORD
}
}
}
buildTypes {
release {
...
signingConfig signingConfigs.release
}
}
10a. 目前要上架 Google Play都必須使用 aab 檔。在終端機輸入:
cd android && ./gradlew bundleRelease
而生成後的檔案,會放在 android / app / build / outputs / bundle / release / app-release.aab
10b. 若需生成 apk 的話,在終端機輸入:
cd android && ./gradlew assembleRelease
生成後的檔案會放在 android / app / build / outputs / apk / release / app-release.apk
npx react-native run-android --variant=release
但要注意 development 和 production 的 app ,不能同時存在於模擬器或裝置中。若曾裝過其中一種,現在要跳到另一種,請先解安裝不需要的那種。
完成打包後接著就是上架了。要上架 Google Play 需要有開發者帳號,註冊費為 25 鎂。你可以在這裡申請,由於流程蠻簡單,且我是直接使用公司團隊帳號,相關申請流程就不贅述。
有帳號後登入 Google Play Console 後台,點選建立應用程式,填寫相關資料、上傳圖片等等。
在側欄測試 / 公開測試的分頁,可以上傳新的檔案與填寫版本資訊。送出後 Google 會開始審核,待審核通過才可以再進入後台上架。審核時間不一定,根據經驗大概是一天。