与许多人一样,我需要使用旧版iOS SDK构建应用程序。
当我通过XCode首选项下载旧版iOS模拟器时,这与下载以前版本的SDK相同吗?
例如,如果我今天下载XCode 6(iOS 8刚刚发布),我会获得iOS 8 SDK和模拟器。如果我需要为iOS 7编译应用程序并使用XCode首选项中的“下载”功能来获得iOS 7.0 SDK附带的iOS 7.0模拟器吗?
在我看来,iOS 7.0模拟器是一个应用程序。 iOS 7 SDK是否附带它以便您可以构建适合iOS 7兼容性的应用程序?
答案 0 :(得分:1)
不,下载模拟器不会添加任何新的SDK。没有必要。使用Xcode 6,您的应用程序应该具有iOS 8的基本SDK。您可以将部署目标设置为早在4.3(尽管比7.0更进一步毫无意义)。这样您的应用程序就支持iOS 8和iOS 7.不需要iOS 7 SDK。
答案 1 :(得分:1)
我想我明白你的问题,因为答案是否定的:iOS模拟器是以他们模拟的硬件和他们运行的iOS版本命名的;例如 iPhone 5s(7.1)。
Xcode 6仅附带iOS 8 SDK。这就是" Base SDK" (SDKROOT)。您可以将其视为最佳编译目标"或者"最佳支持版本" - 它是您编译的SDK版本。 "部署目标" (IPHONEOS_DEPLOYMENT_TARGET)定义您支持的最低支持的iOS版本。随着您的应用程序成熟,以及两者之间的范围变宽,您需要对支持的功能进行越来越多的运行时检测,或处理API差异,例如,较新的平台上首选较新的呼叫,而较旧的平台则不存在。
针对(Base SDK)7.1编译的应用程序将在iOS 8.0设备上运行。您可以将其视为" iOS 7模式"。一个更好的例子是从iOS6迁移到7 - 针对iOS6.1" Base SDK"编译的应用程序。在iOS7设备上运行,但它们看起来像旧的UI风格。在他们针对iOS7.x" Base SDK"进行编译的那一刻,它们看起来适合iOS6或7。
我有一个应用程序我支持" Base SDK" 7.1目前,我设法复制旧的7.1 SDK并对其进行编译。哎呀,老实说,它比它更值得惹麻烦。如果你仍然有Xcode 5,目前只需要高达7.1,你可能只想使用它。鉴于iOS 8.0已经淘汰,如果您的应用是新的,您可能根本不需要担心这一点 - 您可能只是想确保您支持iOS 7.x,那就是AOK。
鉴于某个应用程序(例如)的部署目标为7.0且基本sdk为8.0,因此您需要处理任何兼容性问题。某些方法可能表现不同(尽管Apple努力维护API兼容性),其他方法将被弃用或仅仅是不同的。文档在拼写差异和弃用方面做得非常好。
答案 2 :(得分:1)
旧版SDK的需要是什么?较新的SDK包含标记,允许您使用较旧的部署目标针对较新的SDK进行构建。我们非常注意确保您实际上不需要较旧的SDK,因此如果存在阻止您使用较新SDK的问题,请确保在http://bugreport.apple.com
提交雷达如果您需要编译将在iOS 7上运行的应用程序,则应将部署目标设置为7.0(或7.1,具体取决于您的意图),并使用iOS 8.0 SDK。
-
iOS模拟器SDK兼具构建的SDK和运行模拟器应用程序的运行时(几乎完全独立的操作系统)。 iOS Simulator.app是一个小型应用程序,它基本上启动模拟设备(通过CoreSimulator.framework)并处理I / O.