Pod spec私有库集成遇到的错误(二)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Pod spec私有库集成遇到的错误(二)相关的知识,希望对你有一定的参考价值。
参考技术A私有库中依赖私有库
本地验证、远端验证
删除重新编译
Build Settings 找到Other Linker Flags中找到你的那个XXXX框架然后删除,重新编译就可以成功。
异常:XCode编译出错异常:ld: framework not found Kernel clang: error: linker command failed with e.......
解决办法:
Targets->Build Setting->Linking->Match-o-Type ,修改为Static Library,再次编译,编译成功。
https://blog.csdn.net/qq_40697071/article/details/99055070
2.勾选 “Run script only when installing”
https://blog.csdn.net/longshihua/article/details/78054446
很奇怪,为什么已经从项目中删除了文件和文件夹还是报这个警告呢?
去掉警告的办法如下:
1.选择工程, 编译的 (targets)
2.选择 Build Settings 菜单
3.查找 Library Search Paths 和 Framework Search Paths, 删掉编译报warning的路径即OK
进入Build Settings
搜索OTHER LINKER FLAGS
-framework这个标志是给你带.framework的文件使用的,所以你需要找出来那些不需要-framework的框架,把它下面的-framework删除掉。
解决方案:在Podfile中,注释use_frameworks!后,重新执行pod install。
如果私有库添加了静态库或者dependency用了静态库
那么执行pod lib lint还有pod spec lint时候需要加上—user-libraries选项
否则会出现\'The \'Pods\' target has transitive dependencies错误。
https://www.jianshu.com/p/bdb1db6c9db4/
–use-libraries使用静态库,如果在工程中使用到了静态库,但不在编译的时候加上这句话,就不能编译通过。如果私有库中存在.a文件,那么必须加上这个后缀。
–allow-warnings允许警告,警告可能会导致编译不能通过,一般需要加上它。
–sources=BIFaceSDK,BIEncrypt说明库的依赖关系,这里说明了库依赖于BIFaceSDK,BIEncrypt这两个pods。
–skip-import-validation和–skip-tests这两个命令可以跳过部分验证环节,如果发现工程怎么都lint不过,那么可以尝试一下这个。
需要注意的地方:
–skip-import-validation和–skip-tests
这样操作之后,确实可以实现pod的更新,但是最终工程中的pod可能会发生丢失部分文件,找不到索引等意外。因此,还是要谨慎操作哈!
这次报错事因为再依赖三方库中有静态库,而三方的阿里云只支持真机架构
所以在 .podspec中添加指定的架构
这个问题真的是很令人头疼,折腾了两天,也看了网上的一些解决办法,包括StackOverFlow,有成功的也有不成功的,成功的我也觉得不是最佳。我就去翻CocoaPods GitHub Issues,终于让我翻到了。
8129这个问题在 CocoaPods 1.6.0.beta.2 版本得到了修复
私有库中包含有第三方的静态库。
解决办法需要在 podspec中添加:静态库的绝对路径
本地私有库的实现 pod
以pods的形式,引入本地相关文件
一, 生成本地库 的描述文件.spec
//1.进入的 本地库的 目录
cd ‘xxx‘
//2.初始化本地仓库
git init
git add .
git commit -m ‘xxx‘
//3.创建spec文件
pod spec create ‘spec的文件名字‘
//然后,用xcode打开文件,可修改相关信息,如下:
//.summary 摘要信息(短一点)
//.description 库的描述信息
//.license 协议,删掉多余的(xx)
//.author 作者, maxueshan => [email protected]
//source 本地库, 改成空的
//.source_files 过滤文件(*表示文件 .h .m )
二.集成到 宿主工程中
//1.进入
cd ‘xx‘
//2.生成podfile文件
pod init
//注释:pod repo 可查看检索的路径
//3.podfile中设置pod库
pod ‘Base‘, :path => ‘../Base‘ //需要指定路径,路径直到 .spec文件所在的目录即可
//注释: ‘ ../‘ 的作用是跳出当前目录,回到上一个目录
//4.安装
pod install
以上是关于Pod spec私有库集成遇到的错误(二)的主要内容,如果未能解决你的问题,请参考以下文章