2014-01-14 126 views
1

我們目前正在開發iOS應用程序,自從我們在2個月前開始以來,我們決定仍然支持iOS6。 因此我研究瞭如何做到這一點,並在SO上找到了一些答案,推薦使用舊的iOS6 SDK來確保我們不會意外使用iOS7的功能。支持iOS 6和7

現在,我剛剛收到一封蘋果開發人員電子郵件,標題爲爲iOS 7構建您的應用程序。該電子郵件稱,2014年2月1日之後提交的所有應用都必須使用iOS7 SDK進行構建。

我想我仍然可以在iOS7 SDK開發結束時編譯整個應用程序,並將開發目標設置爲6.1,並且在開發過程中只使用iOS6 SDK。

什麼是官方的方式來製作一個iOS6兼容的應用程序,並確保沒有iOS7的功能被意外使用?

+0

此問題是無題,因爲它是關於App Store合規性,而不是編碼問題。請參閱[是否有關應用程序商店關於堆棧溢出主題的以應用程序商店爲中心的問題?](http://meta.stackexchange.com/q/175701) –

+1

@JoshCaswell那麼,它的一部分至少是如何支持兩個版本和這是一個編碼問題。 – Krumelur

+0

是的,您可以使用iOS 7 SDK編譯您的應用並將其發送到應用商店。 – jcesarmobile

回答

2

您的應用程序將可能被拒絕。蘋果通常允許寬限期,特別是如果應用程序之前存在 - 但沒有保證。對於全新的應用程序,您可能會遇到困難。不過,我不建議繼續使用SDK6。

如果您想使SDK7應用程序與iOS6兼容,您將不得不使用respondsToSelector:來檢查目標設備在運行時是否存在方法。如果沒有,你將不得不進入不同的代碼分支。或者,您可以選擇不使用任何iOS7特定的API。

請注意,還有特殊的事情需要照顧,不僅讓您的應用程序運行,而且在兩個版本上都看起來不錯。 Apple爲transitioning to iOS7 while still supporting iOS6提供了指南。

在所有情況下,您都必須確保您的應用在兩個iOS版本上運行,這意味着您至少需要兩臺設備。

+0

寬限期不是他們一個月前宣佈他們會停止接受iOS 6.x SDK和2月1日更新的時間段嗎? – borrrden

+0

是和不是。至少在iOS5/6中,在那段時間之後,我沒有用以前的SDK版本提交問題。但我的應用程序之前已經存在。這就是爲什麼我寫的沒有保證。這次可能會有所不同。 – Krumelur

+1

@Krumelur:謝謝你的回答。添加'respondsToSelector'以建立與較低iOS版本的兼容性感覺有點像代碼的「膨脹」。這實際上是我想避免的事情。對我來說,將SDK設置爲iOS6似乎更有意義。我可以輕鬆放棄新的ios7的東西。但是ios6兼容性很重要。該應用程序將是全新的順便說一句。感謝您的鏈接。 – Jens