我一直在调试我的应用程序,它使用 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
}
我还展示了仪器工具以显示有关泄漏的更多详细信息:
而且我确定它是 FIRApp.configure()
,因为我将其移除进行测试并且没有泄漏。
希望有人知道如何修复此漏洞,谢谢。
最佳答案
我也遇到了同样的问题。经过一番挖掘,似乎 Firebase Analytics 是导致泄漏的原因。
这是我做的:
- 将
FIREBASE_ANALYTICS_COLLECTION_ENABLED
设置为NO
FIREBASE_ANALYTICS_COLLECTION_DEACTIVATED
到GoogleServiceIn-info.plist
中的YES
。
至少这对我有用。对于那些依赖 firebase 分析的人来说,这绝对是一个错误。
关于ios - FIRApp.configure() 创建内存泄漏 IOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39007621/