如何在 Testflight 上启用 Firebase Analytics 调试视图

问题描述 投票:0回答:6

通过 TestFlight 将应用程序安装到我的测试手机中后,我无法查看分析调试视图。

我已传入参数 -FIRDebugEnabled,并尝试过 -FIRAnalyticsDebugEnabled 但没有运气。

-FIRDebugEnabled -FIRAnalyticsDebugEnabled

如果我通过 Xcode 直接将应用程序安装到我的测试手机中,则调试视图将可用。但如果是通过TestFlight安装的,则看不到调试视图。

xcode ionic-framework testflight firebase-analytics
6个回答
6
投票

这可以通过将特殊标志注入 Firebase 的本地存储来完成。

-FIRDebugEnabled
命令行参数正在由以下两个框架进行检查:FirebaseCoreFirebaseAnalytics 框架。前者将标志保存到共享
UserDefaults
中,后者使用
APMUserDefaults
私有类,可以在运行时访问:

if let APMUserDefaults = NSClassFromString("APMUserDefaults") as AnyObject?,
   let userDefaults = APMUserDefaults.perform(#selector(getter: UserDefaults.standard))?.takeUnretainedValue() {
   _ = userDefaults.perform(#selector(NSMutableDictionary.setObject(_:forKey:)),
                            with: true, 
                            with: "/google/measurement/debug_mode")
}
UserDefaults.standard.set(true, forKey: "/google/firebase/debug_mode")

4
投票

application:didFinishLaunchingWithOptions:
文件的
AppDelegate
方法的第一行添加以下代码

CommandLine.arguments.append(contentsOf: ["-FIRDebugEnabled", "-FIRAnalyticsDebugEnabled"])

3
投票

之前添加以下代码

FirebaseApp.configure()
:

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

然后,转到目标的构建设置并将 Release's Optimization level 更新为

No Optimization [-Onone]

之后,上传到TestFlight。这个方法对我有用!


1
投票

除了前面的答案之外,对于正在寻找此内容的 React Native 用户,如果您使用像 react-native-config 这样的库,您可以使用 env 变量来打开/关闭此功能。

环境变量文件示例

ANALYTICS_DEBUG=true

在 AppDelegate.mm 的

didFinishLaunchingWithOptions
方法中:

  NSString *analyticsDebug = [ReactNativeConfig envFor:@"ANALYTICS_DEBUG"];

  if (analyticsDebug != nil && [analyticsDebug isEqualToString:@"true"]) {
    NSProcessInfo *processInfo = [NSProcessInfo processInfo];
    NSArray *arguments = [processInfo arguments];
    NSMutableArray *newArguments = [NSMutableArray arrayWithArray:arguments];

    [newArguments addObject:@"-FIRDebugEnabled"];
    [newArguments addObject:@"-FIRAnalyticsDebugEnabled"];

    [[NSProcessInfo processInfo] setValue:[newArguments copy] forKey:@"arguments"];
  }

  // Setup Firebase
  [FIRApp configure];

确保之后设置 Firebase,否则这将不起作用。


0
投票

您可以在这里找到 2024 年的有效解决方案:

https://github.com/invertase/react-native-firebase/issues/7648


0
投票

不确定这里是否需要一切,但这适用于最新版本的 Swift。在

application:didFinishLaunchingWithOptions:
FirebaseApp.configure()
之前:

CommandLine.arguments.append(contentsOf: ["-FIRDebugEnabled", "-FIRAnalyticsDebugEnabled"])
UserDefaults.standard.set(true, forKey: "/google/measurement/debug_mode")
UserDefaults.standard.set(true, forKey: "/google/firebase/debug_mode")

如果它不适合您,请在 Info.plist 中,将键

FIREBASE_ANALYTICS_COLLECTION_ENABLED
添加到
NO
以确保分析收集仅在您设置调试模式后启动,然后在
FirebaseApp.configure()
之后调用:

Analytics.setAnalyticsCollectionEnabled(true)
© www.soinside.com 2019 - 2024. All rights reserved.