起きたこと
- TestFlightでテストしようとしたが全然reviewダイアログ表示されません
- 審査後promotion codeを発行して公開前に機能テストをしようとしたがダイアログ表示されたものの実際投稿押すとエラーが起きる。
調査
When your app calls this method while it’s in development mode, StoreKit always
displays the rating and review request view, so you can test the user interface
and experience. However, this method has no effect in apps that you distribute
for beta testing using TestFlight.
要するに、開発モードでは常にダイアログ表示しますがTestFlight経由で配ると常に表示されません。
では、promotionコードを発行してはいかがでしょうかというと
Promo codes for apps
When a customer downloads an app using a promo code, the app behaves just as it would
if it had been purchased. For example, the customer has the opportunity to update to
new versions of the app. However, customers can’t rate or review the app. Promo codes
can be used to redeem an unreleased app version, as long as the app is available on
the App Store. Promo codes for tvOS or multi-platform apps must be redeemed on an iOS
device. After the code is redeemed, the tvOS app appears in the customer’s purchase
history on the App Store for Apple TV. You can request up to 100 promo codes per
version of each platform your app supports.
reviewは書けないですと明記されていますね。
挙動としてはosバージョンに分かれています。
15.5では普通に投稿成功しましたがstoreに反映されません。
15.7ではレビュー画面のsubmitを押しても反応しません。
17.xでは「アイテム所持していません」とのエラーが表記されていました。
おまけ
- storeレビューのユーザー制限
If the person hasn’t rated or reviewed your app on this device, StoreKit displays the
ratings and review request a maximum of three times within a 365-day period.
If the person has rated or reviewed your app on this device, StoreKit displays the
ratings and review request if the app version is new, and if more than 365 days have
passed since the person’s previous review.
1ユーザーあたり評価はバージョンごとに年に一度投稿、未投稿の場合だと年に3回まで。
*同一ユーザーと判断するのは同じアカウントor同じ端末。
呼び出してもダイアログでない場合がありますのでユーザーの操作によって呼び出す(ユーザーに表示することを期待させる)ことはよくない。