打包 bundle 设置,使用

第一步:


image

第二步:


image

第三步:

"Base SDK" 设置为 "Latest iOS (iOS 11.2)" (Xcode 9.2为例)

"Build Active Architecture Only" 设置为 "YES"

Installation Directiotory 删除掉后面的路径

Code Signing Identity 选择 Don't Code Sign

"iOS Deployment Target" 设置为 iOS 8.0 (为了兼容性,最好选择最低版本)

"Skip Install" 设置为 "NO"

"Strip Debug Symbols During Copy" 中"Release"模式设置为 "YES"

"IOS Deployment Target" 设置为 "iOS 8.0"

"COMBINE_HIDPI_IMAGES" 设置为 "NO"

Enable Bitcode 设置NO

第四步:


image

第五步:
模拟器,真机 各运行一次


image

第六步:
show in finder 取出真机中的 bundle


image

使用:

NSString * bundlePath = [[ NSBundle mainBundle] pathForResource: @ "MyBundle"ofType :@ "bundle"];

NSBundle *resourceBundle = [NSBundle bundleWithPath:bundlePath];

UIViewController *vc = [[UIViewController alloc] initWithNibName:@"vc_name"bundle:resourceBundle];
图片获得bundle中的资源

UIImageView *imgView=[[UIImageView alloc] initWithFrame:CGRectMake(50, 50, 50,50)];

UIImage *image = [UIImage imageNamed:@"MyBundle.bundle/img_collect_success"];

[imgView setImage:image];
或者

UIImageView *imgView=[[UIImageView alloc] initWithFrame:CGRectMake(50, 50, 50,50)];

NSString *bundlePath = [[ NSBundle mainBundle] pathForResource:@"Test" ofType :@"bundle"];

NSBundle *bundle = [NSBundle bundleWithPath:bundlePath];

NSString *img_path = [bundle pathForResource:imageName ofType:@"png"];

UIImage *image_1=[UIImage imageWithContentsOfFile:img_path];

[imgView setImage:image_1];
当然,可以写成预编译语句:

define MYBUNDLE_NAME @ "MyBundle.bundle"

define MYBUNDLE_PATH [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent: MYBUNDLE_NAME]

define MYBUNDLE [NSBundle bundleWithPath: MYBUNDLE_PATH]

如果将自己打包的bundle给别人使用,别人在打包上传过程中可能会遇到错误提示如:

网上也有很多的解决办法,这里提供一种解决方法,就是删除bundle里的执行文件:找到工程中的Test.Bundle,右键单击后 选择 "显示包内容",找到里面黑色的可执行文件Test,删除掉,然后找到里面的info.plist文件 ,删除掉Executable file 字段,重新打包,上传应用商店就可以了。

你可能感兴趣的:(打包 bundle 设置,使用)