问题
Xcode升级到16.0,在运行项目的时候,遇到的错误。
Include of non-modular header inside framework module 'ShareSDKExtension.SSEBaseUser': '/Users/yingyun/Documents/zhsm/qisemi/qisemi_iOS/WiseSeller/WiseSeller/ThirdParty/ShareSDK/Required/MOBFoundation.framework/Headers/MOBFDataModel.h'
原因
由于在框架模块内包含了非模块化的头文件。
Xcode不允许这种行为,但可以通过设置AllowNon-modularincludesinFrameworkModules为YES或把导入语句放在.m文件中来解决。
建议库的开发者避免在头文件中直接import第三方库的头文件。
解决方案
1、把 target 下的 Build Settings 中的 Allow Non-modular includes in Framework Modules 设置成YES。
2、将#import “**.h” 第三方库写在 .m文件中,而不是放在.h文件中。
这种分两种情况,一种是修改工程中的import,能放.m的尽可能放到.m文件。
另一种是framework制作方,使用三方依赖的时候也要避免在头文件中import三方的头文件。