React-native-iap: getProductsは常にnullを返します

作成日 2018年04月13日  ·  34コメント  ·  ソース: dooboolab/react-native-iap

@dooboolab prepareメソッドの後にgetProductsメソッドを呼び出した後、null配列を受け取ります。

📱 iOS 🙏 help wanted 🤖 android

最も参考になるコメント

@axelkennedalは、あなたを助けるために貴重な時間を自発的に費やす人々に対して受動的攻撃的であることは、あなたを長い道のりに

@ JJMoon @ dooboolab素晴らしい仕事をありがとう

全てのコメント34件

@ companytest1206これは発生しないはずです。 もっと情報を教えていただけませんか? コード、製品のステータス、OS、デバイスなど。アプリ内製品の構成については、ブログを参照してください。

これが私のコードです。

非同期componentDidMount(){
{を試してください
RNIap.prepare();を待つ
const products = await RNIap.getProducts(itemSkus);
console.log( 'Products'、products);
}
キャッチ(エラー){
console.warn(err.code、err.message);
}
this.fetchData();

}

アプリのステータスはアルファモードです。 デバッグにnexus6を使用する。

@ companytest1206コードは問題ないようです。 playstoreまたはitunesconnect製品構成はどうですか? readmeに従って、ここに投稿したすべてを確認して

同じ問題があります。

私は同じ問題を抱えていますが、空の配列を取得します(それが意味することになっているものは何でも、null配列ではありません)。 ここに投稿しまし

@systemride @sanilcgs getProductsメソッドの使用で問題が発生しているプラ​​ットフォームを共有していただけますか?

MacOS 10.13.4 @dooboolabで開発中のAndroid7.0(LG G6で実行)でこれに

create-react-native-appパッケージを使用作成react-native-iapをアプリに統合しました。 私にとって、この問題はiOSとAndroidの両方で発生しています。 Android Studio3.0.1とXcode9.3を使用しています。 @dooboolab

別のライブラリのこのREADMEによると、デバッグ環境(アルファ/ベータリリースではない)で実行しているときに利用可能な製品を入手できるはずですが、それは正しいですか? (おそらくGoogleがIAPを処理する方法に依存しているので、このライブラリでも同じである必要があると思います)。

別の関連する質問; SKUの前にパッケージ名を付ける必要がありますか? 言い換えると; Google Play Consoleで指定したIDが「unlock_premium」の場合、コードの「unlock_premium」または「com.kimer.unlock_premium」は正しいですか?

@axelkennedal SKUSには形式がなく、完全にカスタマイズ可能です。 一言で言えば、「unlock_premium」または「com.kimer.unlock_premium」は正しいです。

商品IDに好きな名前を付けることができることは理解していますが、Google Play ConsoleでID「unlock_premium」を選択した場合、コードに何を入力する必要があるかを尋ねました( Google Play Consoleと私のコード)。 Google Play ConsoleでID「unlock_premium」を選択すると、「unlock_premium」と「com.kimer.unlock_premium」の両方と連携するはずだとおっしゃっていますね。 紛らわしいので、これはREADMEのどこかに記載する必要があると思います。

更新

それは今私のために働いています😄! 私はいくつかのことを試しましたが、それを機能させるための鍵が何であったかわかりません🤔これはとにかく私がしたことです:

  1. パッケージを再インストールしました
  2. インポートステートメントをimport InAppPurchase from "react-native-iap;" to "import * as InAppPurchase from 'react-native-iap';"から変更しました
  3. コード内のSKUを「com.kimer.unlock_premium」から「unlock_premium」に変更しました

@axelkennedalは任意の名前を使用する必要がありますが、GooglePlayコンソール>アプリケーション> GooglePlayストア>アプリ製品で使用する必要があります。 そして、ソースコードで使用しなければならない同じ名前。

@dooboolab productIDを使用してRNIap.buyProduct( ' * ')を実行しようとすると、「そのアイテムは利用できません」というエラーメッセージが表示されます。 実際、私の管理対象製品はアクティブな状態です。 何が問題になりますか? RNIap.getProducts(itemSkus)を使用して製品の詳細を一覧表示できます。 アプリにライセンスキーを追加する必要がありますか?

@sanilcgsエラーが発生しているプラ​​ットフォームを教えてください。

@dooboolab Androidプラットフォームで問題に直面し、MacOS High Sierra(10.13.4)で開発しています

