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

时间:2016-08-17 23:13:20

标签: ios swift memory-leaks firebase cocoapods

我一直在调试使用Firebase进行内存泄漏的应用程序,经过一段时间挖掘我的代码后,我发现实际问题是AppDelegate中FIRApp.configure()内的application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?)实际问题

据我所知,所有内容都以正确的方式配置,我使用可可豆荚来安装和更新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(),因为我将其删除进行测试并且没有泄漏。

希望有人知道如何解决这个漏洞,谢谢。

1 个答案:

答案 0 :(得分:1)

我有同样的问题。经过一番挖掘后,似乎Firebase Analytics就是造成泄密的原因。

这是我做的:

  • FIREBASE_ANALYTICS_COLLECTION_ENABLED设为NO
  • FIREBASE_ANALYTICS_COLLECTION_DEACTIVATED
  • YESGoogleServiceIn-info.plist

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