gpt4 book ai didi

iOS Firebase 崩溃报告和混合项目 (Objective-C + Swift) - 报告始终针对 "main"函数,因此不提供信息

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:12:11 24 4
gpt4 key购买 nike

我在几个项目中发现了这个问题:

重现步骤:

  1. 使用 Objective-C 语言创建一个新的 Xcode 项目(禁用 BitCode)
  2. 前往Firebase 控制台并创建一个新的 iOS 应用
  3. 设置 Firebase 崩溃使用 Cocoapods 报告
  4. 添加一些Swift代码,例如ViewController.swift

  5. 然后,用 swift 代码在某处造成崩溃(例如,在按钮操作中)

敌人的例子:

let array = [42]
let outOfBounds = array[100500]

或者只是

fatalError("错误")

没关系。

6) 几分钟后你会得到一个名为:

main (main.m:14)

Formatted picture

我的意思是,它总是说“main(): %some line% and [NSObject(NSObject) doesNotRecognizeSelector:]”,尽管文件/行引发了异常(并且尽管错误类型,它总是“doesNotRecognizeSelector ")

可以看到,符号文件上传成功(报告是符号化的)我已经检查了构建选项和编译器标志 - 没有运气。

如果需要,这里有代码示例:

AppDelegate.m:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

[FIRApp configure];

return YES;
}

ViewController.swift:

@IBAction func buttonTap(_ sender: Any) {

let array = [42]
let outOfBounds = array[100500]

}

注意事项如果您创建相同的 Xcode 项目,但仅使用 Swift - 报告将“提供更多信息”:

enter image description here

对于干净的 Objective-C 项目也是如此:

enter image description here

最佳答案

您看到的是进程崩溃时的堆栈跟踪。

I mean, it always says "main(): %some line%", despite file/line where exception has been raised

进程必须从 main 开始。查看第 3 行,您将知道崩溃是由于无法识别的选择器引起的。你还可以看到它崩溃的屏幕是这样的

enter image description here

我认为您可以获得比这更多的信息。如果您的应用程序在 TestFlight 或 Appstore 上,您可以直接从 Xcode 检查崩溃。确保您上传的帐户已添加到 Xcode。转到 Windows->Organizer 并单击“崩溃”选项卡。从左侧列表中选择您的应用程序。现在你会有一个崩溃列表。单击要分析的崩溃,单击 Open in project 并选择您的项目。 Xcode 将打开您的代码崩溃的行。

检查 this链接以了解有关阅读错误日志的更多信息。

关于iOS Firebase 崩溃报告和混合项目 (Objective-C + Swift) - 报告始终针对 "main"函数,因此不提供信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43139629/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com