iOS架构之路09 -- .a与.framework静态库之间的
.a静态库依赖于.framework静态库
-
首先创建.framework静态库工程,命名为
image.pngFColorSDK
,工程配置不再赘叙,结构如下:
-
在真机,模拟器下分别编译,生成合并之后的FColorSDK文件,替换真机下的
FColorSDK.framework
中的FColorSDK文件; -
然后利用 iOS架构之路03 -- 静态库.a打包之包含资源文件 这篇文章所创建的.a静态库工程
image.pngMyCategory
,将上面的FColorSDK.framework
直接拖入.a静态库工程MyCategory
,然后利用脚本文件Script.h
生成打包文件夹MyCategory
;
-
最后创建Demo工程
AFProject
,将上面的打包文件夹MyCategory
,拖进来,然后在ViewController.m
中引入.a静态库MyCategory
,如下所示:
#import "ViewController.h"
#import "MyCategory.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
}
- (IBAction)click:(UIButton *)sender {
[self.navigationController pushViewController:[SFLib createVC] animated:YES];
}
@end
- 工程结构如下:
- 工程配置
Build Setting -> Enable bitcode
设置为NO; - 编译运行,出现如下报错:
-
找不到.framework静态库
image.pngFColorSDK
中的方法,说明.a静态库MyCategory
没有将FColorSDK
打包进入自己内部,需要我们在Demo工程AFProject
中手动导入,如下所示:
-
再次编译,运行成功,如下所示:
image.png
.framework静态库依赖于.a静态库
-
首先.a静态库还是利用 iOS架构之路03 -- 静态库.a打包之包含资源文件 这篇文章所创建的.a静态库工程
MyCategory
-
.framework静态库利用上面的
image.pngFColorSDK
,不过新创建了FColorLib
文件,然后将.a静态库工程MyCategory
的打包文件夹MyCategory
,拖入工程中,结构如下:
-
在
FColorLib.m
中引入.a静态库的函数方法; -
最后新建Demo工程
FAProject
,将 .framework静态库FColorSDK
打包文件夹FColorSDK
,直接拖入工程,文件夹FColorSDK
中包含.framework与资源Bundle; -
工程
FAProject
配置Build Setting -> Enable Bitcode
设置为NO; -
编译运行,如下:
- 注意⚠️:资源Bundle文件是独立的,与代码是分开的,Demo工程使用时,需要我们手动导入;