Flurry Analytics如何跟踪我的应用程序版本号?

5

我正在查看我的应用在flurry中使用的最常用版本号。似乎flurry使用我的plist中的构建号字段(捆绑版本)来报告特定应用程序的版本。这是真的吗?如果是,我能否使用plist中的其他字段?(例如Bundle Version string short)。如何操作?我经常更改构建号,希望在flurry中看到类似1.0.1(版本)而不是28(构建号)的内容。

2个回答

14

我也曾受到这个问题的困扰,他们默认使用构建号似乎很奇怪。我添加了一个自动递增的构建号脚本,在我下次检查 Flurry 时,显示了约 100 个不同的“版本”,每个版本都是一个新的构建。唉,真是一团糟。

好消息是,Flurry API 提供了一种在运行时显式设置报告的应用程序版本的方法。我的前缀文件中有一个 #define 链接到“短版本字符串”,在 Apple 的系统中,它基本上是您用户界面的应用程序版本(例如“1.0.2”),可能是您想要在 Flurry 中跟踪的版本。

#define kAppVersion [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleShortVersionString"]

这样做的好处是您不必记得在多个地方设置版本号。只需在目标的“Identity”部分或Info.plist文件中设置它即可完成。

然后,在我的应用委托的application:didFinishLaunchingWithOptions:方法中,当我启动Flurry收集时,告诉它使用该版本号即可。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    [Flurry setCrashReportingEnabled:YES];
    [Flurry setAppVersion:kAppVersion]; // <-- will now report your short version string
    [Flurry startSession:kFlurryAPIKey];
    // ...
}

我已经这样做了,但是在仪表板的版本下拉菜单中没有看到新版本字符串显示出来。 - Dan F
@Dan F,也许先直接设置版本号会更好("[Flurry setAppVersion: @"1.0"];)。另外,请确保在调用startSession之前进行该调用,如果在之后调用它将不起作用。 - Ben Stahl

2
上述方法已被弃用,改用以下方法。
    if let version = Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String {
        Flurry.startSession("xxxxxxxxxxxxxxxxxxx", with: FlurrySessionBuilder
            .init()
            .withCrashReporting(true)
            .withLogLevel(FlurryLogLevelAll).withAppVersion(version))
    }

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