ios - FIRApp.configure() 创建内存泄漏 IOS

标签 ios swift memory-leaks firebase cocoapods

我一直在调试我的应用程序,它使用 Firebase 来解决内存泄漏问题,在深入研究我的代码一段时间后,我发现实际的问题是 FIRApp.configure() 它在我的代码中application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) 在 AppDelegate 中。

据我所知,一切都以正确的方式配置,我正在使用 cocoa pods 安装和更新 firebase。我也在我的 AppDelegate 中修改我的 statusBar 代码如下:

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {

    FIRApp.configure()

    setStatusBarBackgroundColor(UIColor(red: 231/250, green: 97/250, blue: 44/250, alpha: 1.0))

    // Override point for customization after application launch.
    return true


}

var window: UIWindow?

override init() {
}

func setStatusBarBackgroundColor(color: UIColor) {

    guard  let statusBar = UIApplication.sharedApplication().valueForKey("statusBarWindow")?.valueForKey("statusBar") as? UIView else {
        return
    }

    statusBar.backgroundColor = color
}

我还展示了仪器工具以显示有关泄漏的更多详细信息:

The CFNetwork is the responsible library

而且我确定它是 FIRApp.configure(),因为我将其移除进行测试并且没有泄漏。

希望有人知道如何修复此漏洞,谢谢。

最佳答案

我也遇到了同样的问题。经过一番挖掘,似乎 Firebase Analytics 是导致泄漏的原因。

这是我做的:

  • FIREBASE_ANALYTICS_COLLECTION_ENABLED 设置为 NO
  • FIREBASE_ANALYTICS_COLLECTION_DEACTIVATEDGoogleServiceIn-info.plist 中的 YES

至少这对我有用。对于那些依赖 firebase 分析的人来说,这绝对是一个错误。

关于ios - FIRApp.configure() 创建内存泄漏 IOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39007621/

相关文章:

ios - "drawViewHierarchyInRect"和 "drawInContext"有什么区别?

memory-leaks - Swift 3 URLSession 内存泄漏

ios - 像 WeBuyApp.com 声称在 iOS 中做的那样在应用程序关闭时获取位置?

ios - MKAnnotationView 层不是预期的类型 : MKLayer

objective-c - UITableView 没有取消选择?

c++ - c++ 中是否有与 glibc mtrace() 函数类似的函数?

Android - MediaController 在 Activity 中泄漏

objective-c - UITextField 拒绝允许用户输入

ios - UserDefaults 和 If/else 不稳定的行为

ios - 捕获 UITableView 中显示的 UIWebView 内部的触摸