2011-08-08 122 views
4

我有點好奇在以下情況會發生什麼。您在使用iOS4的iTunes商店(擁有客戶)上已有應用程序,然後向使用較新iOS的應用程序發佈更新。升級iOS應用程序到更新的操作系統?

  • 已經升級到「較新的iOS」的人會得到更新。
  • 那些沒有更新的人會發生什麼,他們仍然能夠使用他們的舊iOS4版本?

回答

1

通常(雖然不總是),新操作系統與以前的操作系統相同,但具有新功能。舊版本的應用程序通常可以與最新的操作系統配合使用,但不會利用新功能。用戶通常遇到的唯一問題是崩潰問題,但這完全取決於您在應用中使用哪些API。

此外,更新永遠不會'強制'用戶 - 他們總是可選的。當應用程序只適用於iOS版本高於用戶版本的情況時,則根本不會向用戶提供更新。他們仍然可以使用他們在其設備上安裝的舊版本。應用程序沒有到期日期。

如果您想保留儘可能多的iOS版本的兼容性,您可以將您的iOS部署目標設置爲希望您的應用兼容的最小操作系統。 SDK版本號無關緊要,但爲了支持最新的iOS功能,您需要使用最新的iOS SDK。

您仍然需要檢查您的API與您作爲最低操作系統定位的版本的兼容性。查看here並搜索「API差異」。每個文檔都列出了該iOS版本的API更改。這將列出該版本的新的和刪除的API。例如,在iOS 4.1到4.2 API差異文檔中列出的UIPrintPaper是iOS 4.2的新API。因此,在iOS 4.1或更低版本上運行時,應用程序在調用該API時會崩潰。在您的UIPrintPaper snipper周圍使用#if __IPHONE_OS_VERSION_MAX_ALLOWED <= __IPHONE_4_1將解決該問題。

11

您的「部署目標」是最重要的。設置部署目標可讓您的應用程序將其設置爲最低要求的操作系統版本。許多開發人員喜歡儘可能地設置它,除非您的應用程序依賴於僅在新iOS版本中提供的功能。

假設您已經使用iOS 4 SDK編譯了應用程序,並將3.0設置爲部署目標。

  • 擁有iOS 3或iOS 4(和iOS 5)的用戶可以下載並使用它。

現在您發佈使用iOS 5 SDK編譯的更新,並將4.0設置爲您的部署目標。

  • 擁有iOS 4或iOS 5的用戶可以下載或升級您的應用並使用它。
  • 已購買應用程序的iOS 3的用戶已無法升級,但可以繼續使用其現有的已安裝版本。
  • iOS 3尚未購買應用程序的用戶現在無法這樣做。

Apple只會在應用商店中準確保留您的應用的一個版本。

+0

這是前一段時間發佈的,但我需要澄清一點:Apple會保留一個版本。如果您發佈具有更高部署目標(例如,iOS 7)的更新,舊應用程序的現有用戶無法再重新安裝(即使他們購買了該應用程序),如果他們獲得替換(仍爲iOS 7之前的版本)手機,或者如果他們不小心卸載它? iCloud會讓這個更好嗎? –

+0

據我所知,這仍然是正確的。如果他們卸載它們,他們將無法從應用程序商店重新安裝。如果應用程序在iTunes中備份,舊版本可能在同步時被複制,但這是我能想到的唯一方法。 iCloud根本沒有幫助。您的設備的iCloud備份包含您的應用程序數據和您安裝的應用程序,但我認爲它們不包含應用程序二進制文件。 –

+0

謝謝亞歷克斯。我會做到這一點,並希望不會從舊設備上的客戶那裏獲得太多熱量。 –

1

除非他們下載較新的版本,他們當然仍然可以使用舊版本。但是,他們可能無意中通過桌面上的iTunes下載更新。設備上的應用程序商店本身會檢查設備的操作系統版本是否與正在下載的應用程序兼容,但iTunes不會,因此它將取代iTunes資料庫中的舊版本,導致應用程序從設備中刪除用戶同步它(因爲下載的版本不能被安裝)。

因此,對於現有應用程序,您應該儘可能降低您的部署目標,並在運行時確定可以使用的新操作系統版本的哪些附加功能。這樣,您可以保持與舊版操作系統版本的兼容性,但仍爲已升級的用戶提供附加功能。

相關問題