チタンデバッグモードでアプリ購入でライブアンドロイドを適切にテストする方法を知っている人はいますか?
以前は、Titanium Studio からデバッグするときに、アプリ内購入のライブ テストと実際のトランザクションの作成に成功していました。これは、以前、次のように開発用の .apk を使用して Google Play ストアのリストを誤って作成したためです 。 build-android-app-during-development
したがって、Google Play は私の dev_keystore をアプリ内購入コードに関連付けていました。
ただし、次のように生成されたキーペア/証明書を使用して製品リリースをビルドおよびアップロードしようとしたとき: wiki.appcelerator.org/display/guides/Distributing+Android+apps
その後、Google Play ストアは、私の APK が元のアップロードで使用されたものとは異なる証明書で署名されていると不平を言って、私の製品候補を (正しく) 拒否しました。
You uploaded an APK that is signed with a different certificate to your previous APKs.
You must use the same certificate. Your existing APKs are signed with the certificate(s)
with fingerprint(s): [ SHA1: ...:9D:47:9F ] and the certificate(s) used to sign the APK
you uploaded have fingerprint(s): [ SHA1: ...:5D:E2:4E ]
そのため、Google Play ストアのリストを削除し、上記の appcelerator ガイドで説明されているように、署名付き APK を使用して最初から再作成する必要がありました。
これにより、アプリ内購入が署名付き APK に関連付けられるようになりました。つまり、アプリの開発ビルドをテストしてアプリ内購入を行おうとすると、次のメッセージが表示されます。
This version of the application is not configured for billing through Google Play
これはタイミングの問題ではありません (私は 24 時間待ちました)。
これは、開発ビルドの dev_keystore がアプリ内購入コードに関連付けられた証明書と一致しないために発生しています。
Titanium スタジオで、デバッグ時にアプリの証明書証明書を次のように指定することが許可されていれば、これを回避できると思います: http://jira.appcelerator.org/browse/TISTUD-1214
当面の間、購入をデバッグするためのテスト的な回避策は、同じアプリ購入で追加の別の「テスト」複製 Google Play アプリケーションを作成し、それを開発用の .apk (署名済み apk ではなく) に関連付けることです。テスト中に、次のように変更するだけです。
require('ti.inappbilling').setPublicKey(...)
実際のプロジェクトではなく、テスト プロジェクトを指すようにします。次に、支払いに満足したら、実際のキーを使用して構築します。
これは非常に標準以下の回避策であり、誰かがより良い方法を持っていることを願っています。