如何创建和使用Bundle资源包

说来惭愧,虽然已经创建过好几次了,但是偶尔还是会忘记步骤,所以在这里记录一下子,方便查阅。

简单来说,bundle就是一个文件,里面包含很多资源子文件,例如图片,音频,视频等。这些子文件是静态的,不参与编译。

创建及设置

创建bundle

创建bundle项目

base sdk改成iOS样式,默认是macOS样式

设置平台版本

COMBINE_HIDPI_IMAGES设置为NO,否则打包完成之后的png图片将变为tiff格式
设置COMBINE_HIDPI_IMAGES为NO

添加多语言

  1. 添加文字文件,文件名字为Localizable.strings
    添加多语言文件

  2. 文件本地化,点击按钮后选择english
    文件本地化

  3. 添加其他语言类型,例如chinese-simplified
    添加其他语言类型

添加图片等文件资源

目前我的操作是将这些文件直接拖到项目中

如何调用bundle里面的资源

将bundle拖到项目中,并且添加到build phasesCopy Bundle Resource

图片类资源

UIImage *image = [UIImage imageNamed:@"bundleName/picName"]

bundleName: 包名
picName: 图片名

语言本地化

1
2
3
4
5
NSURL *url = [[NSBundle mainBundle] URLForResource:@"bundleName" withExtension:@"bundle"];
NSBundle *bundle = [NSBundle bundleWithURL:url];
NSString *language = [NSLocale preferredLanguages].firstObject;
bundle = [NSBundle bundleWithPath:[bundle pathForResource:language ofType:@"lproj"]];
NSString *value = [bundle localizedStringForKey:key value:key table:nil];

bundleName:包名

作者

千行

发布于

2019-05-14

更新于

2022-10-21

许可协议

评论