5

我试图理解:在 Android 上,TestFlight 如何确定它处于 beta 测试环境中,并且应该将活动上传到 TestFlight 服务器? 有一些类似的 问题询问 iOS 上的 TestFlight,但与 Android 无关。

我已将TestFlight SDK集成到我公司的 Android 应用程序中,因为它看起来是一个很好的 beta 测试和远程日志记录解决方案(我们已经将它用于 iOS),但我无法让它实际发送会话信息到 TestFlight 服务器。通过 TestFlight 应用程序安装我的应用程序后,我立即看到它是通过 TestFlight Web 控制台安装的,然后……nada。我没有得到会话数据或远程日志,即使我显然应该得到一些东西。

到目前为止我做了什么:

  • 四重检查了我的 TestFlight api 密钥
  • 确认TestFlight.takeOff()被调用
  • 已验证TestFlight.isActive()报告true
  • 尝试使用仅调试密钥对 apk 进行签名
  • 尝试使用我们的发布密钥签署 apk
  • 检查 android 日志中与 TestFlight 相关的错误(无)
  • 几天前联系了TestFlight支持(我已经联系过,但还没有进展)

我目前的猜测是 TestFlight 库认为它在生产环境中,因此它不应该上传日志和会话信息。

SDK 文档无法回答这个问题,但我觉得如果我了解它正在寻找什么条件,我可以很快确定这一点。

我查看了 TestFlightLib.jar,发现它TestFlight.isActive()实际上只是报告你是否已经调用过TestFlight.takeOff(),所以这并不是整个系统是否正常工作的一个很好的指标。

4

3 回答 3

11

编辑:根据下面Isra 的回答,看起来我的第一点(批处理检查点)可能不再有效。

在与 TestFlight 支持交易了几封电子邮件之后,我看到了事件并且对正在发生的事情有了更好的了解。有两个问题:

  1. TestFlight for Android 对checkpoint事件进行批处理,并在收集到 10 个或更多事件后将它们发送到服务器。事件不会跨应用进程生命周期保留。我的测试应用程序只创建了两个或三个检查点,因此没有任何东西发送到服务器。

  2. 有一个明显的问题是日志事件根本不会发布到服务器除非 TestFlight 会话明确结束TestFlight.endSession()

因此,解决方法(目前)是TestFlight.endSession()定期显式调用。希望 TestFlight 将在库的未来版本中改变(或至少记录)这种行为。

于 2013-08-24T02:18:27.493 回答
1

我将在检查站前发表评论。我可以看到立即报告检查点,而无需结束会话。看起来他们删除了Android上的批处理

于 2014-01-03T11:01:52.367 回答
0

我们通过在onStart上调用TestFlight.startSession()在onStop调用 TestFlight.endSession() 来实现它。

TestFlight SDK 中没有记录额外的步骤,但它似乎强制应用程序将会话日志发送到 TestFlight 服务器。

于 2013-12-10T21:51:06.490 回答