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