ÿÿ Capacitorã§ã®ã‚¨ãƒ©ãƒ¼å‡¦ç† | Adapty ドキュメント

Capacitor SDKã§ã‚¨ãƒ©ãƒ¼ã‚’処ç†ã™ã‚‹

SDKãŒè¿”ã™ã‚¨ãƒ©ãƒ¼ã¯ã™ã¹ã¦ AdaptyError インスタンスã§ã™ã€‚以下ã¯ãã®ä¾‹ã§ã™ã€‚

デãƒãƒƒã‚°å‰ã«è©³ç´°ãƒ­ã‚°ã‚’有効ã«ã—ã¦ãã ã•ã„。 ã»ã¨ã‚“ã©ã® AdaptyError ã¯ã€StoreKitã€Play Billingã€ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã€ã¾ãŸã¯ãƒãƒƒã‚¯ã‚¨ãƒ³ãƒ‰ã®ã‚¨ãƒ©ãƒ¼ã‚’ラップã—ã¦ã„ã¾ã™ã€‚詳細ログを有効ã«ã™ã‚‹ã¨ï¼ˆadapty.setLogLevel({ logLevel: 'verbose' }) — ログ設定をå‚照)ã€ãƒ©ãƒƒãƒ—ã•れãŸã‚¨ãƒ©ãƒ¼ãŒã‚³ãƒ³ã‚½ãƒ¼ãƒ«ã«å‡ºåŠ›ã•れã€å®Ÿéš›ã®åŽŸå› ãŒã‚ã‹ã‚Šã¾ã™ã€‚AdaptyError ã® detail プロパティã¯ãƒ­ã‚°ãƒ¬ãƒ™ãƒ«ã«é–¢ä¿‚ãªã値ãŒå…¥ã£ã¦ã„ã¾ã™ãŒã€è©³ç´°ãƒ­ã‚°ã‚’使ã†ã¨ã‚³ãƒ³ã‚½ãƒ¼ãƒ«ã«ã‚‚表示ã•れã¾ã™ã€‚


try {
  const result = await adapty.makePurchase({ product });
  
  // Handle purchase result
  if (result.type === 'success') {
    console.log('Purchase successful:', result.profile);
  } else if (result.type === 'user_cancelled') {
    console.log('User cancelled the purchase');
  } else if (result.type === 'pending') {
    console.log('Purchase is pending');
  }
} catch (error) {
  if (error instanceof AdaptyError) {
    console.error('Adapty error:', error.adaptyCode, error.localizedDescription);
    
    // Handle specific error codes
    switch (error.adaptyCode) {
      case ErrorCodeName.cantMakePayments:
        console.log('In-app purchases are not allowed on this device');
        break;
      case ErrorCodeName.notActivated:
        console.log('Adapty SDK is not activated');
        break;
      case ErrorCodeName.productPurchaseFailed:
        console.log('Purchase failed:', error.detail);
        break;
      default:
        console.log('Other error occurred:', error.detail);
    }
  } else {
    console.error('Non-Adapty error:', error);
  }
}

エラープロパティ

AdaptyErrorクラスã¯ä»¥ä¸‹ã®ãƒ—ロパティをæä¾›ã—ã¾ã™ï¼š

プロパティ型説明
adaptyCodenumber数値エラーコード(例:cantMakePaymentsã®å ´åˆã¯1003)
localizedDescriptionstringユーザーå‘ã‘ã®ã‚¨ãƒ©ãƒ¼ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸
detailstring | undefined追加ã®ã‚¨ãƒ©ãƒ¼è©³ç´°ï¼ˆä»»æ„)
messagestringコードã¨èª¬æ˜Žã‚’å«ã‚€å®Œå…¨ãªã‚¨ãƒ©ãƒ¼ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸

エラーコード

SDKã¯ã‚¨ãƒ©ãƒ¼ã‚³ãƒ¼ãƒ‰ã‚’扱ã†ãŸã‚ã®å®šæ•°ã¨ãƒ¦ãƒ¼ãƒ†ã‚£ãƒªãƒ†ã‚£ã‚’エクスãƒãƒ¼ãƒˆã—ã¦ã„ã¾ã™ï¼š

ErrorCodeName定数

文字列識別å­ã‚’数値コードã«ãƒžãƒƒãƒ”ングã—ã¾ã™ï¼š


