diff --git a/Tools/XcodeCapp/XcodeCapp/AppController.m b/Tools/XcodeCapp/XcodeCapp/AppController.m index 570325dae..044079217 100644 --- a/Tools/XcodeCapp/XcodeCapp/AppController.m +++ b/Tools/XcodeCapp/XcodeCapp/AppController.m @@ -66,9 +66,19 @@ AppController *SharedAppControllerInstance = nil; self.statusMenu.delegate = self; self.helpTextView.textContainerInset = NSMakeSize(10.0, 10.0); - if ([[NSUserDefaults standardUserDefaults] boolForKey:kDefaultFirstLaunch]) + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + + double firstLaunchVersion = [defaults doubleForKey:kDefaultFirstLaunchVersion]; + + // Note: the scanner will only get the major.minor version numbers, which is what we want. + NSScanner *scanner = [NSScanner scannerWithString:[self bundleVersion]]; + double appVersion = 0.0; + [scanner scanDouble:&appVersion]; + + if ([defaults boolForKey:kDefaultFirstLaunch] || appVersion > firstLaunchVersion) { - [[NSUserDefaults standardUserDefaults] setBool:NO forKey:kDefaultFirstLaunch]; + [defaults setBool:NO forKey:kDefaultFirstLaunch]; + [defaults setDouble:appVersion forKey:kDefaultFirstLaunchVersion]; [self openHelp:self]; } @@ -96,6 +106,7 @@ AppController *SharedAppControllerInstance = nil; NSDictionary *appDefaults = @{ kDefaultLastEventId: [NSNumber numberWithUnsignedLongLong:kFSEventStreamEventIdSinceNow], kDefaultFirstLaunch: @YES, + kDefaultFirstLaunchVersion: @2.0, kDefaultXCCAPIMode: [NSNumber numberWithInt:kXCCAPIModeAuto], kDefaultXCCReactMode: @YES, kDefaultXCCReopenLastProject: @YES, @@ -348,7 +359,7 @@ AppController *SharedAppControllerInstance = nil; - (NSString *)bundleVersion { - return [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleShortVersionString"]; + return [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleVersion"]; } @end diff --git a/Tools/XcodeCapp/XcodeCapp/UserDefaults.h b/Tools/XcodeCapp/XcodeCapp/UserDefaults.h index c299e8163..3e25d9797 100644 --- a/Tools/XcodeCapp/XcodeCapp/UserDefaults.h +++ b/Tools/XcodeCapp/XcodeCapp/UserDefaults.h @@ -13,6 +13,7 @@ extern NSString * const kDefaultLastEventId; extern NSString * const kDefaultFirstLaunch; +extern NSString * const kDefaultFirstLaunchVersion; extern NSString * const kDefaultXCCAPIMode; extern NSString * const kDefaultXCCReactMode; extern NSString * const kDefaultXCCReopenLastProject; diff --git a/Tools/XcodeCapp/XcodeCapp/UserDefaults.m b/Tools/XcodeCapp/XcodeCapp/UserDefaults.m index a78ac65cc..3a3bc34ff 100644 --- a/Tools/XcodeCapp/XcodeCapp/UserDefaults.m +++ b/Tools/XcodeCapp/XcodeCapp/UserDefaults.m @@ -11,6 +11,7 @@ NSString * const kDefaultLastEventId = @"lastEventId"; NSString * const kDefaultFirstLaunch = @"FirstLaunch"; +NSString * const kDefaultFirstLaunchVersion = @"firstLaunchVersion"; NSString * const kDefaultXCCAPIMode = @"XCCAPIMode"; NSString * const kDefaultXCCReactMode = @"XCCReactMode"; NSString * const kDefaultXCCReopenLastProject = @"XCCReopenLastProject";