【Xcode小技巧】生成Bundle包

作者: 刘大帅 | 来源:发表于2015-09-02 15:13 被阅读8673次

    参考文章


    制作APP中,我们可以用bundle来管理资源文件.

    一、什么是Bundle文件

    简单理解,就是资源文件包。我们将许多图片、XIB、文本文件组织在一起,打包成一个Bundle文件。方便在其他项目中引用包内的资源。

    二、Bundle文件的特点

    Bundle是静态的,也就是说,我们包含到包中的资源文件作为一个资源包是不参加项目编译的。也就意味着,bundle包中不能包含可执行的文件。它仅仅是作为资源,被解析成为特定的2进制数据。

    三、制作Bundle

    1.新建bundle项目
    新建bundle.png bundle_name.png
    2.添加需要的资源文件

    加入你需要编译在bundle中的资源文件。

    添加资源文件.png
    3.编译bundle
    编译bundle.png
    4.项目集成bundle

    将制作好的bundle拖拽到项目中.

    5.使用bundle中的资源
    宏.png
    
    #define MYBUNDLE_NAME_2   @"BundleTest2.bundle"
    #define MYBUNDLE_PATH_2   [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent: MYBUNDLE_NAME_2]
    #define MYBUNDLE_2        [NSBundle bundleWithPath: MYBUNDLE_PATH_2]
    
    #define MYBUNDLE_NAME_3   @"Bundle3.bundle"
    #define MYBUNDLE_PATH_3   [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent: MYBUNDLE_NAME_3]
    #define MYBUNDLE_3        [NSBundle bundleWithPath: MYBUNDLE_PATH_3]
    
    代码.png
        // 从bundle中加载xib
        UIView *view = [[MYBUNDLE_2 loadNibNamed:@"MyView" owner:self options:nil] objectAtIndex:0];
        view.frame = self.view.frame;
        [self.view addSubview:view];
        
        // 从bundle中加载图片
        UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake(100, 100, 100, 100)];
        imageView.image = [UIImage imageWithContentsOfFile:[MYBUNDLE_PATH_2 stringByAppendingPathComponent:@"Contents/Resources/share_pengyouquan"]];
        [view addSubview:imageView];
        
        // 从另一个bundle中加载storyboard
        UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Bundle3Storyboard" bundle:MYBUNDLE_3];
        NSLog(@"storyboard = %@",storyboard);
        
        // 从另一个bundle中加载图片
        UIImageView *imageView2 = [[UIImageView alloc]initWithFrame:CGRectMake(250, 100, 100, 100)];
        imageView2.image = [UIImage imageWithContentsOfFile:[MYBUNDLE_PATH_3 stringByAppendingPathComponent:@"Contents/Resources/guanyudingyue"]];
        [view addSubview:imageView2];
    
    效果.png APP中的bundle.png

    相关文章

      网友评论

      • a706aa61f4d8:中间是不是还有其他要设置的啊,为什么我编译后的bundle 文件中都是codeSignature文件?是哪个步骤落下了吗?
      • z3l:把storyboard加入bundle后,为什么一直加载不出来呢,报错在这个路径下找不到storyboard
      • 863c73f31933:把bundle资源集成到项目中时,bug和release的需要合并不,像.a库那样?
      • 863c73f31933:release版本是怎么出现的,我这边一直看到的是bug版本的
      • 南方小金豆:如果图片有新增或者更新,是不是需要重新build一个出来?
        篮球火:@1443217910 不错,试了试可以的
        1443217910:直接导入文件夹,不用编译。

        Add file to "xxx"...
        Options 选择 Create folder references
        选择一个文件夹导入
        然后修改导入的文件夹名为xxx.bundle,就变成一个bundle了
        往bundle中添加文件,拖入文件,就可以使用,不需要编译
        a4154c3b70df:@那份牵挂给了谁 同问,不知道有能不能自动更新,不需要重新打包
      • 清眸如画:我看人家的bundle里没有文件夹,那是怎么弄的?
      • 云溪_Cloud:可以自动替换Bundle包里面的图片吗?
      • 枯流水:我想隐藏Bundle文件,不想让别人看到里面的一些东西,有什么办法吗?
        刘大帅:@小O0 这个我没做过

      本文标题:【Xcode小技巧】生成Bundle包

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