美文网首页
pod lib lint报错后的解决办法

pod lib lint报错后的解决办法

作者: 绿绿清欢 | 来源:发表于2018-03-30 17:59 被阅读1826次

    用cocoapods创建私有库,管理自定义开发组件的时候,遇到的坑有点多,尤其是在执行下面这条语句之后

    pod lib lint
    

    下面,特地来总结一下遇到这个问题的各种可尝试方案,说一说我自已尝试过的解决办法

    1. xxx.h 找不到

    明明是编译通过(build success)了的,你说找不到这个头文件,你是在逗我吗?
    然后发现GitHub上好多人在cocoapods的issues 里面提过这个问题;但是并没有什么好的解决办法,所以我就开始各种尝试了

        Solution1: 把这种 #import <xxx.h> 引入类的方式换成引号引用 #import "xxx.h"
        Note:表示换了, 然后没起作用,不过好多地方包括后来它自己也提示建议用 "" 而非<>来引用文件
    
        Solution2:把#import "xxx.h"文件放入.m文件中,而不是在.h文件中
        Note:此方法有效;pod lib lint不会报error了
        但是在后面提交执行pod push repo Myspecs xxx.podspec还是有问题
    

    2. error: include of non-modular header inside framework module

    这个问题倒是好解决,在代码语句后面添加上 --use-libraries

    pod lib lint --use-libraries
    #或者
    pod spec lint --use-libraries
    #当然,在提交的时候也要加上
    pod repo push <repoName> <podspec> --use-libraries
    #此方法好像能一并解决xxx.h找不到的问题
    

    3. MySpecs is not clean

    这是pod lib lint验证通过货,提交时报的问题,可在我访问这个文件~/.cocoapods/repos/MySpecs,并把里面唯一一个license文件删干净后都还是有这个错误,然后发现好像删干净后要提交一下才行
    有个解决办法是

    $ pod repo update MyRepo
    

    不过还是not clean;有效的朋友下面这段应该可以省略了~~
    cd ~/.cocoapods/repos/MySpecs
    #如果你没有手动删,也可以用命令删 先 ls 列出这个目录所有文件 然后执行rm -Rf 文件名
    #删完后提交
    git add --all .
    git commit -m "remove useless files"
    git push origin master

    执行完后再执行提交语句就成功啦

    pod push repo Myspecs xxx.podspec --use-libraries --allow-warnings
    Note:这里添加了一个options就是--allow-warnings,就是如果你的库依赖的第三方库有警告的话 终端会提示你要把这个加进去哒~
    

    参考文章

    这两篇文章都不错,你要想从头开始创建私有库可以细读。

    相关文章

      网友评论

          本文标题:pod lib lint报错后的解决办法

          本文链接:https://www.haomeiwen.com/subject/uibicftx.html