2012-09-24 30 views
2

我不經意間結束了在Xcode的構建中使用這些值:什麼決定了我的應用在構建時需要哪個iOS版本?

IPHONEOS_DEPLOYMENT_TARGET = 4.0 
SDKROOT = iphonesimulator6.0 

我從來沒有想過自己之前(我是一個iOS的小白),但這樣做的意思是我的應用程序將運行iOS4或更高版本的設備,還是僅iOS6?

回答

2

部署目標是您支持的最低版本。 SDK根(或GUI中的Base SDK)是構建時使用的一組框架。您必須瞭解,使用SDK 6.0構建的應用程序可以訪問許多在4.0〜5.0版本中不可用的API調用,您必須在使用它們時檢查它們的可用性,否則將在較早的軟件上崩潰。 您通常使用NSClassFromString(@「NewClass」)檢查類的可用性,如果它返回nil,則它不可用。 要檢查現有類的新方法的可用性,請使用[OldClass respondsToSelector:@selector(newMethod :)] 如果要在項目中使用鏈接的新Frameworks,則必須將它們聲明爲Weak,否則會崩潰在較舊的軟件上啓動

+0

如果您使用6.0功能但將您的部署目標設置爲4.0,您是不是會收到警告? – DrummerB

+1

不幸的是,據我所知,XCode還沒有這個功能。 HOwever這個答案似乎有一個解決方法有警告:http://stackoverflow.com/questions/4676000/is-there-a-way-for-xcode-to-warn-about-new-api-calls – nobre

相關問題