美文网首页
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