iT邦幫忙

2023 iThome 鐵人賽

DAY 19
0
Mobile Development

React Native CLI 開發心法系列 第 19

DAY 19 上架 iOS 應用程式到 Apple Store 與審查被拒絕處理經驗談

  • 分享至 

  • xImage
  •  

延續上一篇 DAY 18 React Native iOS 上架前哨戰 - 使用 Apple Test Flight 發布測試,接著就是要將上傳至 Apple 的應用程式送審,審查通過後上架至 Apple store 上。

建立新版本

在 Apple Store Connect 中選擇要更新的 App ,進到 App Store 後,可以左手邊可以找到 + 然後點擊新增版本。

https://ithelp.ithome.com.tw/upload/images/20230924/20162496LyaQq4Rw5L.png

在這裡需要設定的是版本資訊,內容主要包含:

  • iOS 預覽和截圖:就是 Apple Store 頁面上顯示的 APP 示意圖。
  • 此版本的新增功能
  • App 的版本編號
  • App 審查資訊:要提供 App 使用的方法及帳號給 Apple ,以便在審查時使用。
  • 版本發佈:可以設定要不要在審查通過後自動發佈 APP。
  • 階段性發佈自動更新:可以決定是否立即向所有的使用者發佈更新或是七天內階段性的更新。
  • 重置 iOS 平均評分:可以決定要不要再釋出這個版本時重置評分。

上傳應用程式

https://ithelp.ithome.com.tw/upload/images/20230924/20162496zhroM9dGxU.png

在建置版本中,新增版本可以看目前已經上傳至 Apple Store 的 APP 版本,上傳的方式在 DAY 18 React Native iOS 上架前哨戰 - 使用 Apple Test Flight 發布測試有詳細的說明,選擇要送審的版本。

https://ithelp.ithome.com.tw/upload/images/20230924/20162496mqOE5Csjdj.png

在填完所有版本資訊後,按下儲存,再點擊新增以供審查。
https://ithelp.ithome.com.tw/upload/images/20230924/201624962AJDhl5L5K.png

送審

新增審查的版本後,點擊提交至 App 審查,就會進入開始審查的階段。

https://ithelp.ithome.com.tw/upload/images/20230924/201624968xWKncwvIv.png

根據筆者的經驗 Apple 審查的時間非常久,而且每次等待的時間都不同,通常都要七天左右,所以上架的計畫記得要預留一些時間,畢竟有時候審查不一定會通過,必須花時間修正,再重新送審。

上架

審查後 Apple 會寄信通知你,也可以從 Apple Store Connect 的 App 審查 中看到審查結果。

https://ithelp.ithome.com.tw/upload/images/20230924/20162496HVUg4BoDnl.jpg

如果審查通過就可以依照你的設定自動發佈或手動發佈,就可以在你的 Apple Store 上看到更新後的版本了,(註:每個帳號看到新版本的時間不一樣)。

審查被拒絕

以下分享筆者送審被拒絕的經驗以及最後如何解決。

https://ithelp.ithome.com.tw/upload/images/20230924/20162496DmcgjafjyT.png

發生什麼事?

Guideline 3.1.1 - Business - Payments - In-App Purchase
In-app purchase gives developers the flexibility to support a variety of business models in their apps. However, your app unlocks or enables additional functionality with mechanisms other than the App Store, which is not appropriate under App Store Review Guideline 3.1.1.
Specifically, your app uses promo codes to unlock paid services.

從上方 Apple 的訊息中,指出這次的送審內容違反了 Guideline 3.1.1 - Business - Payments - In-App Purchase ,認為我們的 App 使用了其他的機制繞過 App Store IAP 收費的機制,解鎖了 App 付費版的內容或功能。

什麼是 IAP ( In-App Purchase) ?我的 APP 需要嗎?

App Store Review Guidelines
首先,要先搞懂什麼是 IAP?
Apple IAP(In-App Purchase),允許 iOS 應用程式中提供額外的數位內容、服務、功能或訂閱等付費項目,以提供更豐富的使用體驗或增值服務給用戶。當用戶在應用程式內進行 In-App Purchase 時,他們可以購買虛擬商品、解鎖特定功能或訂閱服務,而所有的交易和付款都在 App Store 中完成。

