2014-03-04 23 views
0

我是Xcode的新手,所以我不確定所有可用的命令。如果App Store中有新的更新並且用戶尚未下載該應用程序,是否有特定的技術可以阻止該應用程序的使用?如何防止iOS應用程序運行,直到用戶下載最新的可用版本?

我想

[查看應用程序的版本] - > [您在App Store的最新版本的應用程序] - > [如果不相等,對話框,告訴他們下載所需的更新] - > [確定在對話框上的按鈕將它們發送到App Store以下載更新]

是否有這些可能?我已經在「辛普森一家:被淘汰」的遊戲中看到過它,但我不知道如何自己管理它。

如果真的很複雜,請讓我知道它可以做到,指向正確的方向,我會做我自己的偵探工作。我不想要簡單的答案,但我確實想知道,我並沒有追逐死衚衕。

+3

如果不能對App Store中進行查找,可以有一個發佈最新版本的Web服務應用程序。然後,應用程序將在啓動時檢查該內容,並按照您的描述繼續。但是,無法處理離線案例。如果您的應用用戶繼續使用舊版本,但從未連接到網絡會怎麼樣?您還可能要求應用程序每次啓動或每週都通過網絡檢查最新的版本號。你能更具體地說明你爲什麼要這麼做嗎? – bneely

+0

專業開發的應用程序在服務器上的文件上具有最新版本(例如2.0)。當應用啓動時,應用將應用中的版本號與服務器上的版本進行比較。如果服務器上的版本大於應用上的版本,則會顯示相應的消息。 – Coder404

+0

需要考慮的另一個問題是,如果您停止支持較舊的操作系統版本。因此,您真的需要獲取設備的操作系統版本,並獲取該操作系統版本的最新可用軟件版本。 – bneely

回答

0

你應該有一個服務器來回答你的應用程序的請求。在您的服務器腳本中,您可以重播應用的最新版本,以及可能應用的應用。

在你的應用程序中,你打開一個HTTPRequest到這個URL並處理回覆。您的代碼的其餘問題是如果您的服務器沒有到達(例如啓動應用程序時沒有網絡連接)應該做什麼。

小心用戶友好的處理,否則蘋果可能會拒絕你的應用程序。

0

您會希望將最新的版本號放在您檢查的服務器上。

如果服務器報告有更新,請讓用戶知道並提供更新選項。如果您阻止用戶在未更新的情況下使用該應用程序,則可能會導致Apple(以及您的用戶)遇到麻煩。

如果您無法訪問服務器,則假定您是最新的並且什麼也不做。

當在商店上發佈新版本時,請等待12-24小時,然後再更新服務器上的號碼,因爲它有時可能需要很長時間才能將應用更新傳播到所有商店服務器。

一定要考慮到用戶無法升級的原因。例如,您的新版本可以在設備的用戶版本上運行(僅在iOS 7上使用iOS 6等)。這可以通過在服務器上獲取更多信息而不僅僅是當前版本號來處理。也許有一個與兼容性信息plist。

下面是一些代碼,你可以用它來獲得在應用中的版本號:

NSString* version = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"]; 
NSString* build = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"]; 
相關問題