iOS 17 App 程式設計實戰心法(SwiftUI)

第 27 章
App Store 上架

Don't let people tell you your ideas won't work. If you're passionate about an idea that's stuck in your head, find a way to build it so you can prove to yourself that it doesn't work.

- Dennis Crowley, FourSquare

恭喜你 !在進行 App 開發的最後步驟之前,你可能已歷經了數週或數月的努力。經過 Beta 測試以及大量的錯誤修復後,你的 App 終於可以上傳了。

在上一章中,你已經將 App 二進位檔(Binary )上傳到 App Store Connect,因此將 App 提交到 App Store 非常簡單。提交 App 後,Apple 的 App 審查團隊會對其進行審核,然後再將其發布到 App Store。對於第一次送審的App 開發者而言,向 App Store 提交 App 是一個夢魘,你可能需要提交多次才能通過 Apple 的審核。

在本章中,我會引導你完成 App 的上架程序,並且給你一些指引,以最大程度減少被退件的可能性。

做好準備與充分測試

就開發者的角度來看,App 的審核過程如同黑箱作業,我依然記得我向 App Store 提交第一個 App 後被退件的那種受挫感,從那時起,我了解到你可以採取一些措施來最大程度減少被退件的可能性。

  1. 徹底測試你的 App -
  2. 在提交 App 之前,你有做過測試嗎?若你已學習過前兩章的內容,你應該已經在實機上測試了你的 App,並且邀請了一群 Beta 測試者做過測試。不過,讓我再次重申測試的重要性,你不應該只用內建的模擬器測試你的 App,你必須至少在 iOS 實機上進行測試, 如果這個 App 是通用的,則記得要在 iPhone 與 iPad 上測試。

    假使你的 App 整合其他的服務(如 iCloud ),則確認你已在行動通訊與 Wi-Fi 網路測試過。可能的話,跟著上一章的說明來對你的 App 進行 Beta 測試,如果你提交的 App 無法正常運作或者會無預期當機,則 Apple 一定會退件。

    另外,請記得在一般及特殊的狀況下測試你的 App。假使你的 App 需要網路才能正常運作,那麼若是在沒有訊號的情況下會發生什麼事情呢?App 是否會當機或者只是顯示出錯誤訊息呢?這些都是你必須注意的事情,並確保你的 App 在所有情況下都能夠正常運作。

  3. 遵循 App Store 的審核指南 - 儘管我們認為App Store 的審核過程如同黑箱作業,Apple 也有提供審核指南給開發者參考, 你可以訪問該審核指南(https://developer.apple.com/app-store/review/guidelines/.))。雖然我建議你仔細閱讀一遍,但主要有以下重點:

    • App 當機會被退件。
    • App 若存在錯誤會被退件。
    • 不符合開發者描述的 App會被退件。
    • 包含與 App描述不一致的未記錄或隱藏功能的 App會被退件。
    • 使用非公開 API的 App會被退件。

你也應該注意你的 App 標題是否包含任何 Apple 的商標,我曾經建立過一個有關 iOS 的圖書 App,並且取名為「iPhone Handbook」,而這個 App 立刻被 Apple 退件,之後我修改 App 標題為「Handbook for iPhone」,就順利通過審核了。Apple 允許 Apple 這個字的用法是在「作為參考」的情況才行,像是使用「for」的字眼。

送審的詳細資訊可以參考Apple 的指南: https://www.apple.com/legal/intellectual-property/guidelinesfor3rdparties.html

  1. 符合使用者介面要求 - 你的App UI應該是簡潔且友善使用者操作;否則,Apple會因 UI 設計不合格而退件。你可以進一步參考 《UI Design Dos and Don'ts》 來了解詳細資訊。
  2. 失效連結 - 所有嵌入在 App 的連結都必須有作用,失效連結是不被允許的。
  3. 圖片與文字都是最終版 - 在上傳你的App做審查之前,所有 App的圖片與文字都要 是最終版本,如果有包含任何占位符內容(Placeholder Content ),你的 App 會被退件。

若想進一步了解常見會造成App 被退件的原因,請參考 https://developer.apple.com/app-store/review/rejections/。另外,不要忘記看《App Store Review guidelines》 (https://developer.apple.com/app-store/review/guidelines/)。

上傳你的 App 至 App Store

若是你還沒有讀過前一章,則返回閱讀在 App Store Connect 建立 App 紀錄並上傳 App 打包檔的程序。

N現在至 https://appstoreconnect.apple.com ,並選取「My Apps」,然後選擇「FoodPin App」。假設你已經完成在 App Information 中的所有必需資訊,在側邊列選單中點選「Pricing and Availability」,若是你之前設定過價格,這是再次檢查你的設定的好機會。App Store Connect 的最新版讓開發者可以規劃價格變動,假設你希望 App 剛上架時可免費下載,而過一段時間後,就改為付費版 App,這個「Plan a Price Change」選項即是可以幫你提前規劃未來的價格變動,如圖 27.1 所示。

圖 27.1. 填寫生效日期與定價
圖 27.1. 填寫生效日期與定價

接著到「Prepare for Submission」選項,向下捲動到 Build 區塊,點選「Select a build before you submit your app」按鈕來加入建置版本,並選擇要提交的建置版本,如圖 27.2 所示。

圖 27.2. 選擇要提交的建置版本
圖 27.2. 選擇要提交的建置版本

最後,儲存變更並點選「Submit for Review」按鈕來上傳你的 App,如圖 27.3 所示。填寫好出口合規資訊(Export Compliance )、內容權利(Content Rights )及廣告識別碼(Advertising Identifier )後,你的 App 就可以提交了。

圖 27.3  點選「Submit for Review」按鈕來提交你的 App
圖 27.3  點選「Submit for Review」按鈕來提交你的 App

成功提交你的 App 後,狀態會變更為等待審核。

現在,下一步是什麼呢?除了耐心等待以外,你也無法做任何事。在過去,你的 App 需要等待大約七天才能獲得審核結果;近年來,Apple 開始將審核時間從一週縮短到兩天以內。

平均而言,50% 的 App 在 24 小時內就會開始審核,大約 90% 的 App 在 48 小時內會做審核。

https://developer.apple.com/support/app-review/

因此,請保持耐心,不管你的 App 通過與否,你將會收到電子郵件的通知。

本章小結

再一次恭喜你 !你已經建立了真實App,並學習如何上架到App Store。我期許你的App 第一次提交就可通過Apple 的審核,即使被退件,也不要失望,許多iOS 開發者都有相同的經驗,只需解決問題並重新提交你的App 即可。

最後,謝謝你閱讀本書,這是一段漫長的旅程,我期望你一切順利,能夠很快發布你的App。若是你的App 已通過審核,我很樂意聽到你的成功故事,歡迎隨時 Email 至 https://facebook.com/groups/appcoda

本書尚未結束,下一章我將介紹幾個主題。