美文网首页
Xcode 打包静态库 - Bundle 资源文件包(附带本地加

Xcode 打包静态库 - Bundle 资源文件包(附带本地加

作者: Michael1 | 来源:发表于2017-08-22 14:52 被阅读777次

1. 什么是Bundle文件

  • Bundle 文件,简单理解,就是资源文件包。我们将许多图片、XIB、文本文件组织在一起,打包成一个 Bundle 文件。方便在其他项目中引用包内的资源。
  • Bundle 文件是静态的,也就是说,我们包含到包中的资源文件作为一个资源包是不参加项目编译的。也就意味着,bundle 包中不能包含可执行的文件。它仅仅是作为资源,被解析成为特定的 2 进制数据。

2. 如何制作静态的Bundle文件

  1. 新建Bundle项目(本文教程使用Xcode8.3.3)
    Bundle 默认是 macOS 系统的,所以创建的时候要在 macOS => Framework & Library 选项下。
图1.png

Product Name “Loading” 就是最后要生成的 Bundle 文件名称


图2.png 图3.png

项目创建完 我们发现Loading.bundle 是红色的 并且设备只能是Mac, 接下来就是修改 Bundle 配置信息,使其能用于iOS

  1. 修改 Bundle 配置信息
  • 修改成iOS系统, 选择iOS SDK 为 Latest iOS(iOS 10.3)
图4.png
  • Bundle 中的图片默认是 tiff 格式了 需要修改Bulide Settings 中的COMBINE_HIDPI_IMAGES为NO
图5.png
  1. 添加需要打包的文件(本例中是图片 也可以是XIB文件等)
    将图片拖到Loading文件夹中
图5.png
  1. 编译生成 Bundle 文件
    我们分别选择 Generic iOS Device 和任意一个模拟器各编译一次,编译完后,我们会看到工程中 Products 文件夹下的 SourcesBundle.bundle 由红色变成了黑色。
图6.png 图7.png

然后点击SourcesBundle.bundle 右键选择show in finder 然后选择显示包内容就可以看到文件资源


图8.png 图9.png 图10.png

3. 如何使用 (以加载本地gif为例)

  1. 先将生成的真机(Debug-iphoneos)Bundle 资源文件拖拽到需要使用的工程中
  2. 获取bundle中的图片资源
    NSFileManager *manager = [NSFileManager defaultManager];
  
    NSString *path = [[NSBundle mainBundle] pathForResource:@"Loading" ofType:@"bundle"];

    NSArray *array = [manager contentsOfDirectoryAtPath:path error:nil];

    NSMutableArray *imageArr = [NSMutableArray arrayWithCapacity:0];

    for (NSString *name in array) {
         /// 拼接路径
        UIImage *image = [UIImage imageNamed:[path stringByAppendingPathComponent:name]];
        if (image) {
            [imageArr addObject:image];
        }
    }
    /// 设置图片帧数组
    self.myImageView.animationImages = imageArr;
    /// 设置动画时长
    self.myImageView.animationDuration = 5;
    /// 动画是否重复(0代表无线循环)
    self.myImageView.animationRepeatCount = 0;
    /// 开启动画
    [self.myImageView startAnimating];

相关文章

网友评论

      本文标题:Xcode 打包静态库 - Bundle 资源文件包(附带本地加

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