美文网首页
iOS架构之路09 -- .a与.framework静态库之间的

iOS架构之路09 -- .a与.framework静态库之间的

作者: YanZi_33 | 来源:发表于2021-09-16 11:55 被阅读0次

.a静态库依赖于.framework静态库

  • 首先创建.framework静态库工程,命名为FColorSDK,工程配置不再赘叙,结构如下:

    image.png
  • 在真机,模拟器下分别编译,生成合并之后的FColorSDK文件,替换真机下的FColorSDK.framework中的FColorSDK文件;

  • 然后利用 iOS架构之路03 -- 静态库.a打包之包含资源文件 这篇文章所创建的.a静态库工程MyCategory,将上面的FColorSDK.framework直接拖入.a静态库工程MyCategory,然后利用脚本文件Script.h生成打包文件夹MyCategory

    image.png
  • 最后创建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
  • 工程结构如下:
image.png
  • 工程配置Build Setting -> Enable bitcode 设置为NO;
  • 编译运行,出现如下报错:
Snip20210914_120.png
  • 找不到.framework静态库FColorSDK中的方法,说明.a静态库MyCategory没有将FColorSDK打包进入自己内部,需要我们在Demo工程AFProject中手动导入,如下所示:

    image.png
  • 再次编译,运行成功,如下所示:


    image.png

.framework静态库依赖于.a静态库

  • 首先.a静态库还是利用 iOS架构之路03 -- 静态库.a打包之包含资源文件 这篇文章所创建的.a静态库工程MyCategory

  • .framework静态库利用上面的FColorSDK,不过新创建了FColorLib文件,然后将.a静态库工程MyCategory的打包文件夹MyCategory,拖入工程中,结构如下:

    image.png
  • FColorLib.m中引入.a静态库的函数方法;

  • 最后新建Demo工程FAProject,将 .framework静态库FColorSDK打包文件夹FColorSDK,直接拖入工程,文件夹FColorSDK中包含.framework与资源Bundle;

  • 工程FAProject 配置 Build Setting -> Enable Bitcode 设置为NO;

  • 编译运行,如下:

image.png
  • 注意⚠️:资源Bundle文件是独立的,与代码是分开的,Demo工程使用时,需要我们手动导入;

相关文章

网友评论

      本文标题:iOS架构之路09 -- .a与.framework静态库之间的

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