2011-01-14 14 views
13

我建設使用的Xcode 3.2.5與基本SDK設置爲iOS 4.2的如何使用Xcode的編譯器警告,以確定最低IOS部署目標

我知道我已經使用了一些API的4.0 iOS應用和4.1但不確定我是否確實需要4.2。

根據iOS開發指南,「當Xcode檢測到您的應用程序正在使用目標操作系統版本中不可用的功能時,會顯示生成警告」。

所以我希望使用編譯器警告來推導我的最低操作系統要求。 但是,即使我將iOS部署目標設置爲iOS 3.0,我仍然沒有收到任何編譯器警告。

我一定在做錯事,但不知道是什麼?任何人都可以確認他們在iOS部署目標小於基本SDK並且代碼使用基本SDK函數時會收到編譯器警告嗎?或者,只有鏈接iOS部署目標版本中不存在的框架時才顯示編譯器警告?

+0

的SDK 4.0+和3.0的部署目標上運行代碼時,我沒有看到任何警告或者。這完全違背了上述文檔。你有沒有進步? – 2011-07-20 12:41:12

+0

只需檢查mattjgalloway響應這裏http://stackoverflow.com/a/8919108/536308 – 2012-12-04 10:34:55

+0

可能重複[有沒有XCode警告新API調用的方法?](http://stackoverflow.com/questions/4676000/is-there-a-way-for-xcode-to-warn-about-new-api-calls) – JosephH 2017-04-05 09:00:17

回答

0

編輯:用於檢測僅適用於iOS新版本的新API,我不認爲Xcode可以爲我們自動完成。我們需要自己將它們放在腦海中。我推薦閱讀來源:

  1. 登錄到你的開發賬號和搜索API的diff。這些官方的API差異文件應該是徹底的和有幫助的。
  2. 入住這great post如何包裝你的代碼,使其在較低版本的iOS兼容:

===

嘗試清理項目的構建文件夾。之後,您應該會在代碼使用的棄用API上看到警告。

alt text

alt text

+1

我試過做一個乾淨的構建,這似乎並沒有改變的東西。只是爲了澄清,這不是我所關心的不推薦使用的API。這是我使用iOS版本之後的版本中引入的API的地方。我試圖根據我使用的API確定我的最低iOS部署目標。 – 2011-01-14 06:25:13

2

臨時更改基礎SDK看到他們

3

它表現爲預期:改變部署目標只有影響到你的應用程序將運行在最小的OS版本,而不是最大值。

如果您使用4.3 SDK並將部署目標設置爲4.0,這意味着您的應用將硬鏈接任何4.0之前的API,並弱化4.0和4.3之間引入的任何API。您必須在運行時檢查是否存在API(例如C函數的空指針)或操作系統版本。

部署目標確實會生成Xcode警告,但會生成不推薦使用的API:例如,如果您使用4.1及更高版本中棄用的API,並且部署目標爲4.1或更高版本,則會收到警告,但如果是4.0或更低版本,別。

它看起來像你真正需要你的情況是相當於MAC_OS_X_VERSION_MAX_ALLOWED(它不是默認的構建設置的一部分,但你可以自定義它,它應該覆蓋由SDK設置的值),但對於iOS SDK 。我不確定它是否正式存在:我能夠找到__IPHONE_OS_VERSION_MAX_ALLOWED,但考慮到它始於__,我不確定它是否真的受到支持。

正確的解決方案似乎只是針對以前版本的SDK構建(您始終可以在模擬器中執行該操作),並且如果使用缺少的API,則會出現Xcode錯誤。

欲瞭解更多信息,請閱讀此技術:http://developer.apple.com/library/mac/#documentation/DeveloperTools/Conceptual/cross_development/Configuring/configuring.html