2012-09-24 28 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

相关问题