一直以為Appstore有了檢查版本是否更新的機(jī)制,我們在APP上做這個更新功能會被拒,但是也有看到一些APP也是做了這個更新功能的。因為在網(wǎng)上沒有找到完全正確的方法能獲取到iTunes里的數(shù)據(jù)的,于是就寫此文給需要的開發(fā)小伙伴們。
下面我就綜合了網(wǎng)上說的兩種方法去檢查更新:
第一種:獲取自己服務(wù)器的APP版本號與已安裝的APP版本號比較
這是需要服務(wù)器去做操作,因為我這邊客戶端已經(jīng)做好了,后臺又十分忙,我就沒去找服務(wù)器怎么弄了,我想應(yīng)該也是和APP差不多去請求itunes的數(shù)據(jù),只不過我們APP通過接口去調(diào)用,獲取到我們需要的版本號。
第二種:根據(jù)已發(fā)布到Appstore上的應(yīng)用版本號與已安裝的APP版本號比較更新
1.獲取當(dāng)前APP版本號

當(dāng)然,獲取當(dāng)前APP的名稱或者是編譯版本都是可以的,直接將上圖紅色字體替換,獲取名稱:CFBundleDisplayName,獲取編譯版本:CFBundleVersion;
2.獲取iTunes上APP的版本
剛開始我是用網(wǎng)上找的那串URL去調(diào)用,用 POST 方式發(fā)送請求:http://itunes.apple.com/lookup?id=你的應(yīng)用程序的ID,這個id就像bundleid一樣是唯一的,但是這樣我發(fā)現(xiàn)走的是失敗的回調(diào)。后面找到一個分享的說是因為是國內(nèi)的APP,獲取不到數(shù)據(jù),要在上面那串URL的.com后面加上/cn,于是我也照做了,發(fā)現(xiàn)還是走失敗的回調(diào),于是我又仔細(xì)檢查了一遍我的應(yīng)用程序的ID,ID就是你iTunes里APP信息里的,如下圖:

查完還是一模一樣的,于是想著現(xiàn)在很多網(wǎng)頁都是加密的,也許應(yīng)該是用https,于是把http請求換成https,然后就打印出來很多的數(shù)據(jù),全是iTunes里你提交的信息,當(dāng)然包括你APP現(xiàn)在線上的最新版本號。代碼如下:

上圖代碼里的iTunesVersion就是獲取到了線上APP的版本號。大家可以在用的時候使用斷點打印出來所有的數(shù)據(jù)看哪些是自己能用的上的。