iOS之老项目升级常见报错集合

1、报错信息ViewTouch.xib Compiling IB documents for earlier than iOS 7 is no longer supported.

把build for 的版本更改为iOS7.0 或以上错误即可解决

iOS之老项目升级常见报错集合_第1张图片
B3862157-DF8C-4A56-AF73-BF5E24901432.png

2、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 就可以了。

iOS之老项目升级常见报错集合_第2张图片
EAC6764A-1661-442C-9D80-4DF21ED89542.png

3、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对应设置:
NSCameraUsageDescription
请允许APP访问您的相机
NSPhotoLibraryAddUsageDescription
请允许APP保存图片到相册
NSPhotoLibraryUsageDescription
请允许APP访问您的相册

4、 修改build system

在Xcode菜单栏 -> File -> Project Setting,将build system修改为legacy build system,然后clean后编译。

iOS之老项目升级常见报错集合_第3张图片
WeChatbc087a2243327e42986c335d6a9e83fc.png

5、 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++,那么向三方库寻求支持,进行升级

你可能感兴趣的:(iOS之老项目升级常见报错集合)