iTunes中獲取App版本信息--Swift

App版本檢測(cè)更新

請(qǐng)求URL: let appUrl = URL.init(string: "https://itunes.apple.com/lookup?id=" + appId)

結(jié)果:
{
 "resultCount":0,
 "results": []
}

需要在com/后面拼cn/丧凤,表明是那個(gè)國(guó)家肯腕。

請(qǐng)求URL: let appUrl = URL.init(string: "https://itunes.apple.com/cn/lookup?id=" + appId)

結(jié)果:
{
    "resultCount": 1,
    "results": [{
        "artistViewUrl": "https://itunes.apple.com/cn/developer/?±?è???¤?é£????????§???????é???
????/id1370226171?uo=4",
        "artworkUrl60": "https://is2-ssl.mzstatic.com/image/thumb/Purple115/v4/6c/c3/f3/6cc3f3bf-9de6-61e8-73a0-6a6834690bcb/source/60x60bb.jpg",
        "artworkUrl100": "https://is2-ssl.mzstatic.com/image/thumb/Purple115/v4/6c/c3/f3/6cc3f3bf-9de6-61e8-73a0-6a6834690bcb/source/100x100bb.jpg",
        "ipadScreenshotUrls": [],
        "appletvScreenshotUrls": [],
        "artworkUrl512": "https://is2-ssl.mzstatic.com/image/thumb/Purple115/v4/6c/c3/f3/6cc3f3bf-9de6-61e8-73a0-6a6834690bcb/source/512x512bb.jpg",
        "screenshotUrls": ["https://is1-ssl.mzstatic.com/image/thumb/Purple115/v4/36/0e/41/360e41d2-f0f7-f429-415a-b67fc0c62e3c/source/392x696bb.jpg", "https://is5-ssl.mzstatic.com/image/thumb/Purple115/v4/ff/c9/f0/ffc9f021-f051-4e9b-66fa-818387627808/source/392x696bb.jpg", "https://is2-ssl.mzstatic.com/image/thumb/Purple115/v4/bf/9f/08/bf9f08e5-7cba-dedd-c159-167992cb3ced/source/392x696bb.jpg", "https://is1-ssl.mzstatic.com/image/thumb/Purple115/v4/25/a7/ba/25a7ba29-583d-eb90-7179-d1346ebcfe73/source/392x696bb.jpg", "https://is4-ssl.mzstatic.com/image/thumb/Purple115/v4/7a/32/f2/7a32f22c-1d22-2259-f19a-4e98b3dca4b1/source/392x696bb.jpg"],
        "isGameCenterEnabled": false,
        "advisories": [],
        "kind": "software",
        "features": [],
        "supportedDevices": ["iPhone5s-iPhone5s", "iPadAir-iPadAir", "iPadAirCellular-iPadAirCellular", "iPadMiniRetina-iPadMiniRetina", "iPadMiniRetinaCellular-iPadMiniRetinaCellular", "iPhone6-iPhone6", "iPhone6Plus-iPhone6Plus", "iPadAir2-iPadAir2", "iPadAir2Cellular-iPadAir2Cellular", "iPadMini3-iPadMini3", "iPadMini3Cellular-iPadMini3Cellular", "iPodTouchSixthGen-iPodTouchSixthGen", "iPhone6s-iPhone6s", "iPhone6sPlus-iPhone6sPlus", "iPadMini4-iPadMini4", "iPadMini4Cellular-iPadMini4Cellular", "iPadPro-iPadPro", "iPadProCellular-iPadProCellular", "iPadPro97-iPadPro97", "iPadPro97Cellular-iPadPro97Cellular", "iPhoneSE-iPhoneSE", "iPhone7-iPhone7", "iPhone7Plus-iPhone7Plus", "iPad611-iPad611", "iPad612-iPad612", "iPad71-iPad71", "iPad72-iPad72", "iPad73-iPad73", "iPad74-iPad74", "iPhone8-iPhone8", "iPhone8Plus-iPhone8Plus", "iPhoneX-iPhoneX"],
        "trackCensoredName": "商戶(hù)助手-e融通",
        "trackViewUrl": "https://itunes.apple.com/cn/app/?????·??????-eè??é??/id1370226172?mt=8&uo=4",
        "contentAdvisoryRating": "4+",
        "languageCodesISO2A": ["ZH"],
        "fileSizeBytes": "27520000",
        "trackContentRating": "4+",
        "sellerName": "Jiangsu Dooffe Network Technology Co., Ltd.",
        "primaryGenreName": "Utilities",
        "primaryGenreId": 6002,
        "currency": "CNY",
        "wrapperType": "software",
        "version": "1.0.1",
        "description": "我們的app是面向我們的支付系統(tǒng)線(xiàn)下拓展的收款商戶(hù)。我們的收款商戶(hù)提出堡僻,如果收款時(shí)糠惫,手機(jī)上能夠收到通知,最好是能夠播報(bào)語(yǔ)音的收款提示钉疫,可以為他們的工作提供巨大的便捷硼讽。",
        "artistId":"artistId",
        "artistName": "江蘇多飛網(wǎng)絡(luò)科技有限公司",
        "genres": ["工具"],
        "price": 0.00,
        "bundleId": "com.dooffe.dooffeEpay",
        "isVppDeviceBasedLicensingEnabled": true,
        "releaseDate": "2018-05-13T11:59:09Z",
        "minimumOsVersion": "10.0",
        "trackId":"trackId",
        "trackName": "商戶(hù)助手-e融通",
        "formattedPrice": "免費(fèi)",
        "genreIds": ["6002"],
        "currentVersionReleaseDate": "2018-05-31T18:55:25Z",
        "releaseNotes": "實(shí)時(shí)推送到賬,語(yǔ)音播報(bào)功能"
    }]
}

