2012-02-01 21 views
4

我正在構建我的應用程序,使用iOS 5.0作爲基礎SDK和iOS 3.0作爲部署目標。發現對早期iOS版本不可用的方法的調用

我知道我需要檢查方法和類的存在性,當我使用在早期iOS版本中不可用的功能時,但最近我已經在問題上丟失了幾個小時,只是爲了發現我正在調用方法在某些iOS版本中不可用。我根本沒有注意到這是一種新方法,之前沒有檢查過。當然應用程序編譯爲0錯誤和0警告。

這是一個很大的問題,因爲如果我在app忘記一些其他檢查的地方,我不知道它,直到我,或者最糟糕的,有些用戶將激活代碼的特定部分。

也許我失去了一些東西,有一些編譯器選項,我可以設置成檢測使我在iOS的部署目標不可用方法的調用?你如何處理這樣的問題?

+0

我發現這個職位嚴格有關我的問題:?如何建立對老年人的iOS版本,最新的Xcode下載](http://stackoverflow.com/q/3747432/452123)。 – Gengis 2012-02-01 23:46:04

回答

1

此鏈接可能爲您指出正確的方向。 Supporting mutiple ios Versions in your apps。它解釋瞭如何處理利用更新的ios功能,同時保持向後兼容性。希望有所幫助。

+0

我閱讀了你鏈接的文章。我感興趣的部分是製作項目的副本併爲舊模擬器(使用舊的Xcode)進行編譯,爲不支持的方法的調用生成警告。這是我正在尋找的方向:一種方法來發現所有對部署目標iOS中不可用的方法的調用,所以我可以快速檢查以驗證我是否正確管理了每個方法的兼容性。當然,這種方法需要一些工作來安裝和管理舊的Xcode版本並進行測試。謝謝。 – Gengis 2012-02-01 23:19:49

+0

我想在其他時間保持這個問題。我希望找到一種不涉及安裝舊版Xcode的方法,如果我對此有更多瞭解,技術上看起來就越不可能(請參閱我剛添加到我的問題中的評論)。 – Gengis 2012-02-01 23:51:07

+0

鏈接上提到的解決方案的工作原理。當你想在3.2.2之前的iOS測試你的解決方案時,需要安裝舊的Xcode版本。這些舊的SDK不再提供Xcode,你必須使用其他方法來獲取它們它涉及到在先前版本中測試您的應用程序。我想這是蘋果的說法..請升級,你落後了。 – 2012-02-02 00:19:59

1

與iOS的先前版本來檢查兼容性的唯一途徑,目前,它測試運行的版本的操作系統的一個老不更新設備上的應用程序。

如果你不能找到一個設備陳舊,甚至只是借用了很短的時間,那麼就可能不是一個好的理財週報理由設置部署目標低。

+0

我瞭解您對部署目標的評價較低,但我所討論的問題可能會發生在**任何**部署目標都不等於基本SDK的情況下。如果我可以在真正的非更新設備上測試我的應用程序,我認爲沒有什麼會改變,因爲當我碰巧執行代碼的一部分時,我正在談論的問題出現了,因爲我錯過了在調用之前執行檢查的代碼部分非可用的方法。問題是**如何搜索這種錯誤**,因爲一旦我有幸運行錯誤代碼,應用程序將在設備和模擬器中同樣崩潰。謝謝。 – Gengis 2012-02-01 23:32:53

+0

報告模擬器不能準確地表示可以運行的iOS SDK版本的API。只有設備運行實際的ARM OS代碼。 – hotpaw2 2012-02-02 01:00:20

+0

謝謝,我讀了一些文章,現在我知道你是對的。我認爲真實設備/模擬器之間的主要區別在於計算能力和資源。這是一個壞消息,但也是嘗試找到一種可靠方法來查找可能缺少方法的調用的另一個理由。 – Gengis 2012-02-02 22:49:28

相關問題