根據最佳做法指導配置Firebase並使用「Firebase/Crash」窗格,使用針對iOS 10.1的Swift 3在Xcode 8.1中創建的乾淨iOS項目中打破設備輪換。Firebase Crash pod在iOS設備上停止設備輪換
步驟來重現
- 創建一個新的iOS項目(例如,使用iOS的模板 「選項卡式應用程序」)。
- 將「Firebase/Core」和「Firebase/Crash」窗格添加到您的pod文件中,安裝窗格併爲您的項目打開新創建的工作區文件。
- 將相應的文件添加到您的項目中。
- 在您的應用委託中重寫
init()
以配置Firebase,如下所示。 - 注意到您的應用目標的部署信息已在「設備方向」下爲「縱向」,「左側風景」和「右側風景」勾選了方框。
- 在模擬器中運行應用程序,並向左或向右旋轉。
配置火力地堡
火力地堡應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的最佳做法指南。
問題
- 爲什麼以這種方式打破設備旋轉配置火力地堡?
- 如果我想按照最佳做法指南中描述的方式使用啓用了離線持久性的「Firebase/Crash」和「Firebase/Database」,什麼是配置Firebase而不中斷設備輪換的適當方式?
看起來at least one other user遇到同樣的問題。
我不確定你是否回答了這個問題!?我遇到了與此相同的問題...我按照Firebase網站上的步驟進行了操作,但設備的旋轉仍然不起作用! – Learn2Code
按照Firebase Support的建議,當我在'application(_:didFinishLaunchingWithOptions:)'中配置Firebase而不是重寫'init()'時,問題就消失了。 – jamesk