TestFlight必须满足哪些条件才能将活动发送到服务器?

时间:2013-08-23 14:51:15

标签: android testflight

我正在努力理解:在Android上,TestFlight如何确定它处于beta测试环境中,并且应该将活动上传到TestFlight服务器?已经有一些{{3 }} similar在iOS上询问TestFlight,但没有一个与Android相关。

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

到目前为止我做了什么:

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

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

TestFlight SDK无法回答这个问题,但我觉得如果我明白它正在寻找什么条件,我可以很快地解决这个问题。

我探测到TestFlightLib.jar,发现TestFlight.isActive()实际上只是报告你是否已经调用TestFlight.takeOff(),因此这不是一个好的指标,表明整个系统是否正常工作。 / p>

3 个答案:

答案 0 :(得分:11)

编辑:下面Isra's answer,看起来我的第一个点(批处理检查点)可能不再有效。

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

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

  2. 除非使用TestFlight.endSession()

  3. 明确结束TestFlight会话,否则日志事件不会发布到服务器所有的明显问题

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

答案 1 :(得分:1)

我将在检查站前面发表评论。我可以直接报告检查点而无需结束会话。看起来他们删除了Android

上的批处理

答案 2 :(得分:0)

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

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