【问题标题】:Installed App from TestFlight crashes due to alleged UISearchDisplayController由于涉嫌 UISearchDisplayController,从 TestFlight 安装的应用程序崩溃
【发布时间】:2020-01-09 03:55:49
【问题描述】:

我在一个相对较旧的应用中使用当前测试版 Xcode 实现了暗模式。我为我的测试人员将这些上传到了 TestFlight。但是,任何拥有 iOS 13 公开测试版的人都会立即崩溃。

我已将 Crashlytics 集成到应用中,这些崩溃的原因如下:

使用此版本的 iOS 时不再支持UISearchDisplayController。请将您的应用迁移至UISearchController

所有UISearchDisplayController 实例都已替换为UISearchController。该应用程序不再使用UISearchDisplayController。不再有任何指向UISearchDisplayController 的链接。尽管如此,这些崩溃仍会继续发生,但仅限于安装了 TestFlight。

如果应用程序直接使用 Xcode 作为“调试”或“发布”安装在具有公开测试版的 iPhone 上,则不会发生崩溃。

有人有解决这个问题的办法吗?

【问题讨论】:

  • 搜索你正在使用的库
  • @sulthan 我搜索了所有库,但没有一个使用 UISearchDisplayController 或其委托。
  • 真的不能做任何其他事情,只要确保你没有任何挥之不去的UISearchDisplayControllerDelegate 或者它是剩余的实例
  • @Tj3n 您是专门搜索UISearchDisplayController,还是只搜索代理?还尝试在您的项目文件夹上运行 grep。 xibs中可能有参考。

标签: ios testflight uisearchcontroller uisearchdisplaycontroller


【解决方案1】:

在收到相同的错误并且在我们的应用程序中没有找到对 UISearchDisplayController 的引用后,我们意识到我们需要从我们的一个故事板中搜索和替换 searchDisplayController。在向 TestFlight 重新提交测试版后,该问题得到纠正。

【讨论】:

  • 非常感谢,直接在storyboard的源码中搜索searchDisplayController即可解决。
  • 你用什么替换了 ?用 替换它会出错。
  • @dnzzcn UISearchDisplayController 已弃用。因此,您必须在代码和情节提要中替换与它相关的所有内容。您可以改用 UISearchController。
  • @dnzzcn 你找到替换searchDisplayController 的内容了吗?
  • 我们刚刚在 App Store 审核期间被此问题拒绝。问题是在两个地方searchDisplayController 插座仍然连接到 IB,即使相关的视图控制器早已被修改。我们在测试中没有发现这一点,因为它在模拟器中运行时显然不会崩溃。
【解决方案2】:

它在模拟器上运行,但所有 beta 测试人员都声称它崩溃了。问题出在故事板上。在您的视图中搜索这些。

【讨论】:

  • 您可以从 IB 和任何 IBOutlet 中删除这些。我会更容易在代码中添加搜索而不是 IB
【解决方案3】:

*** 由于未捕获的异常“NSGenericException”而终止应用程序,原因:“在链接到此版本的 iOS 时不再支持 UISearchDisplayController。请将您的应用程序迁移到 UISearchController。'

在本地成功运行,但在 testFlight 应用上崩溃。

修复:

我发现 UISearchDisplayController 卡在其中一个情节提要中并且不再使用。直接在情节提要的源代码中搜索 searchDisplayController 并将其删除。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-20
    相关资源
    最近更新 更多