鉴于目前Xcode 9是测试版并且今天的主要兴趣是获得iOS 11的知识,这个问题无疑是奇怪的......
在Xcode 9 beta中工作时,有没有办法将iOS 10作为基本sdk? 是否需要Apple以与Xc8中以前的操作系统相同的方式打包Xcode 9的SDK?
为什么会想要这个?
a)首先想到的是在项目上使用Xcode 9漂亮的新重构工具,该项目涉及需要从iOS 10到11进行更改的代码,但目前在iOS 10上运行。
b)为了试验...
答案 0 :(得分:11)
使用this和this我能够使用Xcode 9 beta 4针对SDK10.3进行编译。可以使用 MANY 警告。
警告1: Xcode GUI似乎无法同时检测多个iPhone SDK。因此,您无法在10.3和11.0之间来回切换作为基础SDK。
警告2: Xcode 9附带的swift编译器不支持小于11.0的iPhone模拟器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编译器版本之间似乎存在一些不兼容性。具体来说,这个错误:
......这是怎么做的。
将Xcode 9的11.0 SDK替换为10.3 SDK for Xcode 8.3.3,替换此处的文件:
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
答案 1 :(得分:1)
Xcode 9 beta 4允许下载和使用所有以前的模拟器。不再需要解决方法,只需通过单击图片(最后一项)中显示的下载模拟器菜单项下载模拟器。