iOS 如何把数据内容资源打包成bundle绑定文件包。
1.创建基本的bundle绑定模版:
2.点击创建好的bundle模版,属性设置
2.1Base SDK设置iOS/Supported Platforms ios
Build Active Architecture Only设置为 “YES”
2.2Installation Directory删除掉后面的路径
2.3Code Signing Identity 选择 Don’t Code Sign
2.4iOS Deployment Target设置为 iOS 8.0 (为了兼容性,最好选择最低版本)
2.5 Skip Install 设置为 “NO”
2.6 Strip Debug Symbols During Copy 中"Release"模式设置为 “YES”
2.7 COMBINE_HIDPI_IMAGES 设置为 “NO”
- 正式导入图片资源(1.直接把图片资源拖项目中(系统自动导入Copy Bundle Resources里),2.如下图加进去)
4.选择创建的bundle绑定包目标对象,选择模拟器下进行编译生成适用于模拟器的静态bundle绑定包/选择真机下进行编译生成适用于真机的静态bundle绑定包。
5.show in finder找到相应的bundle绑定包,上架APP应使用真机模式bundle。
6.静态bundle绑定包直接拖入目标项目工程内使用,要使用bundle中的资源,就需要找到相应的资源路径
- (void)bundleResource {
//数据捕获
//一
//对应可执行程序主项目工程的目标WLLYHJ.app应用程序编译包主入口路径(eg:/Users/haijunyan/Library/Developer/CoreSimulator/Devices/C43C9AE4-08DE-40AA-BA3F-F134F5C3BE93/data/Containers/Bundle/Application/1625BBA5-9988-454E-BCA8-5EA86988617B/WLLYHJ.app)
NSString *mainPath = [[NSBundle mainBundle] resourcePath];
//拼接路径元获取Bundle绑定包入口路径
NSString *bundlePath = [mainPath stringByAppendingPathComponent:@"TestBundle.bundle"];
//拼接路径元获取Bundle绑定包内部的特定内容资源所在的特定路径
NSString *imgPath = [bundlePath stringByAppendingPathComponent:@"payoff_type_selected"];
UIImage *img = [UIImage imageWithContentsOfFile:imgPath];
//二
UIImage *img1 = [UIImage imageNamed:@"TestBundle.bundle/start_ride_code"];
//三
NSString *bundlePathDest = [[ NSBundle mainBundle] pathForResource:@"TestBundle" ofType:@"bundle"];
NSString *imgPathDest = [bundlePathDest stringByAppendingPathComponent:@"adKeyPopupsImg"];
UIImage *img2=[UIImage imageWithContentsOfFile:imgPathDest];
//渲染
UIImageView *imgView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 40, 100, 50)];
imgView.image = img;
[self.view addSubview:imgView];
UIImageView *imgView1 = [[UIImageView alloc] initWithFrame:CGRectMake(0, 100, 100, 50)];
imgView1.image = img1;
[self.view addSubview:imgView1];
UIImageView *imgView2 = [[UIImageView alloc] initWithFrame:CGRectMake(0, 160, 100, 50)];
imgView2.image = img2;
[self.view addSubview:imgView2];
}
备注:打包的bundle给别人使用,别人在打包完上传过程中可能会遇到极大的坑。
因为是和SDK一起让别的公司共用的,没想到每个App打包上传都失败了,主要有以下几种提示:
删除bundle里的执行文件字段:找到工程中的TestBundle.bundle,右键单击后 选择 “显示包内容”,找到里面的info.plist文件 ,删除掉Executable file 字段,重新打包,上传应用商店就可以了。