gpt4 book ai didi

swift - 无法接收崩溃报告

转载 作者:行者123 更新时间:2023-11-30 10:09:19 25 4
gpt4 key购买 nike

随着 Parse 崩溃报告的贬值,我们正在转向 Google Analytics。我按照指南成功接收了 View 跟踪和异常报告。

这是我设置 GA 的方法

// Configure tracker from GoogleService-Info.plist.
var configureError:NSError?
GGLContext.sharedInstance().configureWithError(&configureError)
assert(configureError == nil, "Error configuring Google services: \(configureError)")

// Optional: configure GAI options.
let gai = GAI.sharedInstance()
gai.trackerWithTrackingId("UA-XXXXXX-1")
gai.trackUncaughtExceptions = true // report uncaught exceptions
gai.dispatchInterval = 1
gai.defaultTracker.allowIDFACollection = true

#if DEBUG
gai.logger.logLevel = GAILogLevel.Verbose // remove before app release
#endif

我尝试通过(在 AppDelegate.swift didFinishLaunchingWithOptions 中)造成崩溃:

delay(20.0) { () -> () in
let _ = [String]()[10];
}

而且我无法从 GA 仪表板获取任何崩溃报告。

我尝试将此行移动到 IBAction,但失败了。

我的测试步骤:

  1. 在设备上调试 ->(20 秒)-> 崩溃

  2. 第二次在设备上调试 ->(20 秒)-> 崩溃

  3. 在不调试的情况下运行应用 ->(20 秒)-> 崩溃

  4. 在不调试的情况下运行应用 ->(20 秒)-> 崩溃

最佳答案

事实证明,Google Analytics 仅支持报告未捕获的 Objective-C 异常。它不报告 Swift 抛出。以下创建了一个 Swift throw(并且 GA 不报告):

    let crashArray:Array = [0]
crashArray[1]

以下内容确实创建了 Objective-C 异常并由 GA 报告:

    let array = NSArray()
let _ = array.objectAtIndex(99)

这里有一些有用的信息...

How should I use NSSetUncaughtExceptionHandler in Swift

我们可以使用以下命令(即从 catch 中)从 Swift 中强制发生 Objective-C 异常。

    let error = NSError(domain: "Some error.", code: 0, userInfo: nil)
NSException.raise("Exception", format:"Error: %@", arguments:getVaList([error ?? "nil"]))

我找不到一种方法来自动捕获所有抛出并将它们作为 Objective-C 异常转发。

关于swift - 无法接收崩溃报告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33951222/

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