2016-11-06 46 views
1

根據最佳做法指導配置Firebase並使用「Firebase/Crash」窗格,使用針對iOS 10.1的Swift 3在Xcode 8.1中創建的乾淨iOS項目中打破設備輪換。Firebase Crash pod在iOS設備上停止設備輪換

步驟來重現

  1. 創建一個新的iOS項目(例如,使用iOS的模板 「選項卡式應用程序」)。
  2. 將「Firebase/Core」和「Firebase/Crash」窗格添加到您的pod文件中,安裝窗格併爲您的項目打開新創建的工作區文件。
  3. 將相應的文件添加到您的項目中。
  4. 在您的應用委託中重寫init()以配置Firebase,如下所示。
  5. 注意到您的應用目標的部署信息已在「設備方向」下爲「縱向」,「左側風景」和「右側風景」勾選了方框。
  6. 在模擬器中運行應用程序,並向左或向右旋轉。

配置火力地堡

火力地堡應AppDelegate.swift配置如下:

override init() { 
    super.init() 
    FIRApp.configure() // This line breaks rotation if "Firebase/Crash" is installed. 
} 

火力地堡的「best practices」爲iOS指導說事「可以去錯了」未配置火力地堡時通過覆蓋應用程序委託中的init()。這意味着在application(_:didFinishLaunchingWithOptions:)中配置Firebase時出現編程錯誤。但是,如果採用後一種方法,則設備旋轉按預期發揮作用。

Other SO answers還建議遵循Firebase的最佳做法指南。

問題

  1. 爲什麼以這種方式打破設備旋轉配置火力地堡?
  2. 如果我想按照最佳做法指南中描述的方式使用啓用了離線持久性的「Firebase/Crash」和「Firebase/Database」,什麼是配置Firebase而不中斷設備輪換的適當方式?

看起來at least one other user遇到同樣的問題。

回答

0

Firebase支持部門建議,爲iOS配置Firebase的適當方式是application:didFinishLaunchingWithOptions:「這是一種正確的方法,您不應該遇到任何問題。」

current documentation指出Firebase是使用此方法「典型」配置的。

他們還建議iOS的「best practices」指南將在內部進行討論,以確定它是「仍然相關還是需要更新」。

+0

我不確定你是否回答了這個問題!?我遇到了與此相同的問題...我按照Firebase網站上的步驟進行了操作,但設備的旋轉仍然不起作用! – Learn2Code

+0

按照Firebase Support的建議,當我在'application(_:didFinishLaunchingWithOptions:)'中配置Firebase而不是重寫'init()'時,問題就消失了。 – jamesk