有一句名言:当你知道的东西越多,你才会发现你不懂的东西越多。
现在我有点体会到了,当我去了解静态库,我发现我要学习脚本;当我接触编译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管理

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

  1. iOS架构-分离静态库.a文件并导出.m伪代码文件(11)

    之前合成了静态库.a, 有时候我们会拿到别人提供的静态库,但是编译报错,这时候最先要考虑的一步就是这个静态库是否支持我们编译的架构.怎么查看支持的架构?废话不多说!下面亲自实验一下 第一步: 准备一个 ...

  2. iOS架构-静态库.a 和.framework的区别(0)

    原文网址:https://my.oschina.net/kaqijiang/blog/649632 一.什么是库? 库是共享程序代码的方式. 库从本质上来说是一种可执行代码的二进制格式,可以被载入内存 ...

  3. iOS开发中静态库制作 之.a静态库制作及使用篇

    iOS开发中静态库之".a静态库"的制作及使用篇 一.库的简介 1.什么是库? 库是程序代码的集合,是共享程序代码的一种方式 2.库的类型? 根据源代码的公开情况,库可以分为2种类 ...

  4. 编译-POCO C++支持iOS平台的静态库

    一.POCO C++ library简介 POCO C++ library是一个C++编写的跨平台库,主要实现网络连接.数据库管理以及服务器,适用于跨平台.嵌入式. 二.为Xcode编译POCO C+ ...

  5. xcode6制作静态库详解

    开发IOS程序时我们使用的是Objective-c语言,Objective-c语言有.h .m 文件组成.静态库可以将 .m文件封装成一个.a文件,第三方应用程序只需要拿到这个.a文件和代码对应的.h ...

  6. 【转】iOS编译OpenSSL静态库(使用脚本自动编译)

    原文网址:https://www.jianshu.com/p/651513cab181 本篇文章为大家推荐两个脚本,用来iOS系统下编译OpenSSL通用库,如果想了解编译具体过程,请参看<iO ...

  7. OpenCV学习笔记(三十一)——让demo在他人电脑跑起来 OpenCV学习笔记(三十二)——制作静态库的demo,没有dll也能hold住 OpenCV学习笔记(三十三)——用haar特征训练自己

    OpenCV学习笔记(三十一)--让demo在他人电脑跑起来 这一节的内容感觉比较土鳖.这从来就是一个老生常谈的问题.学MFC的时候就知道这个事情了,那时候记得老师强调多次,如果写的demo想在人家那 ...

  8. [iOS] 引用外部静态库时,(类别)目录方法无法加载问题

    [iOS] 引用外部静态库时,目录方法无法加载问题 这个 bug 在 xcode 4.3 以下会出现,4.3 以后已经修正了. 解决方法为:找到 target 的图标,更改其 Other Linker ...

  9. VS2010,C++ 制作静态库(*.lib),并使用

    VS2010,C++ 制作静态库(*.lib),并使用 原文链接:https://blog.csdn.net/qq_41472037/article/details/100001322 简单来说,就是 ...

最新文章

  1. FPGA之道(80)静态时序分析(六)常用时序约束介绍(基于ISE的UCF文件语法)
  2. MATLAB和Python读取wave文件的波形对比
  3. Android 开发入门学习
  4. defunct 进程占用端口_Linux如何查询哪些端口被占用
  5. 计算机应用技术国外现状,浅析计算机应用技术的现状及发展趋势
  6. 【爬蟲】使用 httpclient进行POST请求
  7. 使用ASP.Net WebAPI构建REST服务(一)——简单的示例
  8. leftjoin多了性能下降_MySQL 性能优化总结
  9. 推荐几个程序员学习网站
  10. java对象结构 对象头 Markword
  11. 自动采集电影网站PHP源码
  12. 文件上传4-uploads靶场6-10
  13. 烂土豆搭配令牌窃取提权dll劫持搭配令牌窃取提权不带引号服务路径问题提权不安全的服务权限配置提权
  14. CF1016C Vasya And The Mushrooms
  15. 记工信部列入黑名单的域名释放后可以重新注册的jeeace.com使用记录
  16. 2022电大国家开放大学网上形考任务-金融企业会计非免费(非答案)
  17. Qt Android 调用系统文件管理
  18. 51Nod1123 X^A Mod B 数论 中国剩余定理 原根 BSGS
  19. STM32毕业设计题目大全 选题推荐
  20. java实现头像上传 前后端

热门文章

  1. 微信公众号监听返回按钮问题解决
  2. spring 整合websoket(整理)
  3. swift3 0 Alamofire下载文件
  4. iOS沙盒路径及路径下数据的存储和读取
  5. 无线可穿戴产品致胜设计六大策略
  6. [JavaScript]只需一行代码,轻松搞定快捷留言-V2升级版
  7. 前端学习 -- 超链接
  8. js之操作JSON数据
  9. Office Web Apps证书的申请步骤讲解
  10. 洛谷 P4475 巧克力王国 解题报告