Xcode10正式版今天终于可以下载了,由于公司的网上... 直到晚上才爬完.
兴冲冲的运行项目,但还是发生了一个报错
从上图中看到library库查找不到 libstdc++.6的文件.
查看对应的目录
或者直接查看文件目录
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib/
确实没有libstdc++库了. 多了libc++库.
网上查阅资料:
Xcode10中 项目用到了c++,依赖了libstdc++.tbd和libstdc++.*.tbd,导致整个工程编译不通过,报出Undefined symbols,C++ 的 List 找不到了,原因是苹果在XCode10和iOS12中移除了libstdc++这个库,由libc++这个库取而代之,苹果的解释是lib转载自斗玩网stdc++已经标记为废弃有5年了,建议大家使用经过了llvm优化过并且全面支持C++11的libc++库。
但因为我的这个库是第三方使用的,自己没有权限去改,临时有个解决方案.
将Xcode9(含有libstdc++..tbd库的版本)中的libstdc++库导入到XCode10中:
命令行:
cp /Applications/Xcode9.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib/libstdc++. /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib/
cp /Applications/Xcode9.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/lib/libstdc++.* /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/lib/
PS:升级Xcode要养成一个良好的习惯,升级前保留原先的Xcode版本,通过改名字就可以了. 如果丢失了旧的静态库,也可以从其他地方拷贝过来.
Xcode10 亮点:
-
代码块位置的移动(个人猜想苹果应该是希望我们能更好的使用它,提升开发效率),操作简单多了.
-
Assets.xcassets 多了Appearances 浅背景、深背景 和 High Contrast 选项,用户体验可以更上一层楼了. 以后UI稿又要增加了😄
-
创建系统.
比较新奇,查阅资料后才发现:新创建系统提供了更好的可靠性与创建性能,它可以获取项目配置问题,而legacy创建系统则不能。
Legacy创建系统在Xcode 10中依旧可用。
创建布置如下图: