【问题标题】:Xcode 9: how to install ios 10 sdkXcode 9:如何安装 ios 10 sdk
【发布时间】:2017-12-12 14:37:54
【问题描述】:

鉴于目前 Xcode 9 是测试版,而今天的主要兴趣是了解 iOS 11,这个问题无疑很奇怪......

在 Xcode 9 beta 中工作时,有没有办法将 iOS 10 作为基础 sdk? Apple 是否需要像在 Xc8 中为以前的操作系统一样打包 Xcode 9 的 SDK?

为什么要这个?

a) 首先想到的是在一个项目中使用 Xcode 9 不错的新重构工具,该项目涉及的代码需要从 iOS 10 更改为 11,但目前必须在 iOS 10 上运行。

b) 为了实验..

【问题讨论】:

  • 不清楚您想在这里问什么。当然可以使用 Xcode 9 在 iOS 10 上进行开发。只需确保您的部署目标设置为 iOS 10。
  • 好吧,我想看看使用 Xcode 9 测试版是否已经有一种方法可以添加以前的 iOS SDK,就像您可以在发布版本中那样......跨度>
  • beta 期可能无法预见...

标签: ios xcode ios10 base-sdk


【解决方案1】:

使用 thisthis 我能够使用 Xcode 9 beta 4 针对 SDK10.3 进行编译。许多注意事项是可能的。

警告 1: Xcode GUI 似乎无法同时检测多个 iPhone SDK。因此,您不能在 10.3 和 11.0 作为基础 SDK 之间来回切换。

警告 2: Xcode 9 附带的 swift 编译器不支持针对低于 11.0 的 iPhone Simulator SDK。如果你尝试,你会遇到这个错误:

错误:Swift 不支持 SDK 'iPhoneSimulator10.3.sdk'

注意事项 3: 即使您完成了所有这些操作,您仍然不能提交打算在 iOS 11 启动之前发布的应用程序。使用较旧的基础 SDK 的唯一好处是利用 iOS 平台中的某些特殊情况。一个值得注意的例子是 background VoIP sockets,还有其他几个类似的例子散布在 iOS 的历史中。

旧版 VoIP 架构在 iOS 8 中被新的基于 PushKit 的架构所取代。随后,它在 iOS 9 SDK 中被正式弃用。在 iOS 10 中,它仅作为兼容性措施提供;如果您的应用与旧的 SDK 链接,它会继续工作(和以往一样),但如果您与 iOS 10 SDK 链接,它将被禁用。

注意事项 4:您只能使用纯粹的 Objective-C 项目来做到这一点。 10.3 SDK 和 Xcode 9 自带的 swift 编译器的版本似乎有些不兼容。具体来说,这个错误:

如果您仍然感兴趣

...这里是如何做到这一点。

步骤 1

通过替换此处的文件,将适用于 Xcode 9 的 11.0 SDK 替换为适用于 Xcode 8.3.3 的 10.3 SDK:

Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs

这里的文件:

Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs

第二步

在此文件中将 MinimumSDKVersion 值从 11.0 更改为 10.3:

Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Info.plist

【讨论】:

  • 您的问题似乎有些混乱。 “base sdk”和“deployment target”之间有一个主要区别。这个答案专门解决了更改基本 sdk 的问题。更改部署目标很简单。
  • 谢谢!我使用 10.3 SDK 在 iPhone X 模拟器上成功启动了我的应用程序。刚把iPhoneOS.platform改成iPhoneSimulator.platform
  • @AllenHumphreys 为什么不保留两个 SDK 而只是更改符号链接的路径? ?‍♂️
  • @Chris 这似乎可行,但这是很久以前的事了,所以我不认为我会复制它以确保它有效。
  • @AllenHumphreys 这就是我所做的,我能够使用 Xcode 8.3.3 提供的 10.3.x SDK 来构建 iOS 应用程序。
【解决方案2】:

Xcode 9 beta 4 允许下载和使用所有以前的模拟器。不再需要任何解决方法,只需单击图片中显示的“下载模拟器”菜单项(最后一项)下载模拟器即可。

Screenshot : XCode 9 beta mixed simulator versions in list

【讨论】:

  • 感谢分享。尽管如此,对我来说,这不是关于在模拟器上进行测试,而是更多关于为 iOS 10 而不是 11 编译的变化。有一些重要的变化(一个顶级布局指南)使得继续编译你的应用程序是可取的暂时iOS 10,不只是在其他模拟器中测试。
  • 但是 Xcode 9 也完全能够为 ios 10 编译。我一直在用它来编译 10.3 目标。如果您选择 10.3 目标而不是 swift 4 会发生什么,编译器将自称为 swift 3.2(这是 swift 4 编译器在 swift 3 兼容模式下工作。)这是您正在尝试做的还是我误解了您的评论?
  • Targeting 10.3 做的很少,和 Swift 语言版本无关。您可以毫无问题地使用 Swift 4 定位 10.3。问题是你的二进制文件在编译时链接到哪个版本的系统库。
  • 你是对的。我只是考虑在以前的 iOS 版本上进行测试,而不是针对旧的 SDK 进行编译。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-03
  • 2016-11-04
  • 1970-01-01
相关资源
最近更新 更多