美文网首页
iOS组件化Cocoapods踩坑

iOS组件化Cocoapods踩坑

作者: PandaXiong | 来源:发表于2018-12-29 11:01 被阅读8次

    一、推送私有库时候忽略警告

    // pod repo push 私有索引库名称 spec名称.podspec 
    pod repo push  xxx spec xxx.podspec --allow-warnings --verbose 
    
    // --allow-warnings : 允许 警告,有一些警告是代码自身带的。
    // --use-libraries : 私有库、静态库引用的时候加上 
    // —verbose : lint显示详情
    

    二、框架中如果使用Xib加载crash的情况
    出现通过mainBundle加载不了,无法获取Xib

      [NSBundle bundleForClass:[self class] 获取bundle 
    // 这样之后,无论是通过copy文件夹方式还是CocoaPods下载安装的方式,都能正常使用xib进行初始化了
    

    三、图片无法正常显示通过ImageName

    通过CocoaPods下载安装,如果xib中直接填写好的图片,则图片资源能直接显示,如果通过代码"[UIImage imageNamed:@""]"去设置的话,则图片资源根本显示不了

    //改变代码图片路径
    // 图片路径
    #define WMCommonSrcName(file) [@"WMCommon.bundle" stringByAppendingPathComponent:file]
    #define WMCommonFrameworkSrcName(file) [@"Frameworks/WMCommon.framework/WMCommon.bundle" stringByAppendingPathComponent:file]
    

    WMCommonSrcName(file) 为通过copy文件夹方式获取图片路径的宏
    WMCommonFrameworkSrcName(file) 为通过cocoapods下载安装获取图片路径的宏

    之后修改代码中设置图片的方式如下:

    UIImage *img = [UIImage imageNamed:WMCommonSrcName(@"image.png")]?:[UIImage imageNamed:WMCommonFrameworkSrcName(@"image.png")];
    

    四、资源文件修改后需要clean一下,比如xib,html文件等
    In Xcode, go to File->Project/Workspace settings.
    Change the build system to Legacy Build system.
    这样可以解决 ,改成xcode旧的构建系统。

    五、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找不到的问题
    

    六、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,
    就是如果你的库依赖的第三方库有警告的话 终端会提示你要把这个加进去哒~
    

    相关文章

      网友评论

          本文标题:iOS组件化Cocoapods踩坑

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