@sanilcgsは、「0.3.23」という新しいモジュールを使用していますか? また、同様の問題がここにあります。 https://github.com/dooboolab/react-native-iap/issues/142

@dooboolabはい、「0.3.23」を使用しています。 私の問題はRNIap.buyProduct( ' * ')にあります。

@sanilcgs上記の号にそのためのヘルプ情報を投稿しました。 ここにもう一度貼り付けます。 以下をご確認ください。

         Do's

1)アプリケーションのサインapkを作成します。
2)GooglePlayストアにAPKをアップロードします。
3)アプリケーション用の製品を作成します。
4)更新アイテムが店頭に並ぶまで6〜12時間待ちます。
5)Manifest.xmlで請求許可を与える

           Don't

1)エミュレータをテストに使用しないでください。課金サービスをサポートしていません。
2)請求サービスに署名されていないapkを使用しないでください。

続きを読む: http

@dooboolabすでに言ったように、私のアプリはRNIap.buyProduct( ' * * ')**をアルファ版でテストできますか、

@sanilcgs上記をよくお読みになると、apkを本番環境にリリースする必要がないことに注意してください。 アルファ版またはベータ版だけで問題ありませんが、APKは説明どおりに署名する必要があります。 上記をもう一度確認して、最初に不足しているものを確認してください。

@dooboolab上記のすべきこととすべきでないことは役に立ちます。 初心者の場合、これはアルファ/ベータリリースでのみテストでき、エミュレータの開発ビルドでこれをテストすると、常に空の配列が返されることをドキュメントで説明するのに非常に役立ちます。 私はそれについてどこにも言及していません。 よろしければ、プルリクエストにこれを追加させていただきます。

@systemrideどんなPRでも大歓迎です!

@axelkennedalはこれらすべてのことを行いましたが、iOSではまだ空の配列を取得しています。 何か案は?
ところで...私はまだシミュレーターでテストしています。 実際のiOSデバイスでテストする必要がありますか?

iOSの@axelkennedal getProducts()は、シミュレーターでうまく機能します。 購入アクションは、サンドボックスアップルアカウントを使用して実際のデバイスでテストする必要があります。
AppStoreの製品設定が完全​​に完了していない可能性があります。

@JJMoon私のコメントを読んだら、私がiOSではなくAndroidを使用していることを知っているでしょう。

@axelkennedalは、あなたを助けるために貴重な時間を自発的に費やす人々に対して受動的攻撃的であることは、あなたを長い道のりに

@ JJMoon @ dooboolab素晴らしい仕事をありがとう

@raduflp lol何言ってるの? 私たちは異なるプラットフォーム上にいることを指摘しました

@raduflp親切な対応と懸念をありがとうございます。 @axelkennedalが攻撃的であることを意味しているとは思いません。 彼はreact-native-iapを使って圧倒されすぎています。 この問題は解決できると思われるので、解決します。 また、新しい世代に役立つ可能性のあるPRはありがたいです。

それを試してみてください。 私のために働く:

「テストアカウントを別の特別なアカウントリスト「テストアクセス権のあるGmailアカウント」に追加する必要があります。これは、プレイアカウント設定(プロジェクトではありません!)で確認できます。プロジェクトのリストを表示できるページで、設定をクリックし、[アカウントの詳細]ページ(下にスクロールすると、ページのほぼ下部にあります)に、[テストアクセス権のあるGmailアカウント]リストがあります。

アプリケーションライセンスを設定する
アプリケーションライセンスを設定するには、まずPlayコンソールにテスターのGmailアドレスのリストを追加します。

Playコンソールに移動します。
[設定]> [アカウントの詳細]を選択します。
[ライセンステスト]で、テスターのGmailアドレスを追加します。
画面上部の[保存]を選択します。

私はreact-native-iapを統合し、署名したapkをPlayストアのベータリリースにアップロードし、サブスクリプションプランを1つ追加しました。 常に空の配列を返すデバッグモードで、サブスクリプションIDごとにサブスクリプションのリストを取得しようとしています。 サブスクリプションをデバッグモードで実際にテストできますか?

@ShridharCodewave実際のデバイスまたはシミュレーターを使用していますか?

@NarekChang私は実際のデバイスを使用していますが、どういうわけかサブスクリプションを取得しています。

このページは役に立ちましたか?
0 / 5 - 0 評価