iOSバージョンの検出更新


実際には、現在のバージョンが最新バージョンであるかどうかを検出し、現在のAPPバージョンとAPP Storeのバージョン番号が同じかどうかを比較するだけです.同じ場合、説明は最新バージョンで、逆に最新バージョンではありません.では、問題が来ました.APP StoreのAPPのバージョン情報を取得するにはどうすればいいですか?方法は簡単です.
まず、現在のAPPのバージョン情報を入手します.コードを参照してください.
#pragma mark-    app    
- (NSString *)getCurrentAPPVersion
{
    NSDictionary *infoDic = [[NSBundle mainBundle] infoDictionary];
    NSString* currentVersion = infoDictionary[@"CFBundleShortVersionString"];
    return currentVersion;
}

次に、APP StoreのAPPバージョン情報を取得します.
#pragma mark-  appstore  app  
- (NSString *)getCurrentAppStoreVersion
{
    NSString *appID = @"XXXXXX";
    NSURL* url = [NSURL URLWithString:[NSString stringWithFormat:@"http://itunes.apple.com/lookup?id=%@", appID]];
    NSData* data = [NSData dataWithContentsOfURL:url];
    NSDictionary* dicInfo = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];

    if ([dicInfo[@"resultCount"] integerValue] == 1){
        NSString* appStoreVersion = dicInfo[@"results"][0][@"version"];
	return appStoreVersion;
    }
    return nil;
}

ここで言う必要があるのはhttp://itunes.apple.com/lookup?id=APPID要求されたデータはJSONデータです.APPIDはログイン可能ですhttps://itunesconnect.apple.com必要なAPPIDを確認します.JSONデータフォーマットは以下の通りです.
APPIDエラーの場合、次のデータが返されます.
{
 "resultCount":0,
 "results": []
}

APPIDが正しい場合は、次のデータが返されます.
{
"resultCount": 1,
"results": [
{
"advisories": [
],
「artistId」:開発者ID、
「artistName」:開発者名、
「artistViewUrl」:「開発者情報サイト」
artworkUrl 100:アイコン、
「artworkUrl 512」:アイコン、
「artworkUrl 60」:アイコン、
"bundleId": BundleID,
"contentAdvisoryRating": "4+",
"currency": "USD",
「description」:説明情報、
"features": [
],
「ファイルサイズ」
「formattedPrice」:「価格」,
"genreIds": [
分類ID番号
],
"genres": [
ぶんかつ
],
"ipadScreenshotUrls": [
],
"isGameCenterEnabled": false,
"kind": "software",
"languageCodesISO2A": [
サポート言語
],
「minimumOsVersion」:「サポートされている最小iOSバージョン」
「price」:価格、
"primaryGenreId": 6009,
"primaryGenreName": "News",
releaseDate:パブリッシュ時間、
releaseNotes:バージョンの新しいプロパティ
"screenshotUrls": [
スクリーンショット
],
「sellerName」:販売者名、
"supportedDevices": [
サポートされるデバイス
],
「trackCentoredName」:「レビュー名」、
「trackContentRating」:「評価」
「trackId」:アプリケーションID、
「trackName」:アプリケーション名、
「trackViewUrl」:「アプリ紹介サイト、このサイトを通じてApp Storeにアクセスしてアプリの更新ダウンロードを行うことができます」
バージョン:バージョン番号、
"wrapperType": "software"
}
]
}
ここではversionという情報しか必要ありません.
最後に、バージョン情報の比較を行います.上記の2つの方法を呼び出すだけで、以下のようになります.
#pragma mark -    
- (void)checkUpdate
{
    NSString *curVersion = [self currentAppVersion];
    NSString *appStoreVersion = [self currentAppStoreVersion];
    if( appStoreVersion != nil )
    {
        if( ![appStoreVersion isEqualToString:curVersion] )
        {
            NSLog(@"       ,     ");
	
        }
        else
        {
            NSLog(@"       ");
        }
    }
    else
    {
        NSLog(@"   BundleId");
    }
}

これで、バージョン更新検出が完了しました.
私たちの前にはhttp://itunes.apple.com/lookup?id=APPID情報を取得します.同様に、次の2つの方法で取得できます.
1.通過http://itunes.apple.com/lookup?bundleId=BundleIdBundleIdはあなたのアプリのBundleIdです
2. http://itunes.apple.com/search?term=あなたのアプリケーション名&entity=software
最後に、上記のtrackViewUrlキー値は、次のコードで開くことができます.
        NSString *url = dicInfo[@"results"][0][@"trackViewUrl"];
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:url]];