我正在使用Swift编写的iOS应用程序。我有一个UITabBarController的子类,然后是一个嵌套的子类:
class HWTabBarController: UITabBarController {
override func viewDidLoad() {
super.viewDidLoad()
...
}
}
class MainTabBarController: HWTabBarController {
override func viewDidLoad() {
super.viewDidLoad()
...
}
}
这在iOS模拟器中运行良好,即使我在iPhone上调试应用程序也是如此。 但是当我将应用程序存档并使用TestFlight将其发送到我的手机时崩溃了。
我的崩溃日志充满了这个无限循环:
22 HDWR 0x00145e10 @objc HDWR.MainTabBarController.viewDidLoad (HDWR.MainTabBarController)() -> () (MainTabBarController.swift:16)
23 HDWR 0x00262867 NRMA__voidParamHandler
24 HDWR 0x0014ea00 HDWR.HWTabBarController.viewDidLoad (HDWR.HWTabBarController)() -> () (HWTabBarController.swift:24)
25 HDWR 0x00145e10 @objc HDWR.MainTabBarController.viewDidLoad (HDWR.MainTabBarController)() -> () (MainTabBarController.swift:16)
26 HDWR 0x00262867 NRMA__voidParamHandler
27 HDWR 0x0014ea00 HDWR.HWTabBarController.viewDidLoad (HDWR.HWTabBarController)() -> () (HWTabBarController.swift:24)
28 HDWR 0x00145e10 @objc HDWR.MainTabBarController.viewDidLoad (HDWR.MainTabBarController)() -> () (MainTabBarController.swift:16)
29 HDWR 0x00262867 NRMA__voidParamHandler
30 HDWR 0x0014ea00 HDWR.HWTabBarController.viewDidLoad (HDWR.HWTabBarController)() -> () (HWTabBarController.swift:24)
31 HDWR 0x00145e10 @objc HDWR.MainTabBarController.viewDidLoad (HDWR.MainTabBarController)() -> () (MainTabBarController.swift:16)
32 HDWR 0x00262867 NRMA__voidParamHandler
33 HDWR 0x0014ea00 HDWR.HWTabBarController.viewDidLoad (HDWR.HWTabBarController)() -> () (HWTabBarController.swift:24)
voidParamHandler
指令的内容是什么,为什么会导致MainTabBarController.viewDidLoad
?
我在这里做错了吗?或者这是Swift中的错误?
答案 0 :(得分:5)
您是否在自己的应用中使用了New Relic? (我猜你所有那些NRMA__voidParamHandler
引用。)我有这个确切的问题。我禁用了New Relic SDK,从Testflight下载的版本停止了崩溃。我还没有报告过一个bug,但你/我/我们可能应该这样做。
答案 1 :(得分:5)
像这样:
class HWTabBarController: UITabBarController {
override dynamic func viewDidLoad() {
super.viewDidLoad()
...
}
}
class MainTabBarController: HWTabBarController {
override dynamic func viewDidLoad() {
super.viewDidLoad()
...
}
}
更多详细信息,包括此处包含的功能,在此处:https://docs.newrelic.com/docs/mobile-monitoring/new-relic-mobile/getting-started/enabling-swift-interaction-traces
答案 2 :(得分:0)
我刚下载了回购邮件,在我自己的个人资料上签名,所有内容似乎都可以正常运行。没有无限循环,没有崩溃。这也是通过Test Flight进行的。这让我相信你的系统某处有一些错误。我建议做一些事情......
我的想法是,当你删除你的派生数据时它会有所帮助,但我会这样做只是为了让你知道一切都很干净。同样,我在任何阶段都没遇到过这个问题:模拟器,从Xcode直接安装或通过Test Flight下载。
还要确保捆绑ID已正确注册,并且在Test Flight上一切都是服务器端。我无法想象为什么它会导致循环,但这是一个奇怪的情况所以让我们看看会发生什么。 :^)