2011-09-11 16 views

答えて

14

は、ご自分のサーバ(または何か似た)起動時にアプリの要求は、入手可能な最新バージョンであるかを知るために上のWebサービスを持っている必要があります。 (あなたはまだWSを持っていないと、本当にそのための1つを実装したくない場合は、あまりにもバージョンが含まれているXMLまたはテキストファイルを使用する場合があります)

次に、あなたのサーバから取得し、このバージョンを比較現在のバージョンのアプリケーションでは、[[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleVersion"]を使用します。あなたのiPhoneは、アプリケーションのアップデートページに直接AppStoreのアプリケーションを開くようになりますリンクです

が異なる場合、あなたは(あなたのiTunesの接続のApp IDAPPIDを置き換える)itms-apps://phobos.apple.com/WebObjects/MZStore.woa/wa/viewSoftwareUpdate?id=[APPID]&mt=8にalertviewを表示し、リダイレクトすることができ、

+2

これを改善するには、ユーザー通知のリクエストをサーバーに送信する必要があります。このリクエストには、デバイスの種類、アプリケーションのバージョン、iOSのバージョン、その他のさまざまな診断情報が含まれます。その後、サーバーはその情報に基づいて、アプリケーションに送信するメッセージを決定することができます。たとえば、特定のデバイスにのみ影響を与えるメジャーなバグが見つかった場合、影響を受けたユーザーにあなたがアップルにバグ修正を提出したことを知らせることができます。この回答以来、Appleは[iTunesの検索API](http://www.apple.com/itunes/affiliates/resources/documentation/itunes-store-web-service-search-api.html)を解放したこと – Jim

+5

注意、あなたのアプリに関するいくつかのメタデータ(ストア上のバージョンを含む)を含むJSONを取得するには、 'http://itunes.apple.com/lookup?id= 'を呼び出すことができます。 Info.plist( 'CFBundleVersion')のバージョンと比較し、違うときは警告を発することができます。あなたは、 'SKStoreProductViewController'を使って、あなたのアプリケーションに直接統合されたAppStoreであなたのアプリケーションのページを提示することさえできます。 – AliSoftware

-2

私の友人はちょうど正確に何をしたいほとんどを行い、サービス、CleverStorkを、開始しました。

は、私はそれを自分自身を使用していないが、私の理解では、それがユーザーに求められていることである - アプリ内のアラートを経由して - あなたのアプリの新しいバージョンをダウンロードします。彼らは無料と有料のプランを提供しています。

+0

あなたが与えた商品リンクはありません。 – shrishaster

12

(注:iTunesConnectからのアプリのIDと一致するIDを変更):あなたは、最新バージョンを持っている場合だけ、次のクエリを使用して、アプリケーションデータ用のiTunesを問い合わせるかを確認するには

このリターンをあなたのコード内で直接使用するためにNSDictionaryに変換するのがとても簡単なJSON辞書は、「バージョン」キーの値を取り出し、それをあなたのアプリケーションのバージョン番号と比較するだけです(バージョンキー/値下記の太字):

{ 
    "resultCount": 1, 
    "results": [ 
     { 
      "kind": "software", 
      "features": [], 
      "supportedDevices": [ 
       "all" 
      ], 
      "isGameCenterEnabled": false, 
      "artistViewUrl": "https://itunes.apple.com/us/artist/d-m-holdings/id388608883?uo=4", 
      "artworkUrl60": "http://a899.phobos.apple.com/us/r1000/086/Purple/v4/6d/b3/05/6db305aa-c685-558b-8c8e-8b7245375ce1/IconAudio.png", 
      "screenshotUrls": [ 
       "http://a86.phobos.apple.com/us/r1000/078/Purple/v4/8f/ff/47/8fff4783-f2e4-fe3f-ef92-96d67d66c12b/mzl.dwbdvxny.png", 
       "http://a731.phobos.apple.com/us/r1000/097/Purple/v4/cb/65/f6/cb65f613-408a-dffe-fb36-165db0c1a360/mzl.jexyhdnq.png", 
       "http://a940.phobos.apple.com/us/r1000/097/Purple/v4/f6/26/a1/f626a18c-691f-7345-8d3d-f19713144818/mzl.llsgsagl.png", 
       "http://a185.phobos.apple.com/us/r1000/071/Purple/v4/7d/5e/bc/7d5ebcad-7755-e772-727c-65de99effd60/mzl.zuyvhebk.png", 
       "http://a48.phobos.apple.com/us/r1000/096/Purple/v4/d6/f5/f1/d6f5f108-10ab-3738-26cf-5ce82c6bb690/mzl.ijtyynie.png" 
      ], 
      "ipadScreenshotUrls": [], 
      "artworkUrl512": "http://a672.phobos.apple.com/us/r1000/100/Purple/v4/e3/cb/5d/e3cb5d2d-f1a8-8b80-3a91-58be8f654710/mzm.uogqezwx.png", 
      "artistId": 388608883, 
      "artistName": "D&M Holdings", 
      "price": 0, 
      **"version": "1.0.5",** 
      "description": "Designed to enhance the listening experience with Denon’s new line of Music Maniac™ headphones, the Denon Audio app is designed for the on-the-go audiophile. The Denon Audio app features a premium audio player that lets you experience the best possible sound quality from your iPod music library and favorite Internet radio stations. Create & save custom EQ curves, create & save instant playlists, enjoy internet radio stations via the built-in TuneIn service, and more. The Denon Audio app will quickly replace all of your other music apps.\n \nThe Denon Audio app features a customizable graphical equalizer that lets you contour your own sound by directly manipulating more than 1000 discrete bands of equalization without adding spatial distortion or decreasing sound quality. Pump up the bass, restore those highs, and start jammin’! \n \nEQ FEATURES:\n \n• Graphical equalizer for your iPod music library and streaming Internet Radio\n• 1000 possible discrete bands\n• 10 built in EQ Presets\n• Create and save your own EQ Presets\n• Bypass mode to quickly compare the original and equalized audio\n• Real-time spectrum analyzer\n• Linear phase design\n• No spatial distortion\n\nIPOD MUSIC LIBRARY FEATURES:\n\n• Enhances your listening experience with Denon Music Maniac Headphones or other audio playback devices such as docking stations, a/v receivers, car stereos via USB, Bluetooth, or Airplay.\n• Powerful queue based playback system lets you build and order your own playlist on the fly.\n• Save the playback queue as a new playlist\n• A single song, all songs on an album, all songs by an artist, and all songs in a genre can easily be added to the now playing queue.\n• Supports both portrait and landscape modes for browsing, playing, and equalizing\n• Shuffle and repeat playback modes\n• iPod library browsing by Playlist, Artist, Album, Song, Genre, Composer, Compilation, and Podcast (no importing needed)\n\nINTERNET RADIO FEATURES:\n\n• The TuneIn service provides global access to Internet radio – covering over 70,000 radio stations and 2 million on-demand programs including sports, news, talk, music and comedy. \n• Browse Internet radio stations by location, genre, language or Podcast (on-demand programs).\n• Powerful search feature for your iPod music library and Internet Radio \n• Save your favorite Internet Radio stations or programs as convenient presets and share them with other TuneIn compatible devices\n• Ability to choose high or low quality streams offered by broadcasters\n \nADDITIONAL FEATURES:\n\n• Streams music over AirPlay to any Denon AirPlay compatible receiver or HiFi product\n• Share what you’re listening to via Facebook, Twitter, Email, or Text Message (iMessage)\n\nNOTICES:\n \n• The Denon Audio app requires iOS 5 or later and works with the iPhone 3GS or newer, the iTouch 3rd generation or newer, and all iPads (in 2x mode). \n• DRM protected iTunes music is NOT supported by the Denon Audio app (or any 3rd party music app)\n• iTunes Match will be supported in a future update \n• WiFi or data connection required to stream Internet radio", 
      "currency": "USD", 
      "genres": [ 
       "Music", 
       "Lifestyle" 
      ], 
      "genreIds": [ 
       "6011", 
       "6012" 
      ], 
      "releaseDate": "2012-05-29T07:00:00Z", 
      "sellerName": "D&M Holdings Inc.", 
      "bundleId": "com.dm-holdings.denon-audio", 
      "trackId": 520604518, 
      "trackName": "Denon Audio", 
      "primaryGenreName": "Music", 
      "primaryGenreId": 6011, 
      "releaseNotes": "• Added 4\" display support for the iPhone 5 and 5th generation iPod Touch\n\n• Added an audio limiter function to protect against possible distortion introduced from pushing the EQ too high\n\n• Displays the Shuffle, Repeat, AirPlay, and Share icons as well as the scan/scrub controls on the \"Now Playing\" screen by default (so everyone knows they are included in the app). Tap the cover art to hide/show these controls", 
      "formattedPrice": "Free", 
      "wrapperType": "software", 
      "trackCensoredName": "Denon Audio", 
      "trackViewUrl": "https://itunes.apple.com/us/app/denon-audio/id520604518?mt=8&uo=4", 
      "contentAdvisoryRating": "4+", 
      "artworkUrl100": "http://a672.phobos.apple.com/us/r1000/100/Purple/v4/e3/cb/5d/e3cb5d2d-f1a8-8b80-3a91-58be8f654710/mzm.uogqezwx.png", 
      "languageCodesISO2A": [ 
       "ZH", 
       "DE", 
       "EN", 
       "ES", 
       "FR", 
       "JA", 
       "NL" 
      ], 
      "fileSizeBytes": "9060882", 
      "sellerUrl": "http://www.usa.denon.com/headphones", 
      "averageUserRatingForCurrentVersion": 4.5, 
      "userRatingCountForCurrentVersion": 329, 
      "trackContentRating": "4+", 
      "averageUserRating": 4.5, 
      "userRatingCount": 471 
     } 
    ] 
} 

このタスクを達成するためのコードは次のとおりです。 -rrh

NSURL *url = [[NSURL alloc] initWithString:[NSString stringWithFormat:@"http://itunes.apple.com/lookup?id=%@",APPSTORE_ID]]; 
NSURLRequest *request = [NSURLRequest requestWithURL:url]; 

[NSURLConnection sendAsynchronousRequest:request 
            queue:[NSOperationQueue mainQueue] 
         completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) { 
          if (!error) { 
           NSError* parseError; 
           NSDictionary *appMetadataDictionary = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&parseError]; 
           NSArray *resultsArray = (appMetadataDictionary)?[appMetadataDictionary objectForKey:@"results"]:nil; 
           NSDictionary *resultsDic = [resultsArray firstObject]; 
           if (resultsDic) { 
            // compare version with your apps local version 
            NSString *iTunesVersion = [resultsDic objectForKey:@"version"]; 

            NSString *appVersion = [[[NSBundle mainBundle] infoDictionary] objectForKey:(NSString*)@"CFBundleShortVersionString"]; 
            if (iTunesVersion && [appVersion compare:iTunesVersion] != NSOrderedSame) { // new version exists 
             // inform user new version exists, give option that links to the app store to update your app - see AliSoftware's answer for the app update link 
             UIAlertView *alert = [UIAlertView bk_showAlertViewWithTitle:APP_NAME message:[NSString stringWithFormat:@"New version %@ available. Update required.",iTunesVersion] cancelButtonTitle:@"update" otherButtonTitles:nil handler:^(UIAlertView *alertView, NSInteger buttonIndex) { 


             NSString *iTunesLink = [NSString stringWithFormat:@"itms://itunes.apple.com/us/app/apple-store/id%@?mt=8",APPSTORE_ID]; 
             [[UIApplication sharedApplication] openURL:[NSURL URLWithString:iTunesLink]]; 
             }]; 
             [alert show]; 
            } 
           } 
          } else { 
           // error occurred with http(s) request 
           NSLog(@"error occurred communicating with iTunes"); 
          } 
         }]; 
+0

しかし、アプリストアのレビューガイドラインによれば、「Apple.com、iTunes Store、App Store、iTunes Connect、Apple Developer Programなどから、Appleのサイトから情報を盗むアプリ。)またはAppleのサイトのコンテンツを使ってランキングを作成すると、サービスは拒否されます。 –

+0

それでアプリからも動作しますか? –

+0

iTMS Webサービスの使用は、「スクラップ」と呼ばれるものではありません。 HTMLでWebページから情報を抽出するような「解析用に設計された」)。これはWebサービスであり、開発者がその情報を取得して解析できるようにするために作成されたもので、 – AliSoftware

関連する問題