diff --git a/Classes/BITStoreUpdateManager.m b/Classes/BITStoreUpdateManager.m index 729677c500..5eef6b3aa4 100644 --- a/Classes/BITStoreUpdateManager.m +++ b/Classes/BITStoreUpdateManager.m @@ -160,8 +160,15 @@ _newStoreVersion = [(NSDictionary *)[(NSArray *)[dictionary objectForKey:@"results"] objectAtIndex:0] objectForKey:@"version"]; _appStoreURL = [(NSDictionary *)[(NSArray *)[dictionary objectForKey:@"results"] objectAtIndex:0] objectForKey:@"trackViewUrl"]; + NSString *ignoredVersion = nil; + if ([self.userDefaults objectForKey:kBITStoreUpdateIgnoreVersion]) { + ignoredVersion = [self.userDefaults objectForKey:kBITStoreUpdateIgnoreVersion]; + } + if (!_newStoreVersion || !_appStoreURL) { return NO; + } else if (ignoredVersion && [ignoredVersion isEqualToString:_newStoreVersion]) { + return NO; } else if (!lastStoreVersion) { // this is the very first time we get a valid response and // set the reference of the store result to be equal to the current installed version @@ -355,7 +362,6 @@ cancelButtonTitle:BITHockeyLocalizedString(@"UpdateIgnore") otherButtonTitles:BITHockeyLocalizedString(@"UpdateRemindMe"), BITHockeyLocalizedString(@"UpdateShow"), nil ]; - [alertView setTag:0]; [alertView show]; _updateAlertShowing = YES; } @@ -380,12 +386,16 @@ - (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex { _updateAlertShowing = NO; if (buttonIndex == [alertView cancelButtonIndex]) { - [self.userDefaults setObject:self.lastCheck forKey:kBITStoreUpdateDateOfLastCheck]; + // Ignore + [self.userDefaults setObject:_newStoreVersion forKey:kBITStoreUpdateIgnoreVersion]; [self.userDefaults synchronize]; } else if (buttonIndex == [alertView firstOtherButtonIndex]) { // Remind button } else if (buttonIndex == [alertView firstOtherButtonIndex] + 1) { // Show button + [self.userDefaults setObject:_newStoreVersion forKey:kBITStoreUpdateIgnoreVersion]; + [self.userDefaults synchronize]; + if (_appStoreURL) { [[UIApplication sharedApplication] openURL:[NSURL URLWithString:_appStoreURL]]; } diff --git a/Classes/HockeySDKPrivate.h b/Classes/HockeySDKPrivate.h index 95fd0d662f..de5d508e89 100644 --- a/Classes/HockeySDKPrivate.h +++ b/Classes/HockeySDKPrivate.h @@ -55,6 +55,7 @@ #define kBITStoreUpdateDateOfLastCheck @"BITStoreUpdateDateOfLastCheck" #define kBITStoreUpdateLastStoreVersion @"BITStoreUpdateLastStoreVersion" #define kBITStoreUpdateLastUUID @"BITStoreUpdateLastUUID" +#define kBITStoreUpdateIgnoreVersion @"BITStoreUpdateIgnoredVersion" #define BITHOCKEYSDK_BUNDLE @"HockeySDKResources.bundle" #define BITHOCKEYSDK_URL @"https://sdk.hockeyapp.net/"