iOS 你不知道的还很多

远程私有库配置的那些坑

2018-03-13  本文已影响7人  雪中夜归人

前言

  最近开始做新项目,顺道捯饬捯饬远程私有库。把能够公用的类都放到私有库中去,减少冗余代码,加快新项目的开发。而且便于后期维护。

正文

  具体的怎么一步步去配置远程私有库,这里就不废话了,网上教程一大堆。

远程私有库配置流程.png

记录一下实际做开发的时候遇到的坑,以及解决的方式

一、target has transitive dependencies that include static binaries

库依赖错误.png
spec中依赖了框架.png

在使用cocoapods安装一些非开源的类库的时候就会报的错误。

解决方案:podfile中将 use_frameworks! 注释掉。

二、include of non-modular header inside framework module

代码依赖MBProgressHUD 第三方库, pod spec lint 验证过程中一直有这个错误
网上的参考文章
include of non-modular header inside framework module解决方法
不过,我都试过了 没有解决我的问题

解决方案:在pod spec lint后加上--use-libraries。

三、其实是问题一的延续,问题一是pod安装的时候就报错。此处是在pod repo push spec文件时报错。

解决方案:暂时未解决,只有把通过cocoapods依赖安装的这种库删除。

总结:

  通过这次真正对组件化的实践,学到了许多命令许多命令。
例如:
1.podfile中如果配置了私有库,那么需要写明私有库的资源路径
source '{私有库的路径}'
2.在验证spec文件时 如果有私有库 也要在pod lib lint 后加上
--sources={私有库的路径},{gitHub公用库的路径}

本文纯粹为了记录这两天的一些坑。

2018年6月5日的更新

最近再次使用远程私有库时,又碰到了二、三两个问题,这次幸运的找到了方法解决。
只需要在spec文件中添加以下代码:

  s.user_target_xcconfig = { 'CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES' => 'YES' }

感谢这两位的文章:
[CocoaPod]基于私有仓库的pod创建问题
让CocoaPods static library支持Module

上一篇下一篇

猜你喜欢

热点阅读