swift 代碼封裝:

//
//  HHCheckVersionManager.swift
//  HelperApp
//
//  Created by JunQiang on 2018/3/16.
//  Copyright ? 2018年 多飛. All rights reserved.
//

import Foundation

class HHCheckVersionManager: NSObject {
    
    /// app版本更新檢測(cè)
    ///
    /// - Parameter appId: apple ID - 開(kāi)發(fā)者帳號(hào)對(duì)應(yīng)app處獲取
    init(appId:String) {
        super.init()
        
        //獲取appstore上的最新版本號(hào)
        let appUrl = URL.init(string: "https://itunes.apple.com/cn/lookup?id=" + appId)
        let appMsg = try? String.init(contentsOf: appUrl!, encoding: .utf8)
        let appMsgDict:NSDictionary = getDictFromString(jString: appMsg!)
        let appResultsArray:NSArray = (appMsgDict["results"] as? NSArray)!
      
        let appResultsDict:NSDictionary = appResultsArray.lastObject as! NSDictionary
        let appStoreVersion:String = appResultsDict["version"] as! String
        let appStoreVersion_Float:Double = CFStringGetDoubleValue(appStoreVersion as CFString)// Float(appStoreVersion)!

        //獲取當(dāng)前手機(jī)安裝使用的版本號(hào)
        let localVersion:String = Bundle.main.infoDictionary!["CFBundleShortVersionString"] as! String
        let localVersion_Float:Double = CFStringGetDoubleValue(localVersion as CFString)// Float(localVersion)!

        //用戶(hù)是否設(shè)置不再提示
        let userDefaults = UserDefaults.standard
        let res = userDefaults.bool(forKey: "NO_ALERt_AGAIN")
        //appstore上的版本號(hào)大于本地版本號(hào) - 說(shuō)明有更新
        if appStoreVersion_Float > localVersion_Float && !res {
             let alertC = UIAlertController.init(title: "版本更新了", message: "是否前往更新", preferredStyle: .alert)
             let yesAction = UIAlertAction.init(title: "去更新", style: .default, handler: { (handler) in
                  self.updateApp(appId:appId)
             })
             let noAction = UIAlertAction.init(title: "下次再說(shuō)", style: .cancel, handler: nil)
                let cancelAction = UIAlertAction.init(title: "不再提示", style: .default, handler: { (handler) in
                    self.noAlertAgain()
                })
                alertC.addAction(yesAction)
                alertC.addAction(noAction)
                alertC.addAction(cancelAction)
                UIApplication.shared.keyWindow?.rootViewController?.present(alertC, animated: true, completion: nil)
            }
            else {
                let alertC = UIAlertController.init(title: "版本檢測(cè)", message: "App已經(jīng)是最新版本", preferredStyle: .alert)
                let yesAction = UIAlertAction.init(title: "我知道了~", style: .default, handler: { (handler) in
                    
                })
                alertC.addAction(yesAction)
                UIApplication.shared.keyWindow?.rootViewController?.present(alertC, animated: true, completion: nil)
            }
    }
    
