首先需要獲得當前軟件的版本號,通過和'舊'版本號比對判斷出 app 是否第一次打開,是否需要展示當前軟件的新特性引導頁面.
版本號在主資源包的 Info.plist 文件中.

Info.plist
- 但是在 info.plist 中存儲的鍵值不是真實的,所以我們通過查看 Source Code 的方式獲得版本號的真實鍵值

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 的內容我們還沒有手動添加,明顯可以看到當前軟件是第一次打開.

下次在打開時
- 成功讀取版本信息,可以有效的避免新特性被重復多次的展示.