美文网首页iOS ----- framework静态文件
iOS生成 .framework静态文件

iOS生成 .framework静态文件

作者: magicL1 | 来源:发表于2018-08-20 18:10 被阅读0次

一、什么是库?

库是共享程序代码的方式,一般分为静态库和动态库。

二、静态库和动态库的区别?

静态库:链接时完整地拷贝至可执行文件中,被多次使用就有多份冗余拷贝。

动态库:链接时不复制,程序运行时由系统动态加载到内存,供程序调用,系统只加载一次,多个程序共用,节省内存。

三、iOS静态库的种类?

.a和.framework

四、iOS动态库的种类?

.dylib和.framework

五、framework为什么既是静态库又是动态库?

系统的.framework是动态库,我们自己建立的.framework一般都选静态库,别问为啥,因为还不知道怎么动😝。

六、.a和.framework有何区别?

.a是一个纯二进制文件,.framework中除了有二进制文件之外还有资源文件。

.a文件不能直接使用,至少要有.h文件配合,.framework文件可以直接使用。

.a + .h + sourceFile = .framework。

所以建议用.framework.

七、为什么要使用静态库?

1. 方便共享代码,便于合理使用。

2. 实现iOS程序的模块化。可以把固定的业务模块化成静态库。

3. 和别人分享你的代码库,但不想让别人看到你代码的实现。

4. 开发第三方sdk的需要。

5. (脑洞)你接了一个私活,但是甲方迟迟没给你大洋,这个时候。。。。你懂得😝

步骤

1、打开Xcode,新建工程。Application->framework & Library

2、创建功能类。TestFunc.h

3、实现功能。TestFunc.m

a

4、更改参数

在Architectures下增加armv7s,并选中。将Build Active Architecture Only 设置为NO。

如果这里是这样的就不要重复添加了。


5、设置Headers,就是把你新建的文件拖到上面去。

然后需要需要下图这样引入,必须是公开的,否则无法引用。


打包Framework

1.选中模拟器,编译程序

2.选中测试机,编译程序

3.在finder中找到framework文件,一个是Debug-iphoneos(真机)下的,一个是Debug-iphonesimulator(模拟器)下的。

4.通过终端命令将两个framework合为一个模拟器和真机都可使用的framework。

打开控制台输入 lipo -create iphoneos下frameworkTest的路径 simulator下frameworkTest的路径 -output 新的路径,这样就完成了模拟器和真机版本的合并,新路径下的frameworkTest就是你合并后的文件,将这个文件名字改成和你未合并之前的Test一样的名字,放到framework文件夹下,替换掉原来的frameworkTest文件。

注意:合并完成后会出现一个如下图的.lipo格式的文件。不用管,直接改成你新建的MyTestFramework,去掉.lipo,然后按照上图放到原来的地方替换一下就O98K了!

最后,拷贝出来framework,就是我们最终制作完成的framework静态文件了。

相关文章

网友评论

    本文标题:iOS生成 .framework静态文件

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