Xcode 10 release 之后第一时间便是更新了 Xcode 10,但是项目一运行发现编译错误。相信很多人都也遇到了这个问题。毕竟在好几个群里都看见了这个文件在传来传去。
早在之前 beta 的时候就知道了苹果已经在 Xcode 10 中彻底移除了 libstdc++6.0.9 这个库,当时 stackoverflow 上就有了从 Xcode 9 中把这个库弄出来的方法。遇到这个问题,我也首先想到了这个解决方案,然而很不幸的是,模拟器,真机不能同时运行。接下来我做了这些事情:
-
更新网易七鱼
其实之前已经跟七鱼的技术支持确认过了,老版本的七鱼是依赖了这个库的。
跟七鱼的技术支持沟通之后,确定在最新的 4.4.1 中,已经解决了这个问题。更新七鱼之后发现问题依旧。
-
查找 pod 里面的 config 文件,全局搜索,发现了这个库。
这时候基本上已经知道了某个三方是依赖了这个东西的,然后将所有三方升级。问题依旧。这时候猜测有某个库还没有更新。然后再查 pod 的 config,已经没有了 6.0.9。但是依然编译不过。
这时候已经有点懵逼了。还是不死心,建立新的项目,挨个将使用了的三方导入。均没有发现问题,这时候开始怀疑是项目本身有问题。
打开 xcodeproj 文件,显示包内容,再打开 project.pbxproj, 全局搜索,发现还是有这个东西。 这时候基本上已经确定是项目本身的问题了。
直接删除这个文件里面的相关代码。然后打开 build setting, 找到各种 search path 查找是否有这个东西。然后还有 other linker flags,查找,然后删除 libstdc++6.0.9
运行,成功。
ps: 如果项目中本身就依赖了这个东西, 需要换成 libc++。
抽了10分钟左右快速的记录下这篇踩坑记,希望能够帮到跟我一样一脸懵逼然后凑巧看到这篇短文的同行。最后感谢七鱼的技术支持!