X-code 10 升级后 爬坑记录

学习写博客,每次写都是对过往的回顾

好消息,Swift 4.2 在 Xcode 10 beta 版上可以使用了,在 Swift 4.1 的基础上更新了很多语言特性,为 Swift 5 中 ABI 稳定做好准备。

坑:swift问题

Swift 4.2 和 Swift 4.1 源码兼容,但是和其他发布版本的二进制不兼容。Swift 4.2 是 Swift 5 实现 ABI 稳定(不同的 Swift 版本编译的应用程序和库之间实现兼容)的一个中间阶段。ABI 的特性在集成进最终的 ABI 之前会接收社区的大量反馈。
我本着有坑先趟的心情升级了 Xcode 10,然后就坑了。大量代码不兼容,其中还有很多是第三方框架。修改框架? 别逗了。于是只能在兼容原来的代码路上默默前行。

自身代码不兼容

新版本特性:不能处理三个或者以上解包

image.png
let address = location?.address ?? ""
locationDetail.text = (location?.city ?? "") + (location?.district ?? "") + (address)

第三方代码不兼容

解决方法

方法一

等作者发布新版

切换回swift4.0.3 或之前可用的版本

要等作者发布新版可能还会要一段时间

不过大厂更新都是比较快的,及时pod或carthage最新版就行了

若等不及的话那只有切换回原来的版本

方法二

点击去官网
swift官网

image.png

找到你需要的版本

方法三

—— 下载Xcode历史版本

1.打开链接:https://developer.apple.com/download/more/ 进入页面

2.在搜索框输入Xcode,回车搜索.如图,找到各种版本Xcode

小tip

升级之后你的Simulator存在打不开的情况
1.意思是删除模拟器目录下是所有文件。

rm -rf ~/Library/Developer/CoreSimulator/Devices

2.意思是杀死模拟器服务。

killall -9 com.apple.CoreSimulator.CoreSimulatorService

如果还不行,就试试重启大法。重启下电脑再试试。就可以了.

坑:重复的info.plist文件

为了向大家展示错误, 这里是我手动添加了Masonry的库,其中Masonry库中带有info.plist文件


image.png
解决方法 : 删除掉多余的info.plist文件,重新编译即可

坑:在Xcode10中 c++.6.0.9消失了

第一反应是去Build Phases里的Link Binary With Libraries进行添加,然后发现选择frameworks and libraries里已经没有了这个库了,又回去看了一下Xcode9里是有的。

image.png

Xcode10中libstdc++相关的3个库(libstdc++、libstdc++.6、libstdc++6.0.9)应该都是被彻底废弃了,如果你使用的三方库中有依赖,请尽快和提供方沟通,告知他们迁移吧。如果自己开发使用,也尽快考虑迁移的事宜吧.

将Xcode9的 libstdc++6.0.9.tbd 拷贝到Xcode10中使用。

坑: Copy Pods Resources失效

跳出了前两个坑以后,满心欢喜的运行了项目, 出现了另一个巨坑 cocoapads的版本问题
解决办法 : 需要升级CocoaPods版本>=1.4.0以上, 可见Github上的一个issues Xcode10 beta can't load bundles from CocoaPods

简单来说: 更新cocoapads的版本
贴出来更新指令

//查看当前版本号
pod --version
//安装更新:
pod setup
//当执行完以后再执行:
sudo gem install cocoapods

你可能感兴趣的:(X-code 10 升级后 爬坑记录)