iOS之老项目升级常见报错集合
1、报错信息ViewTouch.xib Compiling IB documents for earlier than iOS 7 is no longer supported.
把build for 的版本更改为iOS7.0 或以上错误即可解决
B3862157-DF8C-4A56-AF73-BF5E24901432.png2、does not contain bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode for this target.
一种就是换成 enable bitcode 的第三方库,再有一种就是将工程的 ENABLE_BITCODE 设置为 false 就可以了。
EAC6764A-1661-442C-9D80-4DF21ED89542.png3、iOS 11图片保存相册权限
This app has crashed because it attempted to access privacy-sensitive data without a usage description. The app's Info.plist must contain an NSPhotoLibraryUsageDescription key with a string value explaining to the user how the app uses this data.
NSPhotoLibraryAddUsageDescription是iOS 11新推出的隐私规则,在写入相册时会询问,没有的话就会闪退。
info.plist Source Code对应设置:
<key>NSCameraUsageDescription</key>
<string>请允许APP访问您的相机</string>
<key>NSPhotoLibraryAddUsageDescription</key>
<string>请允许APP保存图片到相册</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>请允许APP访问您的相册</string
4、 修改build system
在Xcode菜单栏 -> File -> Project Setting,将build system修改为legacy build system,然后clean后编译。
WeChatbc087a2243327e42986c335d6a9e83fc.png5、 library not found for -lstdc++.6.0.9
ld: library not found for -lstdc++.6.0.9
clang: error: linker command failed with exit code 1 (use -v to see invocation)
错误原因:
Xcode10中已去除这个library。项目中有用到的话,可以从旧版本Xcode中copy一份过来。
解决方法:
如果你自己的业务模块使用了libstdc++,那么就把模块代码重新调整为依赖libc++,然后重新检查是否存在问题,重新编译
如果你引用的三方库使用了libstdc++,那么向三方库寻求支持,进行升级