【问题标题】:SIGABRT Error When Trying to Initialization iOS AppsFlyer SDK尝试初始化 iOS AppsFlyer SDK 时出现 SIGABRT 错误
【发布时间】:2018-12-31 20:55:46
【问题描述】:

我正在尝试运行 AppsFlyer SDK 的初始化,但在启动应用程序时出现 Thread 1: signal SIGABRT 错误。我在这里使用 AppsFlyer 的指南:https://support.appsflyer.com/hc/en-us/articles/207032066-AppsFlyer-SDK-Integration-iOS#3-sdk-initialization

我在 Xcode 10 的 swift ios 应用程序上使用它。我在指南中使用了 cocopods 选项。我尝试使用指南提供的确切代码,但这不起作用。然后我尝试遵循 Xcode 建议的更改。这给了我一个警告,然后应用程序在启动时崩溃了。

指南说要使用的代码:

AppsFlyerTracker.shared().appsFlyerDevKey = "<your-appsflyer-dev-key>";
AppsFlyerTracker.shared().appleAppID = "123456789"
AppsFlyerTracker.shared().delegate = self

Xcode 建议修复代码:(错误:“无法将类型 'AppDelegate' 的值分配给类型 'AppsFlyerTrackerDelegate?'”)

AppsFlyerTracker.shared().appsFlyerDevKey = "xxxxxxxxx";
AppsFlyerTracker.shared().appleAppID = "xxxxxxxx"
AppsFlyerTracker.shared().delegate = self as! AppsFlyerTrackerDelegate

启动后出错:线程 1:信号 SIGABRT

我正在尝试初始化 SDK。

我也在使用 AdMob/Firebase,而且也在使用 cocopods。它按预期工作。

【问题讨论】:

  • 不是强制转换您的AppDelegate 类,而是尝试实现AppsFlyerTrackerDelegate 协议?如果没有完整的崩溃日志,我的期望是该框架试图调用它的委托协议期望定义的函数之一,但是您为其提供了一个不符合要求的对象。
  • @JamieEdge 如果我尝试使用AppsFlyerTrackerDelegate 协议,我会收到Type 'AppsFlyerTrackerDelegate' has no member 'shared' 的错误。如果我注释掉这一行,那么整个应用程序将按预期工作。
  • 听起来您正在删除UIApplicationDelegate 一致性,而不是除此之外实现框架的委托协议。为AppDelegate 类添加扩展并在其中实现所需的类型。
  • @JamieEdge 对不起,我不明白你的意思。
  • 必须符合UIApplicationDelegate 协议。您不能删除此协议一致性,否则您将收到您提到的编译错误。为了使该类适合作为这个特定框架的委托,除了现有协议之外,您需要添加对它所需的协议的一致性,而不是替换它。这可以使用extension(推荐)或逗号分隔(class AppDelegate: NSObject, UIApplicationDelegate, AppsFlyerTrackerDelegate)来完成。

标签: swift appsflyer-ios-sdk


【解决方案1】:

我能够通过将AppsFlyerTracker.shared().delegate = self 更改为AppsFlyerTracker.shared()?.delegate = self as? AppsFlyerTrackerDelegate 来修复错误。

【讨论】:

    猜你喜欢
    • 2019-07-25
    • 1970-01-01
    • 2021-04-27
    • 1970-01-01
    • 2021-05-18
    • 1970-01-01
    • 2021-06-17
    • 2021-09-27
    • 2020-01-08
    相关资源
    最近更新 更多