我正在查看我的应用在flurry中使用的最常用版本号。似乎flurry使用我的plist中的构建号字段(捆绑版本)来报告特定应用程序的版本。这是真的吗?如果是,我能否使用plist中的其他字段?(例如Bundle Version string short)。如何操作?我经常更改构建号,希望在flurry中看到类似1.0.1(版本)而不是28(构建号)的内容。
我也曾受到这个问题的困扰,他们默认使用构建号似乎很奇怪。我添加了一个自动递增的构建号脚本,在我下次检查 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];
// ...
}
if let version = Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String {
Flurry.startSession("xxxxxxxxxxxxxxxxxxx", with: FlurrySessionBuilder
.init()
.withCrashReporting(true)
.withLogLevel(FlurryLogLevelAll).withAppVersion(version))
}