iOS技术集IT-iOS开发

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”,网上大部分的解决方法是:
  1. 将Build Settings中的Allow Non-modular Includes In Framework Modules设为YES;
  2. 将第三方.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就必须添加,这里坑了我好半天!!

在此记录一下,希望小伙伴们不要踩坑!!

上一篇下一篇

猜你喜欢

热点阅读