Many apps these days show an alert on app's launch saying a new update is present at the store.
To implement this feature first we need to find version of the app available on app store and version of the current running app and then compare both of them.
Here's how to do it :
+ (BOOL)newVersionPresent {
// 1. Get bundle identifier
NSDictionary* infoDict = [[NSBundle mainBundle] infoDictionary];
NSString* appID = infoDict[@"CFBundleIdentifier"];
// 2. Find version of app present at itunes store
NSURL* url = [NSURL URLWithString:[NSString stringWithFormat:@"http://itunes.apple.com/lookup?bundleId=%@", appID]];
NSData* data = [NSData dataWithContentsOfURL:url];
NSDictionary* itunesVersionInfo = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
// if app present
if ([itunesVersionInfo[@"resultCount"] integerValue] == 1){
NSString* appStoreVersion = itunesVersionInfo[@"results"][0][@"version"];
// 3. Find version of app currently running
NSString* currentVersion = infoDictionary[@"CFBundleShortVersionString"];
// 4. Compare both versions
if ([appStoreVersion compare:currentVersion options:NSNumericSearch] == NSOrderedDescending) {
// app needs to be updated
return YES;
}
}
return NO;
}
#warning: The lookup by bundleId works fine but is not in apple's documentation. So apple could change it without notice. Read this for more info.
Once found that a new version of the app is present at the app store we can also give user the option to go to the version of the app at the appstore. Following code snippet does this for us:
+(void)goToAppStore {
static NSString *const iOSAppStoreURLFormat = @"itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=%@";
NSURL *appStoreLink = [NSURL URLWithString:[NSString stringWithFormat:iOSAppStoreURLFormat, APP_STORE_ID]];
[[UIApplication sharedApplication] openURL:appStoreLink];
}
Where APP_STORE_ID is the app Id of your app. This can be found by following these steps:
- Open iTunes
- Search for your app
- Click/RightClick on app's name and copy URL
The URL is in following format: http://itunes.apple.com/[country]/app/[App–Name]/id[App Id or Store Id]?mt=8
The App Id or Store Id is our required id.
0 Comment(s)