2017-01-12 10 views
2

を私は私のInfo.plistはFirebase IOS:警告

FirebaseAutomaticScreenReportingEnabled = NO 
が含まれていFirbase IOS

<FIRAnalytics/WARNING> setScreenName:screenClass: must be called after a view controller has appeared 

から取得しています警告を理解したい "setScreenName:screenClassビューコントローラが登場した後に呼び出されなければなりません"

私は、サンプルアプリから取ら

override func viewDidAppear(_ animated: Bool) { 
    super.viewDidAppear(animated) 
    recordScreenView()  
} 

func recordScreenView() { 
    // title from the story board 
    // These strings must be <= 36 characters long in order for setScreenName:screenClass: to succeed. 
    guard let screenName = title else { 
     return 
    } 
    let screenClass = classForCoder.description() 

    // [START set_current_screen] 
    GCITracking.sharedInstance.trackSetScreenName(screenName, screenClass: screenClass) 
    // [END set_current_screen] 
} 

コードを呼び出しています

私はスクリーンイベントを期待どおりに見ていませんが、これが自分のコードと関係があるのか​​GTM設定の問題なのか分かりません。

私は警告メッセージambigious

+0

まだ解決策はありますか? @Ryan Heitner – Aragunz

+0

@Florentt問題があるかどうかわからない、警告の説明が必要です。 –

+0

私は同じ問題を抱えています。なぜなら、組み込みのchildviewcontrollerを持つコンテナビューコントローラを使用しているからです。これらの子VCのsetScreenName:screenClassをviewDidAppearから呼び出しています。それはあなたの事件である可能性もありますか? – cdf1982

答えて

1

ちょうどGTM + Firebase実装して、この問題に直面し、警告がviewDidAppear方法でこのメソッドを呼び出すだけで消えて作られたが見つかりました:私は願っています

class ViewController: UIViewController { 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     // Do any additional setup after loading the view, typically from a nib. 
    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 

    override func viewDidAppear(_ animated: Bool) { 
     super.viewDidAppear(animated); 
     // ... 
     Analytics.setScreenName(screenName, screenClass: screenClass) 
    } 
} 

これは役に立ちます。