React Native SDKのエラー処理

SDKから返されるエラーはすべて AdaptyErrorCode です。以下に例を示します。

デバッグ前に詳細ログを有効にしてください。 ほとんどの AdaptyError は、内部にStoreKit、Play Billing、ネットワーク、またはバックエンドのエラーをラップしています。詳細ログ(adapty.setLogLevel('verbose')純粋なRNまたはExpoのログ記録を参照)を有効にすると、ラップされたエラーがコンソールに出力され、実際の原因を特定しやすくなります。

これらの解決策で問題が解決しない場合は、サポートチームへのお問い合わせ前にその他の問題のセクションをご確認ください。より迅速にサポートできるよう、事前の確認をお願いしています。

try {
  const params: MakePurchaseParamsInput = {};
  await adapty.makePurchase(product, params);
} catch (error) {
  if (
    error instanceof AdaptyError &&
    error.adaptyCode === getErrorCode(ErrorCode['2'])
  ) {
    // payment cancelled
  }
}

システムStoreKitコード

エラーコード解決策
unknown0不明または予期しないエラーが発生したことを示すエラーコードです。
再試行するか、その他の問題セクションを参照してください。
clientInvalid1クライアントが試みた操作を実行する権限がないことを示すエラーコードです。
paymentCancelled2

ユーザーが支払いリクエストをキャンセルしたことを示すエラーコードです。

特別な対応は不要ですが、ビジネスロジックの観点から、ユーザーに割引を提供したり、後でリマインドしたりすることを検討できます。

paymentInvalid3支払いパラメーターのいずれかがApp Storeに認識されなかったことを示すエラーです。
paymentNotAllowed4ユーザーが支払いの承認を許可されていないことを示すエラーコードです。
storeProductNotAvailable5リクエストされたプロダクトがストアで利用できないことを示すエラーコードです。
アプリを再インストールしてみてください。
cloudServicePermissionDenied6ユーザーがCloudサービス情報へのアクセスを許可していないことを示すエラーコードです。
cloudServiceNetworkConnectionFailed7デバイスがネットワークに接続できなかったことを示すエラーコードです。
cloudServiceRevoked8ユーザーがこのクラウドサービスの使用許可を取り消したことを示すエラーコードです。
privacyAcknowledgementRequired9ユーザーがAppleのプライバシーポリシーをまだ承認していないことを示すエラーコードです。
unauthorizedRequestData10アプリが必要なエンタイトルメントを持っていないプロパティを使用しようとしていることを示すエラーコードです。
invalidOfferIdentifier11

オファーのidentifierが有効ではありません。例えば、App Storeでそのidentifierのオファーを設定していない場合や、オファーを失効させた場合などです。

AppStore Connectで必要なオファーを設定し、有効なオファーidentifierを渡していることを確認してください。

invalidSignature12支払い割引の署名が有効ではないことを示すエラーコードです。
missingOfferParams13支払い割引のパラメーターが不足していることを示すエラーコードです。
invalidOfferPrice14App Store Connectで指定した価格が無効になったことを示すエラーコードです。オファーは常に割引価格である必要があります。

カスタムAndroidコード

エラーコード解決策
adaptyNotInitialized20Adapty.activate メソッドでAdapty SDKを適切に設定する必要があります。React Native向けの設定方法を参照してください。
productNotFound22購入リクエストされたプロダクトがストアで利用できないことを示すエラーです。
invalidJson23ペイウォールのJSONが有効ではありません。Adapty ダッシュボードで修正してください。修正方法の詳細については、リモートコンフィグでペイウォールをカスタマイズするをご覧ください。
currentSubscriptionToUpdateNotFoundInHistory24更新が必要な元のサブスクリプションが見つかりません。
pendingPurchase25購入状態が「購入済み」ではなく「保留中」であることを示すエラーです。詳細については、Android Developerドキュメントの保留中のトランザクションの処理を参照してください。
billingServiceTimeout97Google Playが応答する前にリクエストが最大タイムアウトに達したことを示すエラーです。例えば、Play Billing Libraryの呼び出しによってリクエストされたアクションの実行に遅延が発生した場合などに起こります。
featureNotSupported98リクエストされた機能が、現在のデバイスのPlay Storeでサポートされていません。
billingServiceDisconnected99BillingClient を介したクライアントアプリとGoogle Play Storeサービスの接続が切断されたことを示す致命的なエラーです。
billingServiceUnavailable102Google Play Billingサービスが現在利用できないことを示す一時的なエラーです。ほとんどの場合、クライアントデバイスとGoogle Play Billingサービス間のどこかでネットワーク接続の問題があることを意味します。
billingUnavailable103

購入処理中にユーザーの課金エラーが発生したことを示すエラーです。発生する可能性がある例:

1. ユーザーのデバイスのPlay Storeアプリが古い。

2. ユーザーがサポートされていない国にいる。

3. ユーザーがエンタープライズユーザーであり、エンタープライズ管理者がユーザーの購入を無効にしている。

4. Google Playがユーザーの支払い方法に請求できない。例えば、クレジットカードの有効期限が切れている場合など。

5. ユーザーがPlay Storeアプリにログインしていない。