    //去更新
    func updateApp(appId:String) {
        let updateUrl:URL = URL.init(string: "https://itunes.apple.com/cn/app/id" + appId)!
        if #available(iOS 10.0, *) {
            UIApplication.shared.open(updateUrl, options: [:], completionHandler: nil)
        } else {
            // Fallback on earlier versions
            UIApplication.shared.openURL(updateUrl)
        }
    }
    
    //不再提示
    func noAlertAgain() {
        let userDefaults = UserDefaults.standard
        userDefaults.set(true, forKey: "NO_ALERt_AGAIN")
        userDefaults.synchronize()
    }
    
    //JSONString轉(zhuǎn)字典
    func getDictFromString(jString:String) -> NSDictionary {
        let jsonData:Data = jString.data(using: .utf8)!
        let dict = try? JSONSerialization.jsonObject(with: jsonData, options: .mutableContainers)
        if dict != nil {
            return dict as! NSDictionary
        }
        return NSDictionary()
    }
    
}

使用方式: _ = HHCheckVersionManager(appId: kAppId)

大神掠過(guò)牲阁,歡迎指出問(wèn)題~~~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末固阁,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子城菊,更是在濱河造成了極大的恐慌备燃,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,470評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件凌唬,死亡現(xiàn)場(chǎng)離奇詭異并齐,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,393評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)况褪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)撕贞,“玉大人,你說(shuō)我怎么就攤上這事测垛∧笈颍” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,577評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵食侮,是天一觀(guān)的道長(zhǎng)号涯。 經(jīng)常有香客問(wèn)我,道長(zhǎng)疙描,這世上最難降的妖魔是什么诚隙? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,176評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮起胰,結(jié)果婚禮上久又,老公的妹妹穿的比我還像新娘。我一直安慰自己效五,他們只是感情好地消,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,189評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著畏妖,像睡著了一般脉执。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上戒劫,一...
    開(kāi)封第一講書(shū)人閱讀 51,155評(píng)論 1 299
  • 那天半夷,我揣著相機(jī)與錄音,去河邊找鬼迅细。 笑死巫橄,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的茵典。 我是一名探鬼主播湘换,決...
    沈念sama閱讀 40,041評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼统阿!你這毒婦竟也來(lái)了彩倚?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 38,903評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤扶平,失蹤者是張志新(化名)和其女友劉穎帆离,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體蜻直,經(jīng)...
    沈念sama閱讀 45,319評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡盯质,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,539評(píng)論 2 332
  • 正文 我和宋清朗相戀三年袁串,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了概而。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片呼巷。...
    茶點(diǎn)故事閱讀 39,703評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖赎瑰,靈堂內(nèi)的尸體忽然破棺而出王悍,到底是詐尸還是另有隱情,我是刑警寧澤餐曼,帶...
    沈念sama閱讀 35,417評(píng)論 5 343
  • 正文 年R本政府宣布压储,位于F島的核電站,受9級(jí)特大地震影響源譬,放射性物質(zhì)發(fā)生泄漏集惋。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,013評(píng)論 3 325
  • 文/蒙蒙 一踩娘、第九天 我趴在偏房一處隱蔽的房頂上張望刮刑。 院中可真熱鬧,春花似錦养渴、人聲如沸雷绢。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,664評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)翘紊。三九已至,卻和暖如春藐唠,著一層夾襖步出監(jiān)牢的瞬間帆疟,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,818評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工宇立, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留踪宠,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,711評(píng)論 2 368
  • 正文 我出身青樓泄伪,卻偏偏與公主長(zhǎng)得像殴蓬,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子蟋滴,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,601評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,074評(píng)論 25 707
  • 1染厅、通過(guò)CocoaPods安裝項(xiàng)目名稱(chēng)項(xiàng)目信息 AFNetworking網(wǎng)絡(luò)請(qǐng)求組件 FMDB本地?cái)?shù)據(jù)庫(kù)組件 SD...
    陽(yáng)明先生_X自主閱讀 15,979評(píng)論 3 119
  • 今天肖粮,在家里重新翻閱八月長(zhǎng)安的《最好的我們》,重新沉浸在充滿(mǎn)溫柔青春的故事中尔苦,重新感動(dòng)于那些掙扎后新鮮成長(zhǎng)的人兒涩馆。...
    萍梗子閱讀 350評(píng)論 0 2
  • 投資圣杯 哈里.馬科維茨構(gòu)建了一個(gè)廣泛應(yīng)用的模型:把一組資產(chǎn)以及它們的預(yù)期回報(bào)行施、風(fēng)險(xiǎn)和相關(guān)性(顯示這些資產(chǎn)在過(guò)去表...
    鹿呦終南閱讀 136評(píng)論 0 0
  • 作為一個(gè)女人,結(jié)婚生子魂那,相夫教子蛾号,這就是我這幾年的樣子。我一直都很感恩涯雅,感恩生命中有一個(gè)很好的丈夫鲜结,即使窮了沒(méi)有關(guān)...
    伊黎221閱讀 203評(píng)論 0 3