Crashlytics 的 Beta 无法在测试人员的设备上安装构建

Posted

技术标签:

【中文标题】Crashlytics 的 Beta 无法在测试人员的设备上安装构建【英文标题】:Beta from Crashlytics fail to install build on testers' devices 【发布时间】:2015-09-01 02:37:46 【问题描述】:

我通过Beta from Crashlytics 将我的应用程序发送给测试人员,这是一个进行应用程序测试的绝佳工具。

我在我的开发者帐户中注册了每个新测试人员的设备 UDID,然后分发新版本。

我的测试人员收到了电子邮件邀请并访问了无法在他们的设备上完成的应用安装。 他们不断看到一条带有消息的警报:

无法下载应用程序 - 此时无法安装 MyApp - 完成/重试

测试人员的测试状态在我的 Crashlytics 仪表板中为“已安装”,但他们实际上无法完成安装。

请帮我找出导致此问题的任何可能因素。

【问题讨论】:

来自 Crashlytics 的 Mike 在这里 - 发生这种情况可能有几个不同的原因。您的测试人员使用的是 ios 9 吗? @MikeB 不,他们在 iOS 8.3 上,你知道如何查看设备日志,这可能会记录测试人员设备上的失败安装过程吗? 我现在正在为一位新用户看到这个。 Fabric 1.2.8,我实际上并没有确认其他用户是否正常,最后一次成功安装是在上周。 如果还有人看到这个,如果你能把设备日志发给我 support(at)fabric.io 那就太好了。要获取设备日志: 1) 从 Xcode 菜单中选择 Window -> Devices 2) 在左侧列的 DEVICES 部分下,选择设备 3) 要查看崩溃日志,请选择设备信息部分下的 View Device Logs 按钮右侧面板 4) 要查看设备控制台,请单击右侧面板左下方的上三角以显示设备控制台,然后单击右下方的向下箭头将控制台另存为文件。 我能够通过添加另一个用户并发送新版本来解决此问题。只能根据自己不检查安装日志来推测是什么原因造成的。 @sharky101 - 也许尝试添加另一个用户并部署构建? 【参考方案1】:

可能嵌入在构建中的配置文件已失效。使用 Xcode 创建一个新存档,然后使用 Fabric 上传包含该存档的新构建。

讨论:

就我而言,我删除了 Apple Developer Member Center 中嵌入在我的每个 Fabric Beta 版本中的配置文件。这导致之前安装的应用程序测试人员在尝试启动它时立即崩溃(尴尬)。当测试人员尝试通过 Fabric Beta (重新)安装应用程序时,它还导致“无法下载应用程序 - 此时无法安装 MyApp - 完成/重试”问题。上传嵌入了我的新配置文件的新版本解决了这个问题(每个测试人员都必须安装新版本)。

【讨论】:

【参考方案2】:

我在 iOS8 上遇到过这个问题,最近又在 iOS9 上看到了这个问题,解决安装问题的唯一方法是让我的用户删除他们下载的任何以前的版本,重新启动手机,然后尝试再次。

您还可以向他们验证 Crashlytics 是否正确安装在他们的 iDevice 上,我不止一次看到配置文件导致问题的地方,值得删除(设置 -> 常规 -> 配置文件(朝向底部) ) 并重试安装。

【讨论】:

+1 我最近在 iOS 9 上也遇到了这个问题,卸载以前版本的应用程序也解决了这个问题。【参考方案3】:

这通常是由以下两个问题之一引起的:

    配置文件/代码签名设置不正确。双重和三重检查项目和配置文件的以下设置是否相同:捆绑标识符、开发与分发、即席。 缓存 - 有时,即使您已正确完成所有操作,事情仍然会出错。在这种情况下,您可以尝试:从手机中删除之前版本的应用,清理项目,删除并重新下载配置文件,然后重新构建应用。

【讨论】:

【参考方案4】:

RubyMotion 解决方案

对我来说,这是因为我使用的是开发分发配置文件,但权利错误。好吧,权利,单数。

我仍然启用了“beta-report-active”权利,我正在使用的开发分发配置文件中没有包含该权利。相反,它包含在生产分发配置文件中(需要分发到 TestFlight)。但是,我只是想部署到我的本地手机上,而不是向我的整个内部测试组公开我的脏应用程序,所以这就是我发现自己的地方。

无论如何,删除“beta-report-active”权利解决了我的问题。

【讨论】:

【参考方案5】:

我尝试了检查正确证书并删除应用程序和配置文件以及重新启动设备的正常途径。就我而言,它安装在设备 A 而不是设备 B 上。设备 A 是运行 iOS 9 的旧 iPhone 5c,设备 B 是运行 iOS 11.x 的较新 iPhone 8。当我存档应用程序以供分发时,我在存档期间选择了设备 A。一旦我选择了“通用设备”,它就起作用了。但我确信我过去选择特定设备而不是通用设备并且它有效。我使用的是 Xcode 8.2,但我认为 Xcode 版本并不重要。

【讨论】:

以上是关于Crashlytics 的 Beta 无法在测试人员的设备上安装构建的主要内容,如果未能解决你的问题,请参考以下文章

Crashlytics iOS Beta 卡在 Fabric 应用程序中

通过 crashlytics beta 为应用添加更多 beta 测试人员

Fabric beta 测试:我无法安装 beta 应用

使用 Crashlytics beta 生成没有 Apple ID 的 IPA

iOS - 新的 Firebase Crashlytics (4.0.0-beta.5) - dSYM 上传失败

本地化 Crashlytics Beta 电子邮件通知