美文网首页
iOS 创建静态库Framework(包含图片,xib,故事板)

iOS 创建静态库Framework(包含图片,xib,故事板)

作者: 諾城 | 来源:发表于2017-09-19 14:32 被阅读0次

1.打开Xcode,点击File\New\Project,选择iOS\Framework and Library\Cocoa Touch Static Library新建一个静态库工程.

2.导入你的项目(包括项目里面所有的功能类和资源文件)

1》对于图片,建议不要把存放图片的Assets.xcassets文件直接挪过来,这样后期把资源文件打包后,不方便读取读取到图片;

2》我在这里把xib,故事板,和图片都放在了一个文件夹下面,是为了大家看的方便,开发者也可以不这么做

3、把你项目里面需要被开发者引用的类暴露出来(例如:我需要从外面引用到MyProjectController这个控制器,就把.h文件从  project路径下面移动到public路径下)

4.在你的fraework的头文件里面,引入你需要被外部引用的功能类的头文件(这个项目里面MySdk.h就是我的静态库的头文件)

5、修改一些配置信息

2》bundle文件创建完成,接下来就是导入你的项目里面所有的资源文件

7.修改bundle文件的一些参数配置

8 接下来就是打包Framework和bundle文件的时候了(分别对framework和bundle在模拟器,真机环境下编译一遍);

9.接下来就是就是提取到我们需要的.framework静态库和bundle文件了

1》关于合成真机和模拟器编译后的.framework文件网上很多例子了,我就不赘述了

2》关于bundle文件,我们选取真机编译后的bundle文件

10  把这个真机编译环境下的bundle文件导出来 ,和我们合成的.framework文件放在一个文件夹下面,导入到其他工程中,就可以正常使用了,但是对于上面提到的资源文件(图片,故事版,xib)的访问路径,我们要略作修改 ,不然sdk内部的功能类读取不到图片和xib文件等,会crash;

1.故事版

NSURL *bundleURL = [[NSBundle mainBundle] URLForResource:@"CLAppreciationSDKBundle"

withExtension:@"bundle"];

NSBundle *bundle = [NSBundle bundleWithURL:bundleURL];

UIStoryboard * board = [[UIStoryboard storyboardWithName:storyBoard bundle:bundle]

2.xib

NSURL *bundleURL = [[NSBundle mainBundle] URLForResource:@"CLAppreciationSDKBundle"

withExtension:@"bundle"];

NSBundle *bundle = [NSBundle bundleWithURL:bundleURL];

[tableView registerNib:@"CLpastCostsAddressCell"] bundle:bundle];

3.image

NSURL *bundleURL = [[NSBundle mainBundle] URLForResource:@"CLAppreciationSDKBundle"

withExtension:@"bundle"];

NSBundle *bundle = [NSBundle bundleWithURL:bundleURL];

UIImage *image = [UIImage imageNamed:@"bundle/imageName"];

这就是我打包SDK的过程,欢迎指正,也希望对一些朋友有一点帮助。

相关文章

网友评论

      本文标题:iOS 创建静态库Framework(包含图片,xib,故事板)

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