私はすでにGooglePlayに公開されているAndroidアプリに取り組んでいます。次の更新(versionCode = 3)では、クライアントがLVLライセンススキームを含めたいと考えています。
私が最初にしたことは、ライセンスサーバーからの静的テスト応答を設定することでした。テスト応答をLICENSEDに設定しました。ドキュメントでこれを読んだ後:
このライセンステストレスポンスは、[マイメールアドレス]またはGooglePlayにアップロードしたアプリケーションの上記のテストアカウントを使用してデバイスに送信されます。>さらに、このアカウント(テストアカウントは除く)は、GooglePlayにまだアップロードされていないアプリケーションに対してこの応答を受け取ります。
開発者アカウントのメールアドレスは、テストデバイスのGoogle Playアカウントのメールアドレスと同じであるため、問題はないと思いました。そのため、アプリをデバッグするときにテスト応答を受け取る必要があります。
その後、他のすべてのライセンスドキュメントとサンプルコードを読み、アプリに統合しました。正しいbase64公開鍵とランダムに生成された20バイトをソルトとしてServerManagedPolicyを使用しました。
すべてが良好に見えたら、デバイスにアップロードしてテストしましたが、期待したLICENSED応答を受信する代わりに、常にNOT_LICENSED応答を受信しています。私は戻って、次のことを確認しました:
- 私はインターネットに接続していました。
- GooglePlayでデベロッパーアカウントにログインしました。
- LicenseCheckerは正しい公開鍵を使用していました。
- GooglePlayのキャッシュをクリアしています。
最初は、キャッシングと関係があるのではないかと思ったので、代わりにStrictPolicyを使ってみました。同じ応答。ストアからアプリを購入していないので、静的テスト応答を送信するのではなく、ライセンスサーバーが正常に応答しているように感じます。これが私が試した他のいくつかのことです:
- 24時間待ってから、再試行します。
- 現在の配布キーだけでなく、Androidデバッグキーを使用してアプリをビルドしてみました。
- GooglePlayで別のテストユーザーアカウントを設定して使用する。このメールアカウントを開発者コンソールの[テストアカウント]セクションに必ず追加しました。
- APKをGooglePlayにアップロードしますが、公開しません。
- versionCodeを2から3にインクリメントします。 これは、NOT_LICENSEDに応答する代わりに、「アプリケーションエラーコード」ERROR_NOT_MARKET_MANAGEDを返すため興味深いものです。
これにより、開発者アカウントに設定した静的テスト応答を送信するのではなく、ライセンスサーバーが常に正常に応答していると思います。アプリがすでに公開されているためかもしれないと感じていますが、動作しているかどうかをテストするためだけにデバッグビルドを公開するリスクはありません。
誰かが以前にこの状況にあったことがありますか?どんな助けでも大歓迎です。