我一直在调试使用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
}
我还展示了仪器工具,以显示泄漏的更多细节:
我确定它是FIRApp.configure()
,因为我将其删除进行测试并且没有泄漏。
希望有人知道如何解决这个漏洞,谢谢。
答案 0 :(得分:1)
我有同样的问题。经过一番挖掘后,似乎Firebase Analytics就是造成泄密的原因。
这是我做的:
FIREBASE_ANALYTICS_COLLECTION_ENABLED
设为NO
FIREBASE_ANALYTICS_COLLECTION_DEACTIVATED
中YES
到GoogleServiceIn-info.plist
。 至少这对我有用。对于那些依赖firebase分析的人来说,这肯定是一个错误。