5

Google App Engine(Python)でGoogle Cloud Endpointをバックエンドとして使用するAndroidアプリを開発しています。 Androidアプリは、Android搭載端末でGoogle Playサービスを使用しているユーザーを認証します。すべてがうまく機能します。Google App Engineのクラウドエンドポイントを使用したAndroidアプリのローカルテスト

実際のユーザーがいたら、これをすべてローカルでテストして、アプリエンジンAPIの変更をプロダクションに展開することができるようにしたいと思います。Androidアプリとの対話方法を把握していませんどこでも私のローカル開発サーバー。 testing recommendationsは、API Explorerを使って手作業で作業することを提案していますが、私のAPIにEndpoints Proto Datastoreを使用しているので、Android開発が容易になります。私が手で作ることができるものよりはるかに複雑です。

1つの答えがthis questionであることは、Androidクライアントをローカルサーバーで指す方法があることを示唆していますが、--host引数を使用してdev_appserverのデフォルトサーバーをlocalhost以外でリッスンすることはできますが、 APIサーバーで同じことをする方法があるようです。私がそれをやることができたとしても、それはAndroidアプリの完全なエンドツーエンドローカルテストのセットアップの第一歩に過ぎないかもしれません。

私がこれを行う方法やその方法の詳細については、App Engine上でGoogle Cloud Endpointsを使用するAndroidアプリをテストするためのベストプラクティスを教えてください。すべての回答に事前に感謝します。

答えて

2

ローカル環境では、dev_appserverがAPIサーバーです。 localhost以外のマシン(ネットワーク上の別のマシン/デバイス)からアクセスできるように設定した場合は、APIリクエストにもアクセスできるようにする必要があります。

しかし、現時点ではローカルサーバーとgzippedリクエストを持つissueがあります。それが解決するまで、Androidアプリのクライアントライブラリ内でgzipを無効にする必要があります(postを参照)。

8

申し訳ありませんが、最終的には、ダンのおかげで、働いてくれました!ここに私は数時間を節約した残りの細部があります - うまくいけば、これは他の人にとって有益です。

1)前述のとおり、dev_appserver.pyは--host = 0.0.0.0で実行する必要があるため、ローカルネットワーク上で待機することができます。

2)IDトークンを正しく解析してユーザー認証を行うには、PyCryptoライブラリをインストールする必要があります。デフォルトではインストールされていないため、app.yamlにインストールするだけでは不十分です。私はWindows用のバイナリを見つけたhere

3)次に、生成されたTictactoe.javaに相当するクラスで、DEFAULT_ROOT_URLをhttp://<my-local-machine>:8080/_ah/api/(私のローカルマシンが実行されている場所)に変更して、ローカルネットワークに要求が送信されるようにしました。あるいは(侵略的ではない)、builder.setRootUrlをビルダーを初期化する場所と同じアドレスに使用できます。この方法で、生成されたクラスに悩まされることはありません。

4)私はダンが言及した変更を加えなければならなかった。here

これらの4つのことを実行すると、すべてが現在動作しているように見えます。アプリをローカルでテストできます。

+0

ありがとうございました。 –

関連する問題