ErrorCodeName.cantMakePayments // 1003
ErrorCodeName.notActivated // 2002
ErrorCodeName.networkFailed // 2005

ErrorCode定数

数値コードを文字列識別å­ã«ãƒžãƒƒãƒ”ングã—ã¾ã™ï¼š


ErrorCode[1003] // 'cantMakePayments'
ErrorCode[2002] // 'notActivated'
ErrorCode[2005] // 'networkFailed'

ヘルパー関数


// Get numeric code from string name:
getErrorCode('cantMakePayments') // 1003

// Get string name from numeric code:
getErrorPrompt(1003) // 'cantMakePayments'

ã‚¨ãƒ©ãƒ¼ã‚³ãƒ¼ãƒ‰ã®æ¯”較

é‡è¦ï¼š error.adaptyCodeã¯æ•°å€¤ãªã®ã§ã€æ•°å€¤ã‚³ãƒ¼ãƒ‰ã¨ç›´æŽ¥æ¯”較ã—ã¦ãã ã•ã„:

// Option 1: Use ErrorCodeName constant (recommended) ✅
if (error.adaptyCode === ErrorCodeName.cantMakePayments) {
  console.log('Cannot make payments');
}

// Option 2: Compare with numeric literal ✅
if (error.adaptyCode === 1003) {
  console.log('Cannot make payments');
}

// NOT like this ⌠- compares number to string and will never match
if (error.adaptyCode === ErrorCode[1003]) {
}

グローãƒãƒ«ã‚¨ãƒ©ãƒ¼ãƒãƒ³ãƒ‰ãƒ©ãƒ¼

ã™ã¹ã¦ã® Adapty エラーをキャッãƒã™ã‚‹ã‚°ãƒ­ãƒ¼ãƒãƒ«ã‚¨ãƒ©ãƒ¼ãƒãƒ³ãƒ‰ãƒ©ãƒ¼ã‚’設定ã§ãã¾ã™ã€‚


// Set up global error handler
AdaptyError.onError = (error: AdaptyError) => {
  console.error('Global Adapty error:', {
    code: error.adaptyCode,
    message: error.localizedDescription,
    detail: error.detail
  });
  
  // Handle specific error types globally
  if (error.adaptyCode === ErrorCodeName.notActivated) {
    // SDK not activated - maybe retry activation
    console.log('SDK not activated, attempting to reactivate...');
  }
};

よãã‚るエラー処ç†ãƒ‘ターン

購入エラーã®å‡¦ç†


async function handlePurchase(product: AdaptyPaywallProduct) {
  try {
    const result = await adapty.makePurchase({ product });
    
    if (result.type === 'success') {
      console.log('Purchase successful:', result.profile);
    } else if (result.type === 'user_cancelled') {
      console.log('User cancelled the purchase');
    } else if (result.type === 'pending') {
      console.log('Purchase is pending');
    }
  } catch (error) {
    if (error instanceof AdaptyError) {
      switch (error.adaptyCode) {
        case ErrorCodeName.cantMakePayments:
          console.log('In-app purchases not allowed');
          break;
        case ErrorCodeName.productPurchaseFailed:
          console.log('Purchase failed:', error.detail);
          break;
        default:
          console.error('Purchase error:', error.localizedDescription);
      }
    }
  }
}

ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã‚¨ãƒ©ãƒ¼ã¸ã®å¯¾å‡¦


async function fetchFlow(placementId: string) {
  try {
    const flow = await adapty.getFlow({ placementId });
    return flow;
  } catch (error) {
    if (error instanceof AdaptyError) {
      switch (error.adaptyCode) {
        case ErrorCodeName.networkFailed:
          console.log('Network error, retrying...');
          // Implement retry logic
          break;
        case ErrorCodeName.serverError:
          console.log('Server error:', error.detail);
          break;
        case ErrorCodeName.notActivated:
          console.log('SDK not activated');
          break;
        default:
          console.error('Paywall fetch error:', error.localizedDescription);
      }
    }
    throw error;
  }
}

システム StoreKit コード

エラーコード説明
unknown0䏿˜Žã¾ãŸã¯äºˆæœŸã—ãªã„エラーãŒç™ºç”Ÿã—ãŸã“ã¨ã‚’示ã—ã¾ã™ã€‚
clientInvalid1クライアントãŒå®Ÿè¡Œã—よã†ã¨ã—ãŸæ“作を許å¯ã•れã¦ã„ãªã„ã“ã¨ã‚’示ã—ã¾ã™ã€‚
paymentCancelled2

ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒæ”¯æ‰•ã„リクエストをキャンセルã—ãŸã“ã¨ã‚’示ã—ã¾ã™ã€‚

