1、Bundle 文件
Bundle 文件,简单理解,就是资源文件包。我们将许多图片、XIB、文本文件组织在一起,打包成一个 Bundle 文件。方便在其他项目中引用包内的资源。
2.Bundle 文件是静态的,也就是说,我们包含到包中的资源文件作为一个资源包是不参加项目编译的。也就意味着,bundle 包中不能包含可执行的文件。它仅仅是作为资源,被解析成为特定的 2 进制数据。
2、制作 Bundle 文件
-
创建bundle 如图所示:
找到如图所示:
输入所创建的图片库名称
-
点击创建好的bundle ,修改属性
(1.)“Base SDK” 设置为 " iOS ""Build Active Architecture Only" 设置为 "YES" ![在这里插入图片描述](https://img-blog.csdnimg.cn/20190308181948894.jpeg)
(2.)Installation Directiotory 删除掉后面的路径
(3.)Code Signing Identity 选择 Don’t Code Sign
(4.)“Skip Install” 设置为 “NO”
(5.)“Strip Debug Symbols During Copy” 中"Release"模式设置为 “YES”
(6.) “COMBINE_HIDPI_IMAGES” 设置为 “NO”
3. 现在开始导入图片资源(1.直接拖项目中,系统会自动导入Copy Bundle Resources里去,2.如下图加进去)
- 选择创建的bundle 进行编译,开始生成bundle,分别选择真机和模拟器,然后各运行一遍,即可生成真机和模拟器使用的bundle:
- 找到生成的bundle,打包上架APP的时候应使用真机模式下运行生成的Bundle,即Debug-iPhoneos 文件夹内的bundle。
6.bundle的使用,因为bundle是静态的,不进行编译的资源文件。所以,要使用bundle中的资源,就需要找到相应的资源路径。
#define STBundle_Name @"bundle路径"
#define STBundle_Path [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:STBundle_Name]
#define STBundle [NSBundle bundleWithPath:STBundle_Path]
self.iconImg.image = [UIImage imageNamed:imgName
inBundle:STBundle
compatibleWithTraitCollection:nil];