5

私は理解しようとしています: Androidでは、TestFlightはベータテスター環境にあることをどのように判断し、アクティビティをTestFlightサーバーにアップロードする必要がありますか? iOS の TestFlight について同様の 質問 がいくつかありましたが、Android に関連するものはありません。

TestFlight SDKを会社の Android アプリに統合しました。これは、ベータ テストとリモート ロギング (既に iOS で使用しています) の優れたソリューションのように見えたからですが、実際にセッション情報を送信することはできません。 TestFlight サーバーに。TestFlight アプリからアプリをインストールすると、TestFlight Web コンソールからインストールされたことがすぐにわかります。明らかに何かを取得しているはずなのに、セッション データやリモート ログを取得できません。

私がこれまでに行ったこと:

  • TestFlight API キーを 4 重にチェックしました
  • TestFlight.takeOff()呼び出されていることを確認済み
  • TestFlight.isActive()報告することを確認したtrue
  • デバッグ専用キーでapkに署名しようとしました
  • リリースキーでapkに署名しようとしました
  • Android ログで TestFlight に関連するエラーを確認しました (なし)
  • 数日前に TestFlight サポートに連絡しました (連絡しましたが、まだ進展はありません)。

私の現在の推測では、TestFlight ライブラリは本番環境にあると考えているため、ログやセッション情報をアップロードするべきではありません。

SDK ドキュメンテーションには、この質問に答えるものは何もありませんが、探している条件を理解していれば、これをすぐに突き止めることができると思います。

TestFlightLib.jar を調べてみたところ、TestFlight.isActive()実際には、既に を呼び出したかどうかのみが報告されていることがわかりましたTestFlight.takeOff()。そのため、システム全体が機能しているかどうかを示す適切な指標ではありません。

4

3 に答える 3

11

編集:以下の Isra の回答によると、私の最初のポイント (チェックポイントのバッチ処理) が無効になっているようです。

TestFlight サポートと数通の電子メールを交換した後、イベントが表示され、何が起こっているのかをよりよく理解できるようになりました。2 つの問題があります。

  1. TestFlight for Android はcheckpointイベントをバッチ処理し、10 個以上のイベントが収集されるとそれらをサーバーに送信します。イベントは、アプリ プロセスの有効期間にわたって保持されません。私のテスト アプリは 2 つまたは 3 つのチェックポイントしか作成していなかったため、サーバーには何も送信されませんでした。

  2. TestFlight セッションが明示的に終了されない限り、ログ イベントがサーバーにまったくポストされないという明らかな問題があります。TestFlight.endSession()

そのため、(今のところ) 回避策は、TestFlight.endSession()定期的に明示的に呼び出すことです。ライブラリの将来のリリースで、TestFlight がこの動作を変更 (または少なくとも文書化) することを願っています。

于 2013-08-24T02:18:27.493 に答える
1

チェックポイント前線についてコメントさせていただきます。セッションを終了しなくても、チェックポイントがすぐに報告されていることがわかります。Androidでバッチ処理を削除したようです

于 2014-01-03T11:01:52.367 に答える
0

アクティビティonStartTestFlight.startSession()を呼び出し、 onStop でTestFlight.endSession ()を呼び出すことで機能させました。

追加の手順は TestFlight SDK には記載されていませんが、アプリが強制的にセッション ログを TestFlight サーバーに送信するようです。

于 2013-12-10T21:51:06.490 に答える