首先需要获得当前软件的版本号,通过和'旧'版本号比对判断出 app 是否第一次打开,是否需要展示当前软件的新特性引导页面.
版本号在主资源包的 Info.plist 文件中.
- 但是在 info.plist 中存储的键值不是真实的,所以我们通过查看 Source Code 的方式获得版本号的真实键值
我们在第一次打开软件时,将当前版本存入用户偏好设置.
下次打开的时候,拿出上次手动存储的版本号与软件版本号进行比对.就可以判断出当前软件是否第一次打开.
实现代码如下
@implementation XBVersion
+ (instancetype)chooseRootViewController{
// 取出当前软件版本号
NSString *curVersion = [NSBundle mainBundle].infoDictionary[@"CFBundleShortVersionString"];
NSLog(@"Current Version -- %@",curVersion);
// 取出上次手动存储的版本号
NSString *oldVersion = [[NSUserDefaults standardUserDefaults] objectForKey:@"VersionKey"];
NSLog(@"Old Version -- %@",oldVersion);
// 比对当前软件是否第一次打开
if ([curVersion isEqual:oldVersion]){
NSLog(@"没有新特性");
} else {
NSLog(@"有新特性");
// 手动将当前版本存入偏好设置
[[NSUserDefaults standardUserDefaults] setValue:curVersion forKey:@"VersionKey"];
}
return nil;
}
@end
代码运行效果如下
- 由于第一次打开, Old Version 的内容我们还没有手动添加,明显可以看到当前软件是第一次打开.
- 成功读取版本信息,可以有效的避免新特性被重复多次的展示.