2011-09-29 63 views
4

而不是使用網絡服務來獲取當前的應用程序版本號並在我的代碼中比較它以彈出更新警報,有什麼方法可以直接從App-Store/i-Tunes獲取應用程序版本號?我們可以從App Store獲取iPhone版本的應用程序版本號嗎?

經過所有的評論糾正我,如果我錯了。

  1. 我們不應該表現出本地通知(如警報)與用戶關於編程的新更新的可用性?

我雖然通過HIG指南,但無法打出這樣的經驗。所以在決定時很困惑。

+0

爲什麼你需要這樣做? – BoltClock

+0

由於網絡服務是由第三方提供的,他們有很多的專家來添加標籤,所以試圖跳過這是坦率:) –

+0

因此,創建自己的網絡服務。 –

回答

3

這樣的警報更新肯定會違反Apple準則。對於iOS設備,App Store應用會顯示應用警報,其中會顯示可用更新數量的徽章。開發人員無需做任何事情。

如果您擔心用戶錯過了您的應用更新,請放心,iOS用戶密切關注應用商店應用&知道所有更新都會通過它。

但是,存在一些拙劣的方法,通過這些方法您可以發現,這是您更新後的第一次運行,無需聯繫任何Web服務或iTunes/App商店。

一個已知的對我黑客:

獲取圖書館目錄路徑 -

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES); 
NSString *libPath = ([paths count] > 0) ? [paths objectAtIndex:0] : nil; 

LIBPATH會是這樣的 - 在/ var /移動/應用/ 8CFB747F-9446-44CB-98B9- C6FF1CF7BF93/Library

這個隨機字符串在/ Library隨每次更新而改變。您可以將此字符串保存在NSUserDefaults中,並在每次啓動時將路徑與保存的字符串進行比較。如果發現字符串不同,這意味着這是您更新後的第一次運行。顯示更新提醒!然後用新的更新保存的字符串。

HTH,

阿克沙伊

+1

但許多應用程序通常會向用戶彈出消息提示「新更新可用」,我不覺得這是違反蘋果指南的, –

+0

如果我是對的,他希望從應用商店獲取版本號,而不是添加標籤在網絡服務? –

+0

你能舉一個這樣的應用程序的例子嗎?即使存在,也並不意味着它不違反HIG。 – Akshay

0

是。您可以在itunes.apple.com服務器上執行HTTP請求,同時模仿iTunes的用戶代理字符串,在應用商店中爲您的應用的網址分析返回的HTML或XML,以找到版本字符串,可能會或可能不會被Apple審批團隊接受。但這不太可能是值得的,它也表現出不尋常的和意想不到的用戶體驗。

+0

他們不會有某種握手嗎?我懷疑是否有人可以輕鬆地構建應用商店應用程序。 – Akshay

+0

有很多perl腳本和周圍的網絡,使用這種技術從iTunes中抓取數據。目前很多人似乎仍然工作。當然,蘋果可能會修改iTunes在未來做一些不同的事情。所以YMMV。 – hotpaw2

相關問題