学习写简书博客,每次写简书都是对过往的回顾
好消息,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.pnglet address = location?.address ?? ""
locationDetail.text = (location?.city ?? "") + (location?.district ?? "") + (address)
第三方代码不兼容
解决方法
方法一
等作者发布新版
切换回swift4.0.3 或之前可用的版本
要等作者发布新版可能还会要一段时间
不过大厂更新都是比较快的,及时pod或carthage最新版就行了
若等不及的话那只有切换回原来的版本
方法二
点击去官网
swift官网
找到你需要的版本
方法三
—— 下载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.pngXcode10中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
网友评论