关于手动安装较新版本的iOS Base SDK遇到的坑

1个月前 (06-17) fancyang IOS相关开发 0评论 已收录 218℃

最近为了在xocde下测试ios 11.4系统app版本更新后的bug,又不希望升级xcode版本,就从网上下了个11.4的SDK,可是下载后直接复制到/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport后是不起作用的。打开xcode工程的build settings在Base SDK那一栏看还是latest iOS(iOS11.3)。 于是想到是不是DeviceSupport下面的两个文件Info.plist和version.plist的版本号没改过来的原因。然后在我更改了之后,坑爹的事情发生了。xcode依旧不能识别新的SDK,将两个上述文件恢复原状后,我就在Base SDK那一栏的下拉菜单中选择了other,弹出一个框输入: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/11.4 (15F79)。这下不仅不能识别,连原来的Base SDK iOS11.3都不能识别了,手动设置other选项为iphoneos也不起作用(“iphoneos(SDK not found)”)。于是我试着编译一下工程,看看问题出在哪。之后log报出如下错误:error: There is no SDK with the name or path '/Users/******/Documents/******/iphoenos'。 原来iOS Base SDK的other那一栏是以用户工程路径来识别的,直接填入iphoneos的SDKROOT字串会以相对路径定位到工程的绝对路径中。 知道是路径判断的问题就好办,打开终端输入: sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer/ 输入密码后重启xcode再来检查SDK路径,正常识别11.3。 下面就该找11.4的识别路径了。前面我尝试用替换Info.plist和version.plist的方法改默认Base SDK识别版本,可是失败了,看来路径不对,后来用终端命令:xcrun --sdk iphoneos --show-sdk-path查询默认SDK真实路径得:

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS11.3.sdk

找到finder前往改文件夹,发现该文件夹仅仅是个替身。它的原身正是名为iPhoneOS.sdk的文件夹。而这个文件夹下的SDKSettings.plist正是对SDK进行了配置。而这个文件夹下的其他文件正是11.3SDK的内容,暂且不说把网站下载下来的SDK解压到这里对Xcode编译有什么影响,而出于安全考虑,本人暂不采用下一步行动,而是直接从app store更新的xcode,故此,坑爹的SDK升级之旅就此结束,还是绕了一圈,采取了从官方升级的方法。

记录此文以便以后有更高的升级SDK方法,在此更新。

 

博主

这货来去如风,什么鬼都没留下!!!

相关推荐

嗨、骚年、快来消灭0回复。

002956;您的ip地址是54.196.38.114; 当前围观人数:2

橘花2支持在线更新了,点我下更新支持文档然后托给橘花,再点SSP面板右键更新