developerError105APIの不適切な使用を示す致命的なエラーです。
billingError106Google Play自体の内部問題を示す致命的なエラーです。
itemAlreadyOwned107消耗型アイテムがすでに購入されています。
itemNotOwned108アイテムに対してリクエストされたアクションが失敗したことを示すエラーです。

カスタムStoreKitコード

エラーコード解決策
noProductIDsFound1000

ペイウォールでリクエストしたプロダクトがApp Storeに登録されているにもかかわらず、購入可能な状態でないことを示すエラーです。このエラーに InvalidProductIdentifiers の警告が伴う場合があります。エラーなしに警告のみが表示される場合は、無視して問題ありません。

このエラーが発生している場合は、Code-1000 noProductIDsFound エラーの修正セクションの手順に従ってください。

productRequestFailed1002

現時点で利用可能なプロダクトを取得できません。考えられる原因:

- まだキャッシュが作成されておらず、かつインターネット接続もない。

cantMakePayments1003このデバイスではアプリ内課金が許可されていません。トラブルシューティングガイドを参照してください。
noPurchasesToRestore1004Google Playが復元する購入を見つけられなかったことを示すエラーです。
cantReadReceipt1005

デバイスに有効なレシートがありません。サンドボックステスト中に問題になることがあります。

特別な対応は不要ですが、ビジネスロジックの観点から、ユーザーに割引を提供したり、後でリマインドしたりすることを検討できます。

productPurchaseFailed1006プロダクトの購入に失敗しました。このエラーは内部のStoreKitエラーをラップしています。実際の原因は、ラップされたエラーを確認するか、詳細ログを有効にしてコンソールで確認してください。ラップされたエラーは通常、上記の表にあるStoreKitコード0〜14のいずれかで、最もよく見られるのは paymentCancelledpaymentInvalidpaymentNotAllowedinvalidOfferPrice です。特定の原因を特定できない場合は、新しいサンドボックスプロファイルを試してください。それでも失敗する場合はAppleサポートにお問い合わせください。
refreshReceiptFailed1010レシートが受信されなかったことを示すエラーです。StoreKit 1にのみ適用されます。
receiveRestoredTransactionsFailed1011購入の復元に失敗しました。

カスタムネットワークコード

エラーコード解決策
notActivated2002Adapty SDKが有効化されていません。
スプラッシュスクリーンや早期のUIフックが adapty.activate の完了前にAdaptyメソッドを呼び出している場合によく見られます。この症状は断続的で、実機とシミュレーターでタイミングが異なるため再現しないことがあります。他のSDK呼び出しをスケジュールする前に activateawait してください。完全なシーケンスについてはReact Native SDKの呼び出し順序を参照してください。
badRequest2003不正なリクエストです。
App Storeとの連携に必要なすべての手順を完了していることを確認してください。
serverError2004サーバーエラーです。
しばらくしてから再試行してください。問題が解決しない場合は、Adaptyサポートチームにお問い合わせください。
networkFailed2005ユーザーのデバイスのネットワーク接続に問題があることを示すエラーです。
VPNを無効にするか、モバイルデータ通信からWiFiに切り替えるか、またはその逆を試してください。
decodingFailed2006レスポンスのデコードに失敗したことを示すエラーです。
コードを確認し、送信するパラメーターが有効であることを確認してください。例えば、無効なAPIキーを使用している場合にこのエラーが発生することがあります。
encodingFailed2009リクエストのエンコードに失敗したことを示すエラーです。
missingURL2010リクエストされたURLがnilです。
analyticsDisabled3000アナリティクスをオプトアウトしているため、アナリティクスイベントを処理できません。
wrongParam3001いくつかのパラメーターが正しくないことを示すエラーです。
Adaptyのペイウォールビルダーを使用していてこのエラーでペイウォールを表示できない場合は、ペイウォールビルダーで Show on device をオンにしてください。
もう一つの考えられる原因は、ローカルのフォールバックファイルのバージョンがSDKバージョンと一致していないことです。ダッシュボードで新しいファイルをダウンロードしてください。
activateOnceError3005.activate メソッドを複数回呼び出すことはできません。
profileWasChanged3006操作中にユーザープロファイルが変更されました。
adapty.identify の実行中に別のメソッドが呼び出されると、進行中の呼び出しがまもなく切り替わるプロファイルに対して処理され、SDKがそれを拒否します。ユーザーアクションの呼び出しの前に必ず identifyawait してください。React Native SDKの呼び出し順序を参照してください。
unsupportedData3007データ形式がSDKでサポートされていないことを示すエラーです。
persistingDataError3100データの保存中にエラーが発生しました。
fetchTimeoutError3101フェッチ操作がタイムアウトしたことを示すエラーです。

その他の問題

まだ解決策が見つからない場合は、以下の手順をお試しください。

  • SDKを最新バージョンにアップグレードする: 最新のSDKバージョンはより安定しており、既知の問題の修正が含まれているため、常に最新版へのアップグレードをお勧めします。
  • サポートチームに連絡するか、サポートフォーラムで他の開発者に助けを求める
  • [email protected]またはチャットでサポートチームに連絡する: SDKのアップグレードができない場合や、アップグレードしても解決しない場合は、サポートチームにお問い合わせください。詳細ログを有効にしてログをチームと共有することで、問題の解決が早まります。関連するコードスニペットも添付できます。