2013-07-03 97 views
0

據文檔說,SKStoreProductViewController是iOS 6及以上,但Xcode在iOS 5.1上成功編譯它。最糟糕的是,即使二進制理論上是爲iOS 5.1編譯的,我可以在iOS 6的設備上完美運行它。我沒有5.1測試的設備。Xcode在iOS 5上編譯SKStoreProductViewController?

這是一個錯誤,對不對?

如果這是一個錯誤,我們不能相信Xcode會警告我們以前的iOS版本無法運行的東西,從而導致開發冒着一定的崩潰風險,如果我們錯誤地使用了某些不適用的東西那個iOS。

是否有可能讓Xcode提醒我們這樣的事情?

謝謝。

回答

0

Xcode項目中使用的Base SDK和Deployment Target之間存在差異。基本SDK通常設置爲最新SDK(在您的案例6.1中),而您的部署目標設置爲您聲稱支持的最低版本。

因爲Xcode使用的是基本SDK,所以在代碼中使用SKStoreProductViewController是非常高興和有效的。如果您聲稱支持低於iOS 6的版本,則由您自行決定構建代碼,以便在較低的操作系統版本中運行時不會使用iOS 6 API。

這是一個很好的例子,您可以在每個您聲稱支持的操作系統上進行測試。編譯器不會捕獲這個錯誤,它只會在運行時出現。

+0

如果這是真的,Xcode正在做一個糟糕的工作,正如所料。我會將此報告爲蘋果的bug。謝謝。 – SpaceDog