js css html

打framework包流程

2022-10-12  本文已影响0人  物非0人非

在动手操作打framework之前,我们先来了解一下一些基本的概念。

1:什么是类库?

源代码经过编译形成的二进制代码,别人项目中在使用我们的库的时候,库在参与编译的时候直接link就可以啦,按照link的方式可以把库分为静态库动态库

2:什么是静态库?

静态库在编译的时候会被直接拷贝一份,复制到目标程序中,这段代码在目标程序中就不会再改变了。一般以.a.framework为文件后缀名。这种做法是牺牲应用体量来节省编译时间。

3:什么是动态库?

静态库相反,动态库在编译时并不会被拷贝到目标程序中,目标程序中只会存储指向动态库的引用。等到程序运行时,动态库才会被真正加载进来。
动态库的优点是,不需要拷贝到目标程序中,不会影响目标程序的体积,而且同一份库可以被多个程序使用(因为这个原因,动态库也被称作共享库)。
同时,编译时才载入的特性,也可以让我们随时对库进行替换,而不需要重新编译代码。动态库带来的问题主要是,动态载入会带来一部分性能损失,使用动态库也会使得程序依赖于外部环境。如果环境缺少动态库或者库的版本不正确,就会导致程序无法运行
.tbd(之前叫.dylib).framework 为文件后缀名

苹果系统为我们提供了很多动态链接库,我们可以在我们项目工程中查看一下

4.什么是 Framework

Framework 是一种打包方式,将库的二进制文件,头文件和有关的资源文件打包到一起,方便管理和分发。
Framework只是一种打包方式,其本身和静态、动态无关!

framework制造步骤

第一步:创建工程
image.png image.png image.png image.png
image.png
image.png
第二步:添加自己的测试文件,添加到header里面
第一种:private(共有类型,可以对外暴漏)
第二种:public (共有类型,可以对外暴漏)
第三种:project (私有类型,不可以对外暴漏)
image.png
第三步:在项目自动生成的头文件中将自己要暴漏出去的文件写入该header文件中
image.png

第四步:选择你要做的是静态库还是`动态库

image.png
第四步:配置product文件,之前xocde会自动生成,现在不会了

Xcode 13 新建工程找不到product文件夹
解决办法:cd 到工程目录下

1. open  xxx.xcodeproj/project.pbxproj
2. 搜索 "productRefGroup"。如下类似 (注意细看mainGroup和productRefGroup的值是不一样的)
    mainGroup = 1A5B6EB72786888E0069399B;
    productRefGroup = 1A5B6EC22786888E0069399B /* Products */;  《---就是这个
3. 将上面 `mainGroup` 对应的值复制给 `productRefGroup`即可
4. command + S  保存
重启下就有了
上一篇 下一篇

猜你喜欢

热点阅读