如何在本地运行 TestFlight 构建

Posted

技术标签:

【中文标题】如何在本地运行 TestFlight 构建【英文标题】:How to run TestFlight build locally 【发布时间】:2019-10-16 23:11:29 【问题描述】:

我们目前正在进行 Beta 测试,用户在浏览页面中选择单元格时会遇到崩溃。 didSelect 假设将用户推送到另一个将显示帖子的视图控制器。

当我在 Xcode 上本地运行应用程序时,一切都很好,没有崩溃。我给自己发了一个邀请并安装了 testflight 版本,当我在探索页面上选择一个类别时,果然应用程序崩溃了。是否可以在 Xcode 上运行 TestFlight 构建,以便我了解它为什么会崩溃?我认为构建是相同的,但 TestFlight 和在 Xcode 上本地运行它之间肯定存在差异。

这里是推送代码


 func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) 
        let vc = storyboard!.instantiateViewController(withIdentifier: "selectedDiscoverCell") as! DiscoverPostsViewController
        vc.discoverCategories = discoverCategories[indexPath.row]
        vc.styleDetails = styleDetails[indexPath.row]
        self.navigationController?.pushViewController(vc, animated: true)


    

没有错误,当我在每一行上运行中断时,它按预期工作..

【问题讨论】:

您应该能够从 TestFlight 获取崩溃报告 - 当应用程序崩溃时,设备应该提示您报告崩溃。我的怀疑是pushViewController 中的vc!。在此之前的所有内容都是有条件地展开的。更好的模式可能是if let vc = storyboard ...,如果至少在您测试时失败,可能会显示警报。 是的,崩溃报告并没有太大帮助,它并没有告诉我太多关于实际崩溃的信息。好的,谢谢,我会继续进行更改。 如果您对崩溃日志进行符号化,您应该拥有发生崩溃的行。您还应该收到一条异常消息 感谢您对我的教育。还是新手试玩。我也会这样做! @Paulw11 为什么崩溃日志不会显示在管理器中? 【参考方案1】:

要在本地运行您的 TestFlight 构建,首先要考虑这是否真的是您想要的 - 与调试等效构建相比。因此,找出您实际发送给 TestFlight 的内容。这就是您要归档的内容。因此,请查看您的方案设置 - 选择其设置的存档部分,然后查看您正在存档的目标配置。

一旦您知道存档的项目配置,请在目标的构建设置中临时编辑该配置以允许调试(例如关闭优化、不去除调试符号等...只需浏览目标的构建设置并比较您的调试配置与存档时使用的任何配置(通常是发布,但您可能有自定义配置)。

或者,如果您只想运行(不调试)归档构建,只需将方案的运行设置“构建配置”临时更改为您用于归档的任何配置 - 然后运行应用程序。

如果您仍然无法重现崩溃,则恢复我上面建议的所有临时更改并尝试正常存档 - 仅选择创建 .ipa 而不是发送到 Connect。您可以将其放入 iTunes 以将其安装到连接的设备上(或者我听说过)。然后你至少可以验证崩溃。也许你可以在崩溃之前“附加”到正在运行的进程......也许......

【讨论】:

不幸的是,更改方案设置并没有重现崩溃。我还关闭了优化,它仍然崩溃。我将再次检查目标构建设置并进行比较,但如果我没记错的话,我相信它与运行相同 我这次提交的时候尽量不要去掉符号 这有帮助,谢谢。只需要玩一下配置

以上是关于如何在本地运行 TestFlight 构建的主要内容,如果未能解决你的问题,请参考以下文章

Meteor iOS 热代码推送在 testflight 和生产中被破坏,但在本地 xcode 构建中工作

如何从xcode获取TestFlight应用程序的日志

如何在 testflight 上自动上传构建?

使用 testflight 部署的一些构建崩溃

TestFlight 的所有新版本在发布时突然开始崩溃,并且在 Crashlytics 上没有崩溃日志

如何在 Testflight App 中直接进行深度链接构建