iOS架构-制作静态库.a和.framework 的相互依赖(10)

本文深入探讨了静态库.a和动态库.framework之间的相互依赖关系,在iOS开发中如何制作依赖.a的.framework静态库及依赖.framework的.a静态库。通过具体实例演示了编译、脚本和集成过程,揭示了不同情况下静态库的正确使用方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

有一句名言:当你知道的东西越多,你才会发现你不懂的东西越多。
现在我有点体会到了,当我去了解静态库,我发现我要学习脚本;当我接触编译C/C++库,我发现我要去了解交叉编译;当我想了解组件化架构,我发现我要去理解cocoapods管理;… 你所处的环境越大,你的视野也就越宽阔。

前面9篇文章介绍了 .a 静态库的制作、.framework 静态库的制作、.a 依赖第三方.a 静态库制作以及 .framework依赖.framework 库的制作。今天补齐最后一篇静态库的情况:依赖.a 的 .framework 静态库、依赖.framework 的 .a 静态库。

这篇讲的是混合,所以.a 和 .framework 都是前面测试的完成的代码

制作依赖.a 的 .framework 静态库
  1. 静态库.framework 工程MySDK
    在这里插入图片描述
  2. 把准备好的 VideoPlayerLib 拉到工程里(包含.h 和 .a)
    在这里插入图片描述
  3. 导入头文件使用
 [[VideoPlayerLib sharedInstance] openPlayerWindow];

在这里插入图片描述

  1. 编译脚本,终端执行 ./Script.sh
  2. 把MySDK.framework 导入demo工程中使用
    在这里插入图片描述打印出了 openPlayerWindow 这个是.a 库中的log。
    得出:编译出的MySDK.framework 已经把依赖的.a 库包含进来了,直接导入就能使用。
制作依赖.framework 的 .a 静态库
  1. 同样的静态库.a 工程VideoPlayerLib
  2. 把准备好的 MySDK.framework 拉到工程里
  3. 导入 #import <MySDK/MySDK.h>
  4. 引用 [ShowInfo show];
    在这里插入图片描述
  5. 编译脚本,终端执行 ./Script.sh
  6. 把VideoPlayerLib 导入demo工程中使用
    在这里插入图片描述编译发现报错:分析是MySDK.framework 的问题
    在这里插入图片描述解决办法:把依赖的MySDK.framework 库拉到demo 工程中编译成功
    在这里插入图片描述打印出了 ------ShowInfo-------- 这个是MySDK.framework 库中的log。
    得出:编译出的libVideoPlayerLib.a 没有 把依赖的MySDK.framework 库包含进来,不能直接导入使用。要把MySDK.framework一起导入才能使用。

总结:静态库.a和.framework 的相互依赖情况下的静态库的制作完成了。
后面会研究的课题范围:组件化、自动编译打包、cocoapod管理

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值