iOS App在加载GoogleTagManager容器

时间:2017-10-15 05:16:54

标签: ios swift google-analytics google-tag-manager firebase-analytics

我需要在我的iOS应用中为GoogleAnalytics实施Firebase + Google跟踪代码管理器。

我在一个空白的iOS项目上尝试了一个POC,为最新版本的GoogleTagManager和Firebase / Core安装了pod。 POC工作正常,我能够发送事件,事件将记录到服务器上的GA。

然而,当我安装GTM和Firebase / Core的最新版本,同样的GoogleServices-info.plist,同样的GTM-XXXXXXX.json时,我发现我的应用程序崩溃,我可以看到“GoogleTagManager信息:正在加载容器:GTM- XXXXXXX“作为我控制台的最后一行。

Removing GoogleInterchangeUtilities
Downloading dependencies
Installing Firebase 4.3.0 (was 3.7.1)
Installing FirebaseAnalytics 4.0.4 (was 3.4.4)
Installing FirebaseCore 4.0.8 (was 3.4.3)
Installing FirebaseInstanceID 2.0.4 (was 1.0.9)
Using GoogleAnalytics (3.17.0)
Using GoogleSymbolUtilities (1.1.2)
Installing GoogleTagManager 6.0.0 (was 5.0.8)
Installing GoogleToolboxForMac (2.1.3)
Using GoogleUtilities (1.3.2)
Installing nanopb (0.3.8)

当我删除GoogleTagManager并仅保留FirebaseAnalytics时,该应用程序运行正常,Firebase Analytics正在服务器上接收事件。

通过不同论坛上的不同主题和堆栈溢出,我尝试将GTM和Firebase降级为GoogleTagManager -v5.0.8和Firebase / Core -v3.7.1以及FirebaseAnalytics。请注意,我没有提及FirebaseAnalytics的任何首选版本。令我惊讶的是,我的应用程序开始工作,并没有在任何地方破坏。但是,现在我看到,Firebase事件正在解雇,但GA没有收到任何事件。另外,我在控制台中看到事件的参数传递为null。

GoogleTagManager info: Processing logged event: gtm.load with parameters: (null)

Pod安装日志 -

Downloading dependencies
Installing Firebase 3.7.1 (was 4.3.0)
Installing FirebaseAnalytics 3.4.4 (was 4.0.4)
Installing FirebaseCore 3.4.3 (was 4.0.8)
Installing FirebaseInstanceID 1.0.9 (was 2.0.4)
Using GoogleAnalytics (3.17.0)
Installing GoogleInterchangeUtilities (1.2.2)
Using GoogleSymbolUtilities (1.1.2)
Installing GoogleTagManager 5.0.8 (was 6.0.0)
Using GoogleUtilities (1.3.2)

我不确定我的申请中出了什么问题。哪个库与Firebase或GoogleTagManager存在冲突?相同的设置在空白项目中正常工作。

我的应用程序使用其他一些手动添加的框架(不是通过Cocoapods) - AWS Frameworks,CyptoSwift,DropDown,Timberjack,Alamofire,Charts,Gloss,SwiftValidator,SwiftyJSON,SDWebImage,AWSFacebookSignIn,AWSGoogleSignIn,Blots,FBSDKCoreKit, FBSDKLoginKit,GoogleAppUtilities,GoogleAuthUtilities,GoogleNetworkUtilities,GoogleSignin,SafariServices。

希望有助于识别冲突(如果有的话)。

  

我说冲突的原因是因为最新版本的   GoogleTagManager和Firebase在我的空白应用POC中运行良好   使用相同的GoogleServices-info.plist和GTM-XXXXXXX.json文件。   此外,当我降级GTM和Firebase的版本时,该应用程序可用,   但在这种情况下,GA停止接收事件。

控制台日志:

  

Oct 17 09:39:30 XX-Shell [88944]:[Firebase / Core] [I-COR000005]尚未配置应用程序。

     

Oct 17 09:39:30 XX-Shell [88944]:[Firebase / Analytics] [I-ACS024000]调试模式已开启

     

Oct 17 09:39:30 XX-Shell [88944]:[Firebase / Analytics] [I-ACS023008]要禁用调试日志记录,请设置以下应用程序参数:-noFIRAnalyticsDebugEnabled

     

Oct 17 09:39:30 XX-Shell [88944]:[Firebase / Analytics] [I-ACS023009]启用调试日志记录

     

Oct 17 09:39:30 XX-Shell [88944]:[Firebase / Core] [I-COR000005]尚未配置应用程序。

     

2017-10-17 09:39:30.349 XX-Shell [88944:5891923] GoogleTagManager信息:正在加载容器:GTM-XXXXXXX

     

initializingUserPool2017-10-17 09:39:30.352 XX-Shell [88944:5891910] GoogleTagManager信息:尝试从网络加载容器GTM-XXXXXXX

     

Oct 17 09:39:30 XX-Shell [88944]:[Firebase / Analytics] [I-ACS025018]未记录事件。致电+ [FIRApp配置]:gtmTrackEvent_screenView

Update: 26Oct2017
  

我找到了相互冲突的库 - GoogleUtilities,   GoogleNetworkingUtilities和GoogleSymbolUtilities。我复制了所有的   在我的poc中项目相关的框架,我能够复制   问题。我开始一次删除一个库,我在这些上面盘旋   3个库导致问题(当它们在一起时)。希望谷歌会   调查此问题并尽快更新。我的实际问题   项目是,我有太多的子项目,我将不得不   解决所有子的冲突(谷歌和其他)   项目..这是一项繁琐的工作,:))

2 个答案:

答案 0 :(得分:0)

有没有办法隔离冲突的位置,也许是通过删除库?如果您可以从发生崩溃时获得堆栈跟踪,这也会有所帮助。

答案 1 :(得分:0)

我认为问题可能来自GTM容器。如果更新了容器并更新了JSON,则可能影响了应用程序。尝试删除您更新的容器。这可能会暂时解决问题。