2015-10-28 15 views
5

根據Google的文檔(Analytics for iOS),他們希望你下載一些自動生成的.plist文件來配置你的應用程序。不幸的是,我有多個報表套件(Debug,Release),需要根據構建動態切換。所以我試圖做兩件事之一:使用谷歌分析的iOS沒有.plist文件

  1. 有沒有辦法完全拋棄.plist文件並動態設置所有的配置?需要什麼樣的價值?

- 或 -

  • 我可以更改在谷歌的.plist文件中使用從我的項目的用戶自定義生成設置變量的值?我嘗試在Google .plist文件中添加一個名爲GOOGLE_ANALYTICS_ID的名稱並引用$ {GOOGLE_ANALYTICS_ID},但它不會替代我期望的值。
  • 您是如何動態地指示您的應用根據您的應用是Debug還是Release發送到不同的報表套件的?

    回答

    8

    你應該能夠溝的.plist文件,並設置它像這樣:

    #import "GAI.h" 
    ... 
    GAI *gai = [GAI sharedInstance]; 
    [gai trackerWithTrackingId:@"your GA id"]; 
    gai.trackUncaughtExceptions = YES; // optional 
    gai.logger.logLevel = kGAILogLevelVerbose; // optional - remove for release 
    

    因爲這是試圖讓從-plist文件中的參數,請不要使用GGLContext東西。

    +0

    我可以證實這工作時,這個答案http://stackoverflow.com/a/24112024/1359306結合。我使用了swift,並將'trackUncaughtExceptions'設置爲true,'trackerWithTrackingId'和'dispatchInterval'。 – Patrick

    +0

    非常感謝這個建議!我不知道爲什麼文檔甚至沒有提到這種方法!我正在嘗試在構建階段將plist文件與運行腳本交換,直到找到此選項! –

    +0

    很高興知道這種古老的方式仍然有效。謝謝! –

    0

    遇到同樣的問題。我的解決方案是爲QA和生產創建單獨的構建目標,在代碼中使用預處理器宏來實現目標特定設置,並使用2個單獨的plist文件來處理像facebook應用程序ID,軟件包ID(您可以指定哪個plist文件構建目標正在使用項目設置的「信息」選項卡)。

    與每個目標的GA-2 plist文件相同,並避免命名衝突(因爲如果您從GoogleService-Info更改plist名稱,應用程序將崩潰) - 只需將您的QA plist放在單獨的文件夾中,從那裏仍然工作得很好。

    不要與目標成員惹你的Plist :)