Apple IAP 提供了以下主要功能:

  1. 虛擬商品:開發者可以在應用程式中提供虛擬商品,例如遊戲中的遊戲幣、道具、等級提升等。用戶可以使用真實貨幣購買這些虛擬商品,進而在應用程式內使用。
  2. 解鎖功能:開發者可以在應用程式中提供一些功能或內容的試用版,並透過 IAP 讓用戶付費解鎖這些功能,以獲得完整的使用體驗。
  3. 訂閱服務:開發者可以提供一些需要持續付費的服務,例如內容訂閱、新聞服務、視頻串流等。用戶可以訂閱這些服務,並在一段時間內持續享受相應的服務內容。
  4. 付費內容:有些應用程式提供部分內容免費,但提供付費版以獲得更多或更高品質的內容。這些付費內容可以透過 IAP 購買。

Apple IAP 為開發者提供了一個方便且安全的機制,讓他們可以在應用程式中輕鬆實現付費功能。同時,這也確保了用戶的付款安全,並讓用戶能夠更容易地管理和取消訂閱。藉由 IAP,開發者可以為他們的 App 增加額外的獲利機會,同時為用戶提供更多樣性的選擇和更好的使用體驗。

結合 Apple 給的訊息中所附的截圖,可以得知 Apple 認為這次提交的 App 中兌換碼的功能違反了規定,其認為應該要採取 Apple 的 IAP 機制,但實際上,這個兌換碼的功能,其實是這樣的:使用者免費的取得兌換碼,輸入後將會兌換成點數,點數是用來折抵實體的服務。

第一,兌換碼的取得是無償的,不會涉及付費;
第二,由兌換碼所取得的點數只能應用在實體服務上,並非使用在應用程式中的服務。
可以說與上方 IAP 的機制一點關係也沒有,Apple 誤會大了!

解決的方法

因為不確定哪個方式有效所以採用了兩個方法,分別是在 App 中說明、向 Apple 申訴:
(一)、在 App 說明功能應用
在兌換碼的頁面中,加註兌換碼所兌換的點數使用的範圍僅為實體服務等文字敘述。
(二)、向 Apple 申訴
https://developer.apple.com/contact/request/app-review/appeal/

至以上的網址,提交你的申訴信。

申訴信要怎麼寫?

懶人作法,請 chatGPT 產出一封 Apple app 開發者的申訴信: 內容包含說明提交的 app 內容並沒有違反3.1.1 - In-App Purchase 的原因,以及強調兌換碼本身是免費的,兌換碼所兌換的點數為折抵實體服務。以下就是所產出的信件內容:

Dear Apple App Review Team,
We are appealing the accusation that our app violates guideline 3.1.1 - In-App Purchase. We believe our app is compliant and want to provide additional information to support our case.
Our app does not violate 3.1.1 - In-App Purchase. We have reviewed our app thoroughly and ensured it adheres to Apple's guidelines. There are no internal or embedded purchasing features, and all content is provided free of charge.
Regarding the redemption code feature, the codes themselves are free. They allow users to redeem points for discounts on our physical services, such as restaurant reservations or ticket purchases. This does not involve In-App Purchases.
If there are specific allegations or evidence, we are willing to address and resolve them promptly. We can provide documentation and detailed app descriptions to demonstrate compliance.
Thank you for your attention and cooperation.
Best regards,
[Your Name]
[Your Contact Information]

最後,終於送審通過!

到底是因為寫信申訴還是增加文字說明才讓審核通過,不得而知,但有順利解決問題並讓 APP 順利上架就好了。

參考資料

更新 App

本文部分內容同步於此


上一篇
DAY 18 React Native iOS 上架前哨戰 - 使用 Apple Test Flight 發布測試
下一篇
DAY20 解析 React Native 現行架構(Current Architecture)原理
系列文
React Native CLI 開發心法31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言