我正在为我的应用程序查看我最常用的版本号。看来flurry正在我的plist中使用内部版本号字段(包版本)来报告特定应用程序的版本。这是真的?如果是这样,我可以在我的plist中使用不同的字段吗? (即Bundle Version string short)怎么样?我经常更改内部版本号,我希望看到像1.0.1(一个版本)而不是28(一个版本号)的东西。
答案 0 :(得分:14)
我对此也有所了解,对我来说似乎很奇怪他们会默认使用内部版本号。我添加了一个自动递增的构建号脚本,当我下次检查Flurry时,它显示了大约100个不同的#34;版本",每个只是一个新构建。呃,真是一团糟。
好消息是Flurry API在运行时提供了explicitly set the reported app version的方法。我的前缀文件中有#define链接到"短版本字符串",这在Apple的系统中基本上是面向用户的应用程序版本(例如" 1.0.2&# 34;),可能是你想在Flurry中跟踪的那个。
#define kAppVersion [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleShortVersionString"]
这样做意味着您不必记住在多个地方设置版本。将其设置在您的目标"身份"部分或在Info.plist文件中,您已完成。
然后在我的app delegate的应用程序: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];
// ...
}
答案 1 :(得分:0)
以上方法已被弃用,而不是用户,如下所示。
if let version = Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String {
Flurry.startSession("xxxxxxxxxxxxxxxxxxx", with: FlurrySessionBuilder
.init()
.withCrashReporting(true)
.withLogLevel(FlurryLogLevelAll).withAppVersion(version))
}