美文网首页
podspec中的引用资源文件

podspec中的引用资源文件

作者: brownfeng | 来源:发表于2019-04-17 19:49 被阅读0次

    podspec中的资源文件

    iOS开发中使用cocoapod做依赖管理, 我们自己很多组件也使用cocoapod私有库进行管理. 在私有库的开发中, 总是会面临私有库的资源引用的问题.

    目前podspec的指引中有如下几种添加资源的方式:

    • resources
    • resource_bundles

    cocoapod中的方法

    一般有如下两种使用方法:

    # 直接使用 resource 和 resources
    
    # 直接会将
    spec.resource = 'Resources/HockeySDK.bundle'
    spec.resources = ['Images/*.png', 'Sounds/*']
    

    官方文档注释是: A list of resources that should be copied into the target bundle, 表示这些资源文件在build时会被直接拷贝到 client targetmainBundle 里.

    # 生成单个bundle -> MapBox.bundle
    spec.ios.resource_bundle = { 'MapBox' => 'MapView/Map/Resources/*.png' }
    # 生成多个bundle -> MapBox.bundle,  MapBoxOtherResources.bundle
    spec.resource_bundles = {
        'MapBox' => ['MapView/Map/Resources/*.png'],
        'MapBoxOtherResources' => ['MapView/Map/OtherResources/*.png']
    }
    

    使用这个方法就能自己定义bundle的名称以及内部封装的资源. 使用是 'bundle名字' => ['资源路径']

    推荐方法:

      s.resource = ['BFTestSDK/Assets/**/*.bundle']
    
      s.resource = ['BFTestSDK/Assets/images/*.png']
      s.resource_bundles = {
         'BFTestSDK_png' => ['BFTestSDK/Assets/images/*.png'],
         'BFTestSDK_voice' => ['BFTestSDK/Assets/voices/*.mp3']
    }
    

    第一种, 直接使用自己封装好的bundle
    第二种, 会封装成两个bundle -> BFTestSDK_png.bundleBFTestSDK_voice.bundle

    注意如果使用静态库, 并且使用pod package BFTestSDK.podspec进行打包(默认打出来的是静态库), 打包出来的资源文件在BFTestSDK.framework/Resource目录下, 如果我们要使用, 记得把bundle资源剪切出来.

    参考

    https://mp.weixin.qq.com/s?__biz=MzA5NzMwODI0MA==&mid=2647759665&idx=1&sn=4b1f2fde434f1b45ff3eac627a7b7fd9
    https://blog.csdn.net/TuGeLe/article/details/85049392
    http://blog.xianqu.org/2015/08/pod-resources/
    https://guides.cocoapods.org/syntax/podspec.html#resources

    相关文章

      网友评论

          本文标题:podspec中的引用资源文件

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