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

reo*_*sed 6 memory-leaks ios cocoapods firebase swift

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

据我所知,所有内容都以正确的方式配置,我使用可可豆荚来安装和更新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
}
Run Code Online (Sandbox Code Playgroud)

我还展示了仪器工具,以显示泄漏的更多细节:

CFNetwork是负责任的图书馆

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

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

小智 1

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

这是我所做的:

  • 设置FIREBASE_ANALYTICS_COLLECTION_ENABLEDNO
  • FIREBASE_ANALYTICS_COLLECTION_DEACTIVATED在。YESGoogleServiceIn-info.plist

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