16

そのため、(IAP 経由で) サブスクリプションが必要なアプリがあり、Today ウィジェットを提供しています。ウィジェット内 (およびアプリ内) で RMStore を使用して、バンドル内の App Receipt でアクティブなサブスクリプションを確認します。TestFlight 経由でインストールした場合を含め、サンドボックスで正常に動作します。しかし、今日、アプリは Apple によって承認され、実店舗バージョンをテストするとすぐに、メイン アプリはアプリの領収書でユーザーの購入を確認しましたが、Today 拡張機能はアプリの領収書を読み取っていませんでした。したがって、サブスクリプションが見つかりませんでした!

Today 拡張機能とメイン アプリの両方が、まったく同じコードを使用して、アプリの領収書を読み取り、サブスクリプション情報を探しています。いったいなぜ、メインアプリでは機能するのに拡張機能では機能しないのでしょうか? これは既知の問題ですか? StoreKit自体ではなく、RMStoreと関係がありますか? 私がしなければならない賢い/違うことはありますか?

問題はレシートの検証に関係しているのではないかと考えています。たとえば、拡張機能のサンドボックスと App Store では、バンドル識別子のようなものは異なりますか?

App Store に再提出せずに潜在的なソリューションをテストする方法は文字通り私にはありません。リリースされたらテストし、壊れている場合はストアから引っ張り出します。彼らが実際に得ていないもの。

4

1 に答える 1

8

すべての領収書 (アプリの購入とアプリ内購入) は、アプリケーション バンドル内のファイルに保存されます。アプリ拡張機能は、アプリケーション バンドル内にネストされたバンドルに存在するため、外側のバンドルのレシート ファイルにアクセスできる場合は驚くでしょう (ただし、 を呼び出して確認する価値がありますappStoreReceiptURL)。

そのため、レシートに関する情報 (つまり、レシート自体、またはレシートを処理した結果のいずれか) は、通常の手段、つまり、共有コンテナーおそらくファイル調整を使用して、含まれているアプリから拡張機能に渡す必要があります。

于 2015-05-29T01:16:11.007 に答える