2016-08-17 51 views
6

我一直在調試我的應用程序,它使用Firebase進行內存泄漏,經過一段時間挖入我的代碼後,我發現實際問題是FIRApp.configure()它在我的application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?)在AppDelegate中。FIRApp.configure()創建內存泄漏IOS

據我所知,一切都以正確的方式配置,我使用可可豆莢來安裝和更新Firebase。我還在修改我的AppDelegate裏面我的狀態欄上的代碼如下:

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(),因爲我將它移除以進行測試並且沒有泄漏。

希望任何人有關於如何解決此泄漏的想法,謝謝。

+0

你有沒有得到這個問題的任何解決方案? – mayuur

回答

1

我有同樣的問題。經過一番挖掘,似乎Firebase Analytics是導致泄漏的原因之一。

這裏是我做過什麼:

  • GoogleServiceIn-info.plist設置FIREBASE_ANALYTICS_COLLECTION_ENABLEDNO
  • FIREBASE_ANALYTICS_COLLECTION_DEACTIVATEDYES

至少這對我有用。對於那些依賴firebase分析的人來說,這絕對是一個錯誤。

+0

我不再爲我的應用使用Firebase,所以這是遲到的哈哈哈,謝謝,我以類似的方式解決了問題,希望他們很快解決這個問題。 – reojased

+0

你們是否填寫了錯誤報告? –

+0

你能指出哪些類或方法導致內存泄漏?我從上面的屏幕截圖看不到它。提到「firebase分析確實是一個bug」在這裏並不是很有幫助。 – adbitx