현재 디바이스에 설치된 앱이 App Store에 출시된 최신 버전인지 체크하는 방법이다.


+ (BOOL)needsUpdate

{

    NSDictionary* infoDictionary = [[NSBundle mainBundle] infoDictionary];

    NSString* appID = infoDictionary[@"CFBundleIdentifier"];

    NSURL* url = [NSURL URLWithString:[NSString stringWithFormat:@"http://itunes.apple.com/lookup?bundleId=%@", appID]];

    NSData* data = [NSData dataWithContentsOfURL:url];

    NSDictionary* lookup = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];

    

    BOOL result = NO;

    

    if ([lookup[@"resultCount"] integerValue] == 1){

        NSString* appStoreVersion = lookup[@"results"][0][@"version"];

        NSString* currentVersion = infoDictionary[@"CFBundleShortVersionString"];


        NSArray *versionArray = [currentVersion componentsSeparatedByString:@"."];

        NSArray *appStoreArray = [appStoreVersion componentsSeparatedByString:@"."];

        

        for (int i=0; i<appStoreArray.count; i++) {

            

            int bundleStat = [versionArray[i] intValue];

            int serverStat = [appStoreArray[i] intValue];

            

            if (bundleStat == serverStat) {

                result = NO;

                continue;

                

            } else if (bundleStat > serverStat) {

                result = NO;

                break;

                

            } else {

                result = YES;

                break;

            }

        }

    }

    

    return result;

}


참고로 lookup 변수에는 앱스토어 등록되어있는 나의 앱에 대한 여러 정보들을 갖고있더라.







+ Recent posts