繁体   English   中英

iOS模拟器的旧版本是否与iOS SDK相同?

[英]Are older versions of iOS Simulator the same as the iOS SDK?

像许多人一样,我需要使用旧版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兼容性的应用程序?

不,下载模拟器不会添加任何新的SDK。 没有必要。 使用Xcode 6,您的应用程序应该具有iOS 8的基本SDK。您可以将部署目标设置为早在4.3(尽管比7.0更进一步毫无意义)。 这样您的应用程序就支持iOS 8和iOS 7.不需要iOS 7 SDK。

我想我明白你在问什么,答案是否定的: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兼容性),其他方法将被弃用或仅仅是不同的。 文档在拼写差异和弃用方面做得非常好。

您对旧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.

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM