[CocoaPods]podspec文件中的resource和resource_bundle

本文介绍了CocoaPods中管理资源文件的两种方式:resources和resource_bundles。resources可能导致命名冲突,而resource_bundles通过创建资源包来避免冲突。通过示例展示了如何使用这两种方式处理图片和xcassets,强调了使用resource_bundles以减少冲突的重要性。最后,文章提供了加载bundle中asset.car图片的方法,并建议在多人开发中采用resource_bundles并制定命名规范。
摘要由CSDN通过智能技术生成

相信基本上所有的iOS开发同学针对于CocoaPods都不陌生。即便没有用过,也是久闻大名如雷贯耳。作为Objective-C和Swift中非常流行的依赖管理工具,它拥有超过10000个公有程序库,通过一份Podfile文件和pod install命令就能帮助开发者方便的管理工程依赖。

随着组件化越来越火热,大家都开始介入研究。组件化就免不了通过CocoaPods创建自己的私有代码库。而针对于一些业务模块,不光有代码,还有一些其他的资源,如图片、音视频等等。那么,下面就介绍一下如何给Pod库添加资源文件。

在CocoaPods中,官方提供了两汇总资源文件的引用方式——resourceresource_bundles

添加资源文件的字段

resources

官方解释:一系列待复制到目标工程中的资源文件。

使用方法:

指定一个bundle为资源文件
spec.resource = 'Resources/HockeySDK.bundle'
指定多个目录下的不同文件为资源文件
spec.resources = ['Images/*.png', 'Sounds/*']

(注意一个和多个的区别,多个在属性resource后面加s)

官方提示:如果构建静态库Pod时,强烈推荐使用resource_bundles来指定资源包,因为可以避免名称冲突。

resource_bundles

官方解释:允许定义当前Pod库的资源包的名称和文件。使用了hash,其中key表示包的名称,value是对应应包含的文件。key的命名至少应该包含Pod的名称,以最大限度的减少命名冲突的可能性。

使用方法:

指定一个目录下的所有png图片为一个资源包
spec.ios.resource_bundle = { 'MapBox' => 'MapView/Map/Resources/*.png' }
指定多个资源包
spec.resource_bundles = {
    'MapBox' => ['MapView/Map/Resources/*.png'],
    'OtherResources' => ['MapView/Map/OtherResources/*.png']
  }

(注意一个和多个的区别,多个在属性resource_bundle后面加s)

接下来我们来测试一下,为什么resource会容易产生命名冲突。

通过resources、resource_bundles直接管理资源文件

创建一个私有pod,里面分别resource和resource_bundles字段。

Pod::Spec.new do |s|
  s.name         = 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值