2013-04-05 66 views
0

我想知道如果有部署的iOS 5版本只有一個應用程序,而不是安裝iOS的更新版本能夠運行這個應用程序的方式。我知道基本SDK版本和部署目標選擇的配置應用運行該系統上,但有沒有指定的應用程序只能在iOS 5上運行的方法嗎?我可以發佈iOS 5專用應用嗎?

原因:我有一個具有更多的功能,它使用更多的內存,因此在iPad 1崩潰的應用程序的舊版本有較少的功能和運行良好的應用程序的新版本。我想老版本部署到iOS 5只和一切的iOS 6及以上,我想部署新的版本。

有沒有辦法做到這一點不釋放兩個獨立的應用程序,從而迷惑用戶爲下載哪一個?

+0

我還沒有嘗試過,但是當Apple停止在XCode中支持較舊版本的iOS時(任何使用armv6處理器的東西),有人建議您可以將多個可執行文件嵌入到單個應用程序包中。如果您搜索armv6或iOS4,則可能會找到相關的帖子。可能很棘手的工作和混亂測試雖然。 – 2013-04-05 21:17:02

回答

3

我想知道如果有部署的iOS 5版本只有一個應用程序,而不是安裝iOS的更新版本能夠運行這個程序

沒有辦法,這不能做完了。即使您的應用具有5.0的基本SDK,也無法阻止iOS 6用戶安裝和運行該應用。

有沒有辦法做到這一點,而不是釋放兩個單獨的應用程序,從而混淆了用戶下載哪一個?

爲 「亞光」 說,是的。你創建一個應用程序。您將部署目標設置爲5.0,並將基本SDK設置爲「最新」。訣竅是您需要進行大量運行時檢查,以便iOS 5用戶只能獲得「較舊,較低內存」的功能。 iOS 6的用戶應該獲得所有新功能。

應用說明(與「最新消息」注)應該說清楚的iOS 5和iOS 6用戶將獲得不同的功能。

+0

是的,我曾經有過條件代碼,但我已經刪除了很多,因爲它不是必需的。我想我將不得不限制某些新功能並重新發布它。 – vinnybad 2013-04-05 21:02:49

0

我想將舊版本部署到iOS 5,對於iOS 6及以上的版本,我想部署新版本。有沒有辦法做到這一點,而不是釋放兩個單獨的應用程序...?

是的,你得寫條件代碼如果設備運行iOS 5等事情發生,其中某些事情發生,如果設備運行iOS 6

+0

如果您想通過App Store進行分銷,我認爲您無法在iOS6上使應用無法正常工作。請參閱App Store評論指南中的第2.22點,其中指出,您不能「任意」限制誰可以使用該應用程序。 – Caleb 2013-04-05 20:58:13

+0

我很害怕你會這麼說。感謝您的答覆。 – vinnybad 2013-04-05 21:01:31

1

您只需編寫你的應用程序的iOS5兼容性,並將其發送給Apple。當你上傳你的應用程序時,它會詢問一些信息,其中之一是兼容性。如果你聲明只有iOS5兼容,他們可能會接受它,但我不是100%確定的。

1

不能爲較新的IOS版本限制應用程序。

正如你在你的問題所述,你的問題不是iOS版本,但iPad 1

您可以在運行時使用+[UIDevice model]-[NSProcessInfo processorCount]檢測的iPad 1。 iPad 1只有一個CPU核心,所有其他iPad型號都有兩個或更多核心。

然後,只需禁用或更改此設備上的某些功能。

0

有沒有辦法做到這一點,而不發佈兩個單獨的應用程序,因此 混淆用戶至於要下載哪一個?

您應該構建一個應用程序,根據設備是否支持這些應用程序來有條件地啓用功能。在iOS5上運行時,不能在iOS5上運行的iOS6功能應該隱藏。當硬件不存在時,應該隱藏依賴於某些硬件的功能。嘗試測試所需的特定功能,但不要認爲某個功能是基於操作系統版本或不存在。

+0

對,爲了擴展這個,Caleb的含義是:在你的條件下,不要測試設備是運行這個還是那個系統,在使用autolayout之前測試(比如說)NSLayoutConstraint類是否存在等等。 – matt 2013-04-05 21:52:08

0

您只能在蘋果公司測試後批准的App Store中發佈應用程序。據報道,他們通常會在最新版本的iOS上測試應用程序,如果您的應用程序崩潰或無法在當前操作系統(6.1.3今天)上運行,Apple可能會拒絕該應用程序。

所以沒有。

相關問題