> ## Documentation Index
> Fetch the complete documentation index at: https://supastack.dev/llms.txt
> Use this file to discover all available pages before exploring further.
> For the full documentation corpus in one file, fetch: https://supastack.dev/llms-full.txt

# 釋出到應用商店

區分可以執行的構建與使用者能夠安裝的正式版本。

## 逐步準備您的第一個商店提交

首先使用移動構建建立並測試本機開發構建。商店提交將編譯後的應用程式及其列表傳送給 Google 或 Apple 進行稽核；它與開啟 Expo Go 預覽不同。您需要自己的 Expo 和相關商店開發者帳戶、經過測試的 HTTPS 後端、最終應用程式名稱/圖示、螢幕截圖、支援聯絡人和公共隱私政策 URL。

在編輯器中開啟apps/mobile/app.json，並在第一次上傳之前設定自己產品的應用名稱、slug、ios.bundleIdentifier和android.package。開啟 apps/mobile/eas.json 並根據需要將 iOS 提交團隊的應用程式識別符號替換為您自己的應用程式識別符號。提供的識別符號是示例。閱讀 Mobile builds 瞭解確切的欄位，並要求您的編碼代理在構建之前檢查這兩個檔案。

如果未安裝eas，請執行npm install --global eas-cli。從儲存庫根目錄使用下面的登入命令，完成瀏覽器身份驗證，然後在“構建”中選擇一個平臺的構建命令，然後提交。閱讀構建的儀錶板日誌；在嘗試提交之前等待成功的 .aab 或 .ipa。 EAS 提示專案連結和簽名憑據；這些屬於您的帳戶，而不是套件賣家的帳戶。

上傳二進位制檔案後，在 Play Console 或 App Store Connect 中開啟您的應用，完成列表和所需的調查問卷，新增工作稽核者登入說明，然後提交以供稽核。上傳內部草稿並不屬於公開發布。如果稽核拒絕，請開啟拒絕中的確切政策連結並在重新提交之前更正該問題。