特ã«å¯¾å¿œã¯ä¸è¦ã§ã™ãŒã€ãƒ“ジãƒã‚¹ãƒ­ã‚¸ãƒƒã‚¯ã®è¦³ç‚¹ã‹ã‚‰ã€ãƒ¦ãƒ¼ã‚¶ãƒ¼ã«å‰²å¼•ã‚’æç¤ºã—ãŸã‚Šã€å¾Œã§ãƒªãƒžã‚¤ãƒ³ãƒ‰ã—ãŸã‚Šã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚

paymentInvalid3支払ã„パラメーターã®ã„ãšã‚Œã‹ãŒã‚¹ãƒˆã‚¢ã«èªè­˜ã•れãªã‹ã£ãŸã“ã¨ã‚’示ã—ã¾ã™ã€‚
paymentNotAllowed4

ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒæ”¯æ‰•ã„を承èªã™ã‚‹æ¨©é™ã‚’æŒã£ã¦ã„ãªã„ã“ã¨ã‚’示ã—ã¾ã™ã€‚考ãˆã‚‰ã‚Œã‚‹åŽŸå› ï¼š

- ユーザーã®å›½ã§ã¯æ”¯æ‰•ã„ãŒã‚µãƒãƒ¼ãƒˆã•れã¦ã„ãªã„。

- ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒæœªæˆå¹´ã§ã‚る。

storeProductNotAvailable5リクエストã•れãŸãƒ—ロダクト㌠App Store ã«å­˜åœ¨ã—ãªã„ã“ã¨ã‚’示ã—ã¾ã™ã€‚対象国ã§ãƒ—ロダクトãŒåˆ©ç”¨å¯èƒ½ã«ãªã£ã¦ã„ã‚‹ã‹ç¢ºèªã—ã¦ãã ã•ã„。
cloudServicePermissionDenied6ユーザーãŒã‚¯ãƒ©ã‚¦ãƒ‰ã‚µãƒ¼ãƒ“ス情報ã¸ã®ã‚¢ã‚¯ã‚»ã‚¹ã‚’許å¯ã—ã¦ã„ãªã„ã“ã¨ã‚’示ã—ã¾ã™ã€‚
cloudServiceNetworkConnectionFailed7デãƒã‚¤ã‚¹ãŒãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã«æŽ¥ç¶šã§ããªã‹ã£ãŸã“ã¨ã‚’示ã—ã¾ã™ã€‚
cloudServiceRevoked8ユーザーãŒã‚¯ãƒ©ã‚¦ãƒ‰ã‚µãƒ¼ãƒ“スã®ä½¿ç”¨è¨±å¯ã‚’å–り消ã—ãŸã“ã¨ã‚’示ã—ã¾ã™ã€‚
privacyAcknowledgementRequired9ユーザーãŒã‚¹ãƒˆã‚¢ã®ãƒ—ライãƒã‚·ãƒ¼ãƒãƒªã‚·ãƒ¼ã«ã¾ã åŒæ„ã—ã¦ã„ãªã„ã“ã¨ã‚’示ã—ã¾ã™ã€‚
unauthorizedRequestData10ãƒªã‚¯ã‚¨ã‚¹ãƒˆãŒæ­£ã—ãæ§‹ç¯‰ã•れã¦ã„ãªã„ã“ã¨ã‚’示ã—ã¾ã™ã€‚
invalidOfferIdentifier11

オファー識別å­ãŒç„¡åйã§ã™ã€‚考ãˆã‚‰ã‚Œã‚‹åŽŸå› ï¼š

- App Store ã§ãã®è­˜åˆ¥å­ã®ã‚ªãƒ•ァーをã¾ã è¨­å®šã—ã¦ã„ãªã„。

- オファーをå–り消ã—ã¦ã„る。

- オファー ID を誤ã£ã¦å…¥åŠ›ã—ã¦ã„る。

invalidSignature12支払ã„ディスカウントã®ç½²åãŒç„¡åйã§ã‚ã‚‹ã“ã¨ã‚’示ã—ã¾ã™ã€‚In-app purchase Key ID フィールドã«å…¥åŠ›ã—ã€In-App Purchase Private Key ファイルをアップロードã—ã¦ã„ã‚‹ã‹ç¢ºèªã—ã¦ãã ã•ã„。詳細㯠App Store インテグレーションã®è¨­å®š ã‚’å‚ç…§ã—ã¦ãã ã•ã„。
missingOfferParams13

