2019-07-31 记录私有库坑 :Include of no
2019-07-31 本文已影响1人
mis06
如何给自己项目添加Pod支持,让别人也可以 pod install,愉快的使用你的库,请看这里
👉👉👉:https://www.jianshu.com/p/0e1d796b2a42
在给自己项目添加Pod支持,在终端执行:
pod spec lint MSCycleScrollView.podspec
抛出如下错误:
图1
错误原因:我在项目中添加了第三方依赖库SDWebImage和MSPageControl,如下图:
图2而在引入时,在项目.h文件中引入了第三方.h文件。遇到这个问题之后在网上搜索了下“include of non-modular header inside framework module”,网上大部分的解决方法是:
- 将Build Settings中的Allow Non-modular Includes In Framework Modules设为YES;
- 将第三方.h文件在.m中引入;
考虑第一种方法:尝试了方法1后,依旧抛出图1的错误;
考虑第二种方法:因为我在项目.h文件需要引入第三方的属性,根据属性设置代码显示效果,于是在.m中引入第三方.h这个方法还是行不通,好桑心💔💔💔💔~~~。但是不能放弃啊!!,后来我在网上找啊找,找到两种解决方案,尝试都成功了:
解决方法一、在你的.podspec文件中添加
spec.user_target_xcconfig = { 'CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES' => 'YES' }
⚠️⚠️⚠️:如果多个pod的podspec中对user_target_xcconfig同一个值进行了设置,那么就可能存在冲突问题,所以不建议使用!
解决方法二、在执行pod spec lint和pod trunk push时,在命令行尾部添加--use-libraries,如下命令
pod trunk push MSCycleScrollView.podspec --verbose --allow-warnings --use-libraries
重要的事情说N遍:
=== 推介使用方法二! 推介使用方法二! 推介使用方法二! ===
切记!切记!切记!如果之前在pod spec lint时使用了--allow-warnings或--use-libraries这里在pod trunk push就必须添加,这里坑了我好半天!!