iOS 开发: CocoaPods 远程私有仓库的维护 - 添加图片资源
我们会将自己开发的开源框架或者私有框架上传至远程仓库, 在这些框架中可能会用到一些资源文件, 比如: 图片资源, 视频资源, 音频资源等
本编中主要讲述的是, 上传至远程仓库的框架中, 资源的添加和引用问题
下面使用的工程是在本地创建的 CocoaPods 私有库中的测试工程, 具体创建方法可以看 iOS 开发: 配置 CocoaPods 远程私有仓库
添加资源
-
当使用 CocoaPods 管理远程仓库的代码时, 都会有一个 podspec 文件, 在这个文件中, 我们需要加入几句代码来表示需要引用的资源, 路径等, 如下图:
-
上述图片中的路径位置在下面的图中
-
将图片资源放在 Assets 文件夹中
-
当图片放置好, podspec 文件也添加引用资源的代码后, 使用终端 cd 到当前工程, 并执行 pod install
引用资源
-
使用 CocoaPods 添加的代码库, 在工程编译后, 图片等资源会在包的下图位置中
-
使用代码查找当前文件所在的 bundle 包可以使用 NSBundle 类的 + (NSBundle *)bundleForClass:(Class)aClass; 方法
-
Xib 文件的引用方法
-
Xib 文件位置
-
注意: 使用 [NSBundle mainBundle] 找到的 bundle 并不是 Pods 库中文件所在的直接 Bundle
-
图片资源都会在 LTFM.bundle 包中, 所以在引用图片的时候, 不能使用 [UIImage imageNamed:@" 图片名 "] 的方式, 而是需要使用图片路径来加载图片
- 注意, 在查找 path 时, 要先找到当前文件所在 Bundle, 然后就是图片需要使用全称, 不能仅仅使用 tabbar_bg.png, 并且需要指明在哪个路径下查找, 这里是 LTFM.bundle
-
由于图片名称必须写全, 所以在适配 2x, 3x 图的时候, 可以使用下面的方法获取当前屏幕需要使用的图片倍率, 进行动态适配图片
-
如果直接使用 [UIImage imageNamed:@" 图片名 "] 查找图片, 那么就不会加载出来
-
如果是 Xib 中加载的图片, 那么可以在图片名字前面拼接图片的 包名 就可以了, 例如要加载的图片名字是 tabbar_np_shadow@2x.png, 那么使用的事就只需要写成 [LTFM.bundle/tabbar_np_shadow] 就可以了
-
在测试工程中测试完毕后, 就可以添加到远程私有仓库了, 并将 podspec 文件配置好后, 传到远程索引库即可
-
注意: 使用 CocoaPods 加载的第三方库中如果有 xib 文件, 那么就要注意, 如下图
来源: https://juejin.im/post/5a32a2816fb9a0450b666b3f