Adapty インテグレーションã¾ãŸã¯ã‚ªãƒ•ァーã«å•題ãŒã‚ã‚‹ã“ã¨ã‚’示ã—ã¾ã™ã€‚

設定方法ã®è©³ç´°ã¯ App Store インテグレーションã®è¨­å®š ãŠã‚ˆã³ オファー ã‚’å‚ç…§ã—ã¦ãã ã•ã„。

invalidOfferPrice14ã‚¹ãƒˆã‚¢ã§æŒ‡å®šã—ãŸä¾¡æ ¼ãŒç„¡åйã«ãªã£ãŸã“ã¨ã‚’示ã—ã¾ã™ã€‚オファーã¯å¸¸ã«å‰²å¼•価格ã§ã‚ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚

カスタム Android コード

エラーコード説明
adaptyNotInitialized20Adapty.activate メソッド㧠Adapty SDK ã‚’æ­£ã—ã設定ã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚設定方法㯠React Native å‘ã‘ã®ã‚¬ã‚¤ãƒ‰ ã‚’å‚ç…§ã—ã¦ãã ã•ã„。
productNotFound22購入リクエストã•れãŸãƒ—ロダクトãŒã‚¹ãƒˆã‚¢ã§åˆ©ç”¨ã§ããªã„ã“ã¨ã‚’示ã—ã¾ã™ã€‚
invalidJson23ペイウォール㮠JSON ãŒç„¡åйã§ã™ã€‚Adapty ダッシュボードã§ä¿®æ­£ã—ã¦ãã ã•ã„。修正方法ã®è©³ç´°ã¯ リモートコンフィグã§ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã‚’カスタマイズã™ã‚‹ ã‚’å‚ç…§ã—ã¦ãã ã•ã„。
currentSubscriptionToUpdateNotFoundInHistory24æ›´æ–°ãŒå¿…è¦ãªå…ƒã®ã‚µãƒ–スクリプションãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“。
pendingPurchase25購入状態ãŒã€Œè³¼å…¥æ¸ˆã¿ã€ã§ã¯ãªã「ä¿ç•™ä¸­ã€ã§ã‚ã‚‹ã“ã¨ã‚’示ã—ã¾ã™ã€‚詳細㯠Android デベロッパー ドキュメント㮠ä¿ç•™ä¸­ã®ãƒˆãƒ©ãƒ³ã‚¶ã‚¯ã‚·ãƒ§ãƒ³ã®å‡¦ç† ã‚’å‚ç…§ã—ã¦ãã ã•ã„。
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

ペイウォール内ã®ãƒ—ロダクトãŒã„ãšã‚Œã‚‚ストアã§åˆ©ç”¨ã§ããªã„ã“ã¨ã‚’示ã—ã¾ã™ã€‚

ã“ã®ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ãŸå ´åˆã¯ã€ä»¥ä¸‹ã®æ‰‹é †ã§è§£æ±ºã—ã¦ãã ã•ã„:

1. ã™ã¹ã¦ã®ãƒ—ロダクト㌠Adapty ダッシュボードã«è¿½åŠ ã•れã¦ã„ã‚‹ã‹ç¢ºèªã™ã‚‹ã€‚

2. アプリ㮠Bundle ID ㌠Apple Connect ã®ã‚‚ã®ã¨ä¸€è‡´ã—ã¦ã„ã‚‹ã‹ç¢ºèªã™ã‚‹ã€‚

3. アプリストアã®ãƒ—ロダクト識別å­ãŒãƒ€ãƒƒã‚·ãƒ¥ãƒœãƒ¼ãƒ‰ã«è¿½åŠ ã—ãŸã‚‚ã®ã¨ä¸€è‡´ã—ã¦ã„ã‚‹ã‹ç¢ºèªã™ã‚‹ã€‚識別å­ã«ã¯ã‚¹ãƒˆã‚¢ã«ã™ã§ã«å«ã¾ã‚Œã¦ã„ã‚‹å ´åˆã‚’除ãã€Bundle ID ã‚’å«ã‚ãªã„ã“ã¨ã€‚