[準備本機構建和識別符號](https://supastack.dev/zh-tw/docs/mobile/builds.md)

[Expo當前店鋪提交說明](https://docs.expo.dev/submit/introduction/)

[Apple 當前的 App 稽核指南](https://developer.apple.com/app-store/review/guidelines/)

[Google Play 釋出說明](https://support.google.com/googleplay/android-developer/answer/9859455)

```
corepack pnpm --filter @supastack/mobile exec eas login
```


## 設定帳戶一次

商店提交需要三個帳戶：用於 EAS 構建和提交的免費 Expo 帳戶、Google Play Console 開發者註冊以及 iOS 的 Apple 開發者計劃會員資格。在構建之前安裝EAS CLI並執行eas login；兩家商店的註冊都可能需要幾天的時間來驗證，因此請儘早開始。

在首次上傳之前重新命名應用程式識別符號 - android.package 和 ios.bundleIdentifier 在 apps/mobile/app.json. 中作為 com.supastack.app 釋出。Google Play 在首次上傳時鎖定包名稱，因此錯誤的識別符號意味著新的應用程式條目而不是重新命名。


## 讓EAS管理簽名

apps/mobile/eas.json 定義開發、預覽和生產構建配置檔案。生產配置檔案允許 EAS 在其基礎設施上生成並儲存 Android 金鑰庫和 iOS 分發證書 - 稍後使用 eas credentials 檢查它們，並將本地金鑰庫保留在儲存庫之外。

自動提交 Play 需要在 Play Console → 設定 → API 訪問許可權下連結具有釋出許可權的 Google Play 服務帳戶 JSON 金鑰。將其儲存在 apps/mobile/secrets/play-store-service-account.json - eas.json 期望的路徑和 git-ignored 目錄。新應用的首次上傳仍然在 Play 管理中心手動進行； eas submit 接替第二個版本。


## 構建，然後提交

構建在 EAS 基礎設施上執行，因此二進位制檔案不需要安裝 Android Studio 或 Xcode。生產配置檔案會生成用於 Play 的商店就緒 .aab 和用於 App Store 的 .ipa，並具有遠端管理的版本號。預覽配置檔案為物理裝置 QA 生成內部分發 APK。

釋出的提交配置檔案將 Play 內部軌道作為草案版本作為目標 - 測試人員不會收到任何訊息，除非您在稽核通過後在 Play 管理中心內推廣它。

```
corepack pnpm --filter @supastack/mobile build:android
corepack pnpm --filter @supastack/mobile submit:android

corepack pnpm --filter @supastack/mobile build:ios
corepack pnpm --filter @supastack/mobile submit:ios

# Internal-testing APK for a physical device:
corepack pnpm --filter @supastack/mobile build:android:preview
```


## 填寫 Play 管理中心表格

對宣告的內容和二進位制檔案一樣進行審查：公共隱私政策 URL、資料安全表格、內容評級調查問卷、目標受眾和類別。回答來自應用程式真實行為的資料安全 - 該套件收集帳戶電子郵件進行身份驗證，將會話令牌儲存在平臺安全儲存中，並且僅與您配置的 API 對話；新增您的產品在頂部新增的任何內容。

對於需要登入的 iOS 應用程式，請向應用程式稽核提供有效的演示帳戶以及稽核說明中的說明。在選擇社交登入選項之前，請先檢視 Apple 當前的登入服務規則及其例外情況；要求取決於應用程式的實際登入流程。官方指南位於上面的首次提交部分。


## 先RevenueCat後面的門購買

當您的應用程式提供移動購買時，請配置已發貨的 RevenueCat 流程：設定 `MOBILE_PURCHASES_PROVIDER=revenuecat` 和 `EXPO_PUBLIC_MOBILE_PURCHASES_PROVIDER=revenuecat`，然後提供匹配的公共 iOS 或 Android SDK 金鑰。原生App支援購買和恢復；在任一之後，訪問都會從伺服器驗證的工作區權利重新整理。 Stripe Checkout 未在移動流程中使用。當購買停止或缺少所需配置時，請保持付費專區不可用。使用商店測試帳戶在 EAS 開發版本中驗證配置的商店產品、購買、恢復和權利重新整理。檢視當前的商店指南，瞭解適用於您的應用和區域的要求。


## 預提交清單

提交之前，請使用您自己的測試應用程式和商店帳戶確認以下每一項。

- android.package 和 ios.bundleIdentifier 重新命名為您擁有的識別符號
- 構建環境中的 EXPO_PUBLIC_API_URL 指向生產 API
- 隱私政策託管在公共 URL 上並連結在商品詳情中
- 資料安全表單與真實集合相匹配：身份驗證電子郵件、API 流量、您的產品新增的任何內容
- App Store 稽核說明中的工作模擬帳戶憑據
- 付費牆隱藏，或由經過驗證的 RevenueCat 權利支援
- 在物理裝置上驗證深層連結返回、會話恢復和登出
- 為每個商店準備的螢幕截圖和列表資產


## 從拒絕中恢復

拒絕帶有政策參考——修復所宣告的原因，而不是猜測症狀。資料安全不匹配通常意味著表單錯誤，而不是應用程式錯誤。需要登入的拒絕通常意味著評論筆記缺少模擬帳戶。重新提交併附上明確指出修復程式的發行說明。

完整的演練（憑證命令、控制台操作順序和拒絕手冊）位於儲存庫中的 docs/mobile-store-submission.md 中。


## 安裝與配置

原生應用釋出需要 Apple 和/或 Google 開發者賬戶、應用標識、簽名憑據和商店稽核。production EAS 配置會自動遞增商店構建號；submit.production 會將草稿提交到 Google Play 內部測試軌道。Bundle identifier 和應用 scheme 位於 apps/mobile/app.config.ts。

Web 部署和應用商店釋出節奏不同；API 應繼續相容最舊的受支援版本，或通過伺服器狀態控制新功能。

```
corepack pnpm --filter @supastack/mobile build
eas build --profile production --platform ios
eas build --profile production --platform android
eas submit --profile production --platform ios
eas submit --profile production --platform android
```


## 實現流程

啟用原生購買前，請先在 RevenueCat 配置專案、商店產品和權益。服務端 secret key 與 Webhook Authorization 值只能放在伺服器環境中；iOS 和 Android SDK key 是公開構建變數。生產環境必須關閉沙盒訪問。

將截圖、說明、隱私答覆和購買說明等商店資料納入產品自己的釋出材料。應用顯示購買許可權之前，RevenueCat 購買和恢復結果會先經過伺服器當前 subscriber 狀態驗證。


## 驗證與排障

在實體裝置上測試最終提交的安裝包：登入回撥、會話恢復、購買與恢復、伺服器權益重新整理、工作區切換、深連結及離線行為。成功的本地 Expo 匯出不是可提交商店的構建。

記錄構建號、商店軌道、稽核狀態和目標 API 環境。稽核被拒也是釋出流程的一部分；根據要求修正文案或功能標記，不要盲目猜測程式碼問題。

下一個介面：Desktop 欄會帶你瞭解 Tauri 外殼。


如果你想繼續完成設定，可以閱讀《[配置移動應用](https://supastack.dev/zh-tw/docs/mobile/configuration.md)》。


## 下一篇

[配置移動應用](https://supastack.dev/zh-tw/docs/mobile/configuration.md)
