我正在努力理解:在Android上,TestFlight如何确定它处于beta测试环境中,并且应该将活动上传到TestFlight服务器?已经有一些{{3 }} similar在iOS上询问TestFlight,但没有一个与Android相关。
我已将questions集成到我公司的Android应用程序中,因为它看起来像是一个很好的beta测试和远程日志记录解决方案(我们已经将它用于iOS),但我无法得到它实际上将会话信息发送到TestFlight服务器。一旦我通过TestFlight应用程序安装我的应用程序,我立即看到它是通过TestFlight Web控制台安装的,然后是... nada。我没有获得会话数据或远程日志,即使我显然应该得到一些东西。
到目前为止我做了什么:
TestFlight.takeOff()
被称为TestFlight.isActive()
举报true
我目前的猜测是TestFlight lib认为它在生产环境中,因此它不应该上传日志和会话信息。
TestFlight SDK无法回答这个问题,但我觉得如果我明白它正在寻找什么条件,我可以很快地解决这个问题。
我探测到TestFlightLib.jar,发现TestFlight.isActive()
实际上只是报告你是否已经调用TestFlight.takeOff()
,因此这不是一个好的指标,表明整个系统是否正常工作。 / p>
答案 0 :(得分:11)
编辑:下面Isra's answer,看起来我的第一个点(批处理检查点)可能不再有效。
在使用TestFlight支持交易了几封电子邮件之后,我看到了一些事件,并且更好地了解了正在发生的事情。有两个问题:
Android的TestFlight批处理checkpoint
事件,并在收集10个或更多事件后将其发送到服务器。应用程序进程生命周期内不会保留事件。我的测试应用程序只创建了两个或三个检查点,因此没有任何内容被发送到服务器。
除非使用TestFlight.endSession()
因此,解决方法(暂时)是定期显式调用TestFlight.endSession()
。希望TestFlight将在未来的库版本中更改(或至少记录)此行为。
答案 1 :(得分:1)
我将在检查站前面发表评论。我可以直接报告检查点而无需结束会话。看起来他们删除了Android
上的批处理答案 2 :(得分:0)
我们通过在 onStop上的 onStart 和 TestFlight.endSession()上调用 TestFlight.startSession()来实现它的工作
TestFlight SDK中没有记录额外的步骤,但它似乎强迫应用程序将会话日志发送到TestFlight服务器。