4. Apple ã®ç¨Žå‹™è¨­å®šã§ã‚¢ãƒ—ãƒªã®æœ‰æ–™ã‚¹ãƒ†ãƒ¼ã‚¿ã‚¹ãŒã‚¢ã‚¯ãƒ†ã‚£ãƒ–ã«ãªã£ã¦ã„ã‚‹ã‹ç¢ºèªã™ã‚‹ã€‚ç¨Žå‹™æƒ…å ±ãŒæœ€æ–°ã§ã‚りã€è¨¼æ˜Žæ›¸ãŒæœ‰åйã§ã‚ã‚‹ã“ã¨ã‚’確èªã™ã‚‹ã€‚

5. アプリã«éŠ€è¡Œå£åº§ãŒç´ä»˜ã‘られã¦ãŠã‚Šã€åŽç›ŠåŒ–ã®å¯¾è±¡ã«ãªã£ã¦ã„ã‚‹ã‹ç¢ºèªã™ã‚‹ã€‚

6. プロダクトãŒã™ã¹ã¦ã®åœ°åŸŸã§åˆ©ç”¨å¯èƒ½ã«ãªã£ã¦ã„ã‚‹ã‹ç¢ºèªã™ã‚‹ã€‚ã¾ãŸã€ãƒ—ロダクトã®ã‚¹ãƒ†ãƒ¼ã‚¿ã‚¹ãŒ “Ready to Submit†ã«ãªã£ã¦ã„ã‚‹ã“ã¨ã‚’確èªã™ã‚‹ã€‚

productRequestFailed1002

ç¾æ™‚点ã§åˆ©ç”¨å¯èƒ½ãªãƒ—ロダクトをå–å¾—ã§ãã¾ã›ã‚“。考ãˆã‚‰ã‚Œã‚‹åŽŸå› ï¼š

- キャッシュãŒã¾ã ä½œæˆã•れã¦ãŠã‚‰ãšã€åŒæ™‚ã«ã‚¤ãƒ³ã‚¿ãƒ¼ãƒãƒƒãƒˆæŽ¥ç¶šã‚‚ãªã„。

cantMakePayments1003ã“ã®ãƒ‡ãƒã‚¤ã‚¹ã§ã¯ã‚¢ãƒ—リ内課金ãŒè¨±å¯ã•れã¦ã„ã¾ã›ã‚“。
noPurchasesToRestore1004Google Play ãŒå¾©å…ƒå¯¾è±¡ã®è³¼å…¥ã‚’見ã¤ã‘られãªã‹ã£ãŸã“ã¨ã‚’示ã—ã¾ã™ã€‚
cantReadReceipt1005

デãƒã‚¤ã‚¹ä¸Šã«æœ‰åйãªãƒ¬ã‚·ãƒ¼ãƒˆãŒã‚りã¾ã›ã‚“。サンドボックステスト中ã«ç™ºç”Ÿã™ã‚‹ã“ã¨ãŒã‚りã¾ã™ã€‚

特ã«å¯¾å¿œã¯ä¸è¦ã§ã™ãŒã€ãƒ“ジãƒã‚¹ãƒ­ã‚¸ãƒƒã‚¯ã®è¦³ç‚¹ã‹ã‚‰ã€ãƒ¦ãƒ¼ã‚¶ãƒ¼ã«å‰²å¼•ã‚’æç¤ºã—ãŸã‚Šã€å¾Œã§ãƒªãƒžã‚¤ãƒ³ãƒ‰ã—ãŸã‚Šã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚

productPurchaseFailed1006プロダクトã®è³¼å…¥ã«å¤±æ•—ã—ã¾ã—ãŸã€‚ã“ã®ã‚¨ãƒ©ãƒ¼ã¯å†…部㮠StoreKit エラーをラップã—ã¦ã„ã¾ã™ã€‚実際ã®åŽŸå› ã‚’ç¢ºèªã™ã‚‹ã«ã¯ã€ãƒ©ãƒƒãƒ—ã•れãŸã‚¨ãƒ©ãƒ¼ã‚’読ã¿å–ã‚‹ã‹ï¼ˆã¾ãŸã¯è©³ç´°ãƒ­ã‚°ã‚’有効ã«ã—ã¦ã‚³ãƒ³ã‚½ãƒ¼ãƒ«ã§ç¢ºèªï¼‰ã—ã¦ãã ã•ã„。ラップã•れãŸã‚¨ãƒ©ãƒ¼ã¯é€šå¸¸ã€ä¸Šè¨˜ã® StoreKit コード 0〜14 ã®ã„ãšã‚Œã‹ã§ã€æœ€ã‚‚多ã„ã®ã¯ paymentCancelledã€paymentInvalidã€paymentNotAllowedã€invalidOfferPrice ã§ã™ã€‚原因ãŒç‰¹å®šã§ããªã„å ´åˆã¯ã€æ–°ã—ã„サンドボックスプロファイルã§ãŠè©¦ã—ãã ã•ã„。ãれã§ã‚‚解決ã—ãªã„å ´åˆã¯ Apple サãƒãƒ¼ãƒˆã«ãŠå•ã„åˆã‚ã›ãã ã•ã„。
refreshReceiptFailed1010レシートãŒå—ä¿¡ã•れãªã‹ã£ãŸã“ã¨ã‚’示ã—ã¾ã™ã€‚StoreKit 1 ã®ã¿å¯¾è±¡ã§ã™ã€‚
receiveRestoredTransactionsFailed1011購入ã®å¾©å…ƒã«å¤±æ•—ã—ã¾ã—ãŸã€‚

カスタムãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã‚³ãƒ¼ãƒ‰

エラーコード説明
notActivated2002Adapty.activate メソッド㧠Adapty SDK ã‚’æ­£ã—ã設定ã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚設定方法㯠React Native å‘ã‘ã®ã‚¬ã‚¤ãƒ‰ ã‚’å‚ç…§ã—ã¦ãã ã•ã„。
badRequest2003リクエストãŒä¸æ­£ã§ã™ã€‚
serverError2004サーãƒãƒ¼ã‚¨ãƒ©ãƒ¼ã§ã™ã€‚
networkFailed2005ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ãƒªã‚¯ã‚¨ã‚¹ãƒˆã«å¤±æ•—ã—ã¾ã—ãŸã€‚
decodingFailed2006レスãƒãƒ³ã‚¹ã®ãƒ‡ã‚³ãƒ¼ãƒ‰ã«å¤±æ•—ã—ãŸã“ã¨ã‚’示ã—ã¾ã™ã€‚
encodingFailed2009リクエストã®ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‰ã«å¤±æ•—ã—ãŸã“ã¨ã‚’示ã—ã¾ã™ã€‚
analyticsDisabled3000アナリティクスをオプトアウトã—ã¦ã„ã‚‹ãŸã‚ã€ã‚¢ãƒŠãƒªãƒ†ã‚£ã‚¯ã‚¹ã‚¤ãƒ™ãƒ³ãƒˆã‚’処ç†ã§ãã¾ã›ã‚“。詳細㯠アナリティクスインテグレーション ã‚’å‚ç…§ã—ã¦ãã ã•ã„。
wrongParam3001パラメーターã®ä¸€éƒ¨ãŒæ­£ã—ããªã„ã“ã¨ã‚’示ã—ã¾ã™ï¼ˆç©ºç™½ã«ã§ããªã„箇所ãŒç©ºç™½ã«ãªã£ã¦ã„ã‚‹ã€åž‹ãŒé•ã†ãªã©ï¼‰ã€‚
activateOnceError3005.activate メソッドを複数回呼ã³å‡ºã™ã“ã¨ã¯ã§ãã¾ã›ã‚“。
profileWasChanged3006æ“作中ã«ãƒ¦ãƒ¼ã‚¶ãƒ¼ãƒ—ロファイルãŒå¤‰æ›´ã•れã¾ã—ãŸã€‚
fetchTimeoutError3101設定ã•れãŸåˆ¶é™æ™‚間内ã«ãƒšã‚¤ã‚¦ã‚©ãƒ¼ãƒ«ã‚’å–å¾—ã§ããªã‹ã£ãŸã“ã¨ã‚’示ã—ã¾ã™ã€‚ã“ã®çжæ³ã‚’回é¿ã™ã‚‹ã«ã¯ã€ãƒ­ãƒ¼ã‚«ãƒ«ãƒ•ォールãƒãƒƒã‚¯ã‚’設定ã—ã¦ãã ã•ã„。
operationInterrupted9000ã“ã®æ“作ã¯ã‚·ã‚¹ãƒ†ãƒ ã«ã‚ˆã£ã¦ä¸­æ–­ã•れã¾ã—ãŸã€‚
ÿÿÿÿ