Firebase iOS调试控制台没有记录任何内容

31
我已经在控制台和应用程序中设置了 Firebase。一切都正确配置,事件似乎正在应用程序中记录。
控制台输出:
<FIRAnalytics/DEBUG> Logging event: origin, name, params: app, 
log_something, {
        "_o" = app;
        "full_text" = khbsdpibdsjl;
        name = lwkjbgskljsavdkjl;
    }

我已经启用了调试标志:-FIRDebugEnabled

但是在调试事件控制台中没有任何内容。 我看不到可用的设备,没有记录的事件,完全没有任何连接的迹象。 我一定漏掉了什么吗?

编辑:我一直在遵循设置调试事件的步骤。https://firebase.google.com/docs/analytics/debugview#enabling_debug_mode

尽管我已启用调试模式,但我在StreamView中看到事件,但在调试视图中什么也没有。


1
至少对我来说,当我在模拟器上测试分析日志功能时,没有任何事件被记录。然而,当我在实际的 iPhone 上尝试时,它却起作用了! - mj23
这个评论是解决方案。 - Henrik
12个回答

46
试一下这个,这对我有用,
按照以下步骤进行操作,
1. 在Xcode中,选择Product → Scheme → Edit Scheme

enter image description here

2. 从左侧菜单中选择“运行”,然后选择“参数”选项卡。 在“传递的参数”选项中添加“-FIRDebugEnabled”。

enter image description here

要查看详细的调试视图,请按照以下步骤进行:DebugView track Firebase doc

要在Xcode项目中发送事件,请按照下面的代码:

Objective C

[FIRAnalytics logEventWithName:@"share_image"
                    parameters:@{@"name": name, @"full_text": text}];

Swift
Analytics.logEvent("share_image", parameters: ["name": name, "full_text": text])

要查看事件日志,请按照以下详细步骤操作 在 Firebase 应用文档中记录事件日志

希望这能对某人有所帮助。


1
你可以从这个答案中理解视觉效果。 - mkeremkeskin
1
这也有助于稍后通过VSCode运行。 - Cyber

30
请确保在您的项目计划中,如果您曾经添加了OS_ACTIVITY_MODE:disable,请务必从环境变量中删除它。

有人在我们的调试构建中放置了 OS_ACTIVITY_MODE=${DEBUG_ACTIVITY_MODE},这取决于您运行的XCode版本,有时启用,有时禁用。 - jes5199

28

请确保在-FIRDebugEnabled之前添加一个破折号(DASH)

由于错过了DASH,我浪费了一整天时间做傻事。

希望这不会发生在其他人身上!


2
自你发表评论已经过去了3年,但它仍然有所帮助 :D - Toan Tran Van
很高兴它仍然有所帮助 :) - Dhaval H. Nena
1
还在帮忙。我浪费了整整一天的时间试图弄清楚这个问题,但什么都没用,只有这个方法有效。 - Maruta
很高兴知道它仍然有帮助 :) @Maruta - Dhaval H. Nena

23

现在这个问题已经不太重要了,但对于那些遇到错误的人来说仍然很重要。由于 GoogleServices-Info.plist 文件出现问题,Firebase Analytics 的调试模式有时候无法工作。

只需进行以下两个更改即可:

  1. 将 IS_ANALYTICS_ENABLED 设置为 YES
  2. 将 FIREBASE_ANALYTICS_COLLECTION_DEACTIVATE 设置为 NO

非常感谢。这两个键解决了我的问题。 - hakkikonu
2
“FIREBASE_ANALYTICS_COLLECTION_DEACTIVATE”这个键是否仍然相关?新的“GoogleServices-Info.plist”文件不包含这样的字段。 - genericUser
Firebase分析是否已禁用? - MindBlower3
@Abdullah,非常感谢!我真没想到plist文件会有一个禁用的分析标志!哇。 - Rethunk

11

或者你可以在AppDelegate中执行此操作:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {

    var newArguments = ProcessInfo.processInfo.arguments
    newArguments.append("-FIRDebugEnabled")
    ProcessInfo.processInfo.setValue(newArguments, forKey: "arguments")
    
} 

---EXTRA---

还有一些想法:

关于

Firebase.Analytics.setAnalyticsCollectionEnabled(true)

如果我们检查这个方法:

enter image description here

那它有点毫无意义...


在最新的Firebase版本(SPM)中,我无法通过编程方式使用ProcessInfo.processInfo以调试模式登录。你能用它工作吗?为了使其正常工作,我必须在Xcode设置中设置-FIRDebugEnabled。 - arcangel06

8
我也有同样的问题。 1检查你的Cocopods的Firebase版本。
  • 使用pod update Firebase
  • 确保它是最新的
2开启调试模式。
  • 在"Arguments Passed On Launch"部分
  • 添加-FIRDebugEnabled。

1
我得到了一些非常古怪和不稳定的结果。调试流起作用,突然间它停止显示事件。 - Yaron Levi
1
一旦我通过更新pods更新Firebase,事件就被记录下来了。所以对我来说它有效。 - Keerthi Polepalle

7
我通过编写以下内容使其成为可能:
func application(_ application: UIApplication, didFinishLaunchingWithOptions, ...) {
    // some other initialization

    FirebaseApp.configure()
    Firebase.Analytics.setAnalyticsCollectionEnabled(true)
}

1
这确实有所帮助。谢谢。 - Filip Luchianenco
2
我对它默认启用的评论持怀疑态度,而且我已经确认在plist中启用了它。但是,直到我添加了这一行代码,它才起作用。 - Henry Mueller
仍然相关吗?我正在使用FirebaseAnalytics,它还注释说setAnalyticsCollectionEnabled默认设置为true。 - genericUser

1

在访问Firebase网站时,请检查您是否启用了广告拦截器。

我启用了uBlock Origin,它会阻止每个页面(仪表板、事件、流视图、调试视图...),它们都是空白的。

只要我将其添加到白名单中,一切就都按预期工作。


1

几天前遇到了这个问题,尝试了互联网上找到的每一个解决方案,但都没有起作用。以下是我用来最终启用DebugView查找我的设备的步骤:

  1. 关闭您正在使用的设备上的应用程序

  2. 转到Firebase控制台并退出您的帐户

  3. 重新登录,进入控制台并选择您正在使用的项目。

同样,不确定这是否有所不同,但请勿单击“项目快捷方式”列表下的DebugView项。相反,请单击“分析”下拉菜单并从中选择DebugView。

  1. 可能会更新在DebugView页面中使用的数据流程-在按照这些步骤后,我注意到最初错过的事件现在正在显示出来-几乎就像事件已经被正确发送/接收,但DebugView没有显示正确的数据流程。

额外提示:

今天再次遇到了这个问题,在退出/登录Firebase后,DebugView仍然无法找到我的设备。解决方法是,在我的设备上,将应用程序移到后台,即从底部向上滑动以转到主屏幕...

当您将应用程序重新打开到前台时,DebugView现在应该开始显示事件。我想这是因为将应用程序移至后台的操作会触发设备上保存的任何事件发送到Firebase,从而清空队列。


0
如果您已经按照 Firebase 文档的说明完成了所有步骤,那么可能是因为在 Firebase Analytics 的“调试视图”中选择了错误的“调试设备”。在更改左上角的调试设备后,我之前的所有分析事件都被显示出来了!所以并不是我的事件没有被发送到 Firebase,而是我看到了错误的视图。附有图片。

Debug Device Picker


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接