上一篇分享了 Apple App Store 的上架流程,這次來聊聊 Google Play。相較之下,Google Play 的流程直覺很多,不過第一次上架還是有一些眉角要注意。這篇把完整的流程和我個人的經驗心得整理出來。
註冊 Google Play Developer 帳號
首先到 Google Play Console 註冊開發者帳號。需要支付一次性的 USD $25 註冊費(大約台幣八百元),比蘋果每年 $99 便宜不少。
註冊過程中需要填寫:
- 開發者名稱(會顯示在 Play 商店上)
- 聯絡資訊(電子郵件、電話)
- 開發者地址
近幾年 Google 加強了身份驗證的要求,個人帳號需要提供身份證明文件。在台灣的話,準備好護照或身分證就可以了。驗證通常需要幾個工作天。
建立 App 與商店資訊
建立應用程式
在 Google Play Console 點「建立應用程式」,選擇:
- 預設語言(我通常選「繁體中文」)
- App 名稱
- App 類型(應用程式或遊戲)
- 是否免費(注意:一旦設為免費就不能改成付費)
商店資訊
商店資訊是使用者在 Play 商店看到的內容,要好好寫:
- 簡短說明:最多 80 個字,出現在搜尋結果中
- 完整說明:最多 4000 個字,詳細介紹 App 功能
- 螢幕截圖:至少 2 張,建議準備 5 到 8 張,每張 16:9 或 9:16
- 高解析度圖示:512 x 512 px 的 App Icon
- 精選圖片:1024 x 500 px,會出現在 Play 商店的 App 頁面頂部
螢幕截圖我建議加上一些文字說明和好看的背景,不要只是單純的 App 畫面截圖。可以用 Figma 或 Canva 來設計,效果會好很多。
內容分級
Google Play 使用 IARC(國際年齡分級聯盟)問卷來決定分級。你需要回答一系列關於暴力、色情、博弈等內容的問題。如實回答就好,系統會自動幫你分配適當的分級。
隱私政策
從 2024 年開始,所有 App 都必須提供隱私政策 URL。確保你的隱私政策頁面是公開可存取的,而且內容要涵蓋你的 App 實際收集和使用的資料。
簽署設定
上傳金鑰 vs Google Play 應用程式簽署
Google 推薦使用 Play App Signing,讓 Google 管理你的正式簽署金鑰。你只需要用「上傳金鑰」來簽署上傳的 App Bundle,Google 會在發布時自動替換成正式金鑰。
產生上傳金鑰
如果你還沒有上傳金鑰,用以下指令產生:
keytool -genkey -v -keystore upload-keystore.jks \
-keyalg RSA -keysize 2048 -validity 10000 \
-alias upload
系統會要求你設定密碼和填寫一些資訊。這個 .jks 檔案很重要,要妥善保管,千萬不要上傳到 Git。
設定 Gradle 簽署
在 android/ 目錄下建立 key.properties 檔案(記得加到 .gitignore):
storePassword=你的密碼
keyPassword=你的密碼
keyAlias=upload
storeFile=../upload-keystore.jks
然後修改 android/app/build.gradle:
def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file('key.properties')
if (keystorePropertiesFile.exists()) {
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}
android {
// ...
signingConfigs {
release {
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null
storePassword keystoreProperties['storePassword']
}
}
buildTypes {
release {
signingConfig signingConfigs.release
}
}
}
打包與上傳
建置 App Bundle
Google Play 現在要求上傳 Android App Bundle(.aab),不再接受 APK:
flutter build appbundle --release
產出的檔案在 build/app/outputs/bundle/release/app-release.aab。
上傳到 Play Console
在 Play Console 的「正式版」(Production)中建立新版本,上傳 .aab 檔案。你也可以先用「內部測試」(Internal Testing)或「封閉測試」(Closed Testing)來測試。
我建議第一次上架先用「內部測試」跑一輪,確認一切正常後再推到正式版。內部測試最多可以加 100 個測試人員,而且幾乎不需要審查等待時間。
版本管理策略
版本號設定
在 pubspec.yaml 中:
version: 1.0.0+1
每次上傳新版本,build number(+1 的部分)一定要遞增。我的習慣是正式版用 1, 2, 3...,如果同時有測試版本就用更大的數字區隔。
階段性發布
Google Play 支援階段性發布(Staged Rollout),可以先讓一小部分使用者更新,確認沒問題後再全面推送。我通常會設定先推送給 10% 的使用者,觀察個幾天沒有大量 crash 報告後再推到 100%。
資料安全性聲明
Google Play 要求填寫「資料安全性」(Data Safety)聲明,說明你的 App 收集了哪些使用者資料,以及這些資料的用途。
常見要聲明的項目包括:
- 裝置識別碼:如果你用了 AdMob,它會收集 Advertising ID
- Crash 日誌:如果用了 Firebase Crashlytics
- 效能資料:如果用了 Firebase Analytics
這個部分要如實填寫,Google 會抽查。如果發現實際行為和聲明不符,可能會被下架。
審查與上架
審查時間
Google Play 的審查通常比 App Store 快,大部分情況在幾小時到一天內就會完成。不過新開發者帳號的第一個 App 可能會花比較長的時間,我第一次大約等了兩天。
常見退件原因
- 隱私政策缺失或無法存取:確認 URL 可以正常打開
- 不符合目標 API 等級要求:Google Play 有最低 targetSdkVersion 的要求,目前是 API 34
- 權限使用不當:申請了不必要的權限但沒有合理說明
- 廣告相關政策違規:特別是兒童應用的廣告限制
上架後的優化
App 上架後,可以在 Play Console 看到各種數據:
- 安裝量與解除安裝量:了解使用者的留存情況
- 評分與評論:及時回覆使用者的反饋
- Android Vitals:監控 crash 率和 ANR 率
- 商店資訊實驗:可以 A/B 測試不同的圖示、截圖和描述文字
結語
Google Play 的上架流程整體來說比 App Store 友善,費用也低很多。對於剛入門的獨立開發者,我建議可以先從 Google Play 開始,累積一些經驗後再挑戰 App Store。
最重要的幾件事:保管好你的簽署金鑰、認真填寫商店資訊、確保隱私政策可存取。做好這幾點,上架過程基本上會很順利。
如果你的 App 有投放廣告,記得也要設定好 app-ads.txt,這部分我在 AdMob 整合的文章有詳細說明。祝大家上架順利!