iOS 静态库

在iOS开发中,使用动态库是受Apple限制的,故多采用以源码形式或静态库的方式来实施。

如果使用自己开发的静态库,就会有一个问题,静态库的源码发生改变,那么我们就要新编译

一个静态库将老的库替换掉。

但是这样带来了诸多不便:

1. 开发人员之间协作不畅。

2. 拿不到最新的库文件。

3. 要根据模拟器和设备分别编译不同的静态库。

。。。。。。。

下面这个链接解决了这个问题 (Xcode 4.0以前需要采用这种cross project reference)

http://www.clintharris.net/2009/iphone-app-shared-libraries/

1. 编写static library

1.1 FOUNDATION_EXPORT

2. static library的使用和发布

2.1 以下是library代码和Application代码都可以获取到的情况

Xcode 4.0引入了workspace的概念,这和其它IDE中workspace的概念类似。
可以采用创建一个workspace,将lib-project和App-project添加到workspace中
这样来使用lib-project。例如
A) Library Managment With Xcode Workspaces 
http://cocoamanifest.net/articles/2011/06/library-management-with-xcode-workspaces.html
B) Xcode 4.5: Workspace, Project and Target Setup From Scratch
http://learnaholic.me/2012/11/28/xcode-4-dot-5-workspace-project-and-target-from-scratch/
C) Workspace - Better way of organizing your XCode projects
http://blog.harbinger-systems.com/2011/11/workspace-–-better-way-of-organizing-your-xcode-projects/

D) Using Static Libraries in iOS

https://developer.apple.com/library/ios/technotes/iOSStaticLibraries/Articles/creating.html

2.2 如果我们作为static library提供者, 如何发布static library?

构建一个static library, 然后将static library和header file发布给使用者. 

2.3 如何查看static library支持的architecture?

参见Ref[1]
$ lipo -info your-static-library.a
 

Reference

1. iOS.StaticLibrary.0

转载于:https://www.cnblogs.com/cwgk/archive/2011/05/27/2059408.html

在iOS开发中如何高效使用静态库相关推荐

  1. iOS开发中自带的图标库

    iOS 开发中苹果自带的图标库,uiimage可直接调用 @available(iOS 13.0, *) @objc public extension UIImage{ /// square.and. ...

  2. iOS开发中常用到的第三方库

    整理了学习iOS之后常用的第三方库,后续有其他的会继续更新 希望可以帮助到你 网络请求: AFNetworking Alamofire 博客提到过https://blog.csdn.net/weixi ...

  3. ios 开发中 动态库 与静态库的区别

    使用静态库的好处 1,模块化,分工合作 2,避免少量改动经常导致大量的重复编译连接 3,也可以重用,注意不是共享使用 动态库使用有如下好处: 1使用动态库,可以将最终可执行文件体积缩小 2使用动态库, ...

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

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

  5. iOS开发中解决第三方静态库符号冲突的终极方案

    iOS开发中解决第三方静态库符号冲突的终极方案 背景 在iOS开发的时候,经常会使用各种第三方静态库,这些库内部可能会打包了相同的第三方库.那么在链接的时候就会发生符号冲突. 例如:A厂商提供的lib ...

  6. iOS 开发中的多线程

    线程.进程 什么是线程.进程   有的人说进程就像是人的脑袋,线程就是脑袋上的头发~~.其实这么比方不算错,但是更简单的来说,用迅雷下载文件,迅雷这个程序就是一个进程,下载的文件就是一个线程,同时下载 ...

  7. iOS开发UI篇—简单介绍静态单元格的使用

    iOS开发UI篇-简单介绍静态单元格的使用 一.实现效果与说明 说明:观察上面的展示效果,可以发现整个界面是由一个tableview来展示的,上面的数据都是固定的,且几乎不会改变. 要完成上面的效果, ...

  8. 浅谈iOS 开发中的界面通信

    在任何的软件开发中都离不开界面与界面之间的通信,界面通信的最直接的方法就是界面传值. 在开发过程中我们在页面传值时我们通常使用的方法有:属性传值法,block传值法,代理传值法,以及单例传值法,通知传 ...

  9. IOS开发中常量的处理

    IOS开发中,文本解析,键值处理等都会用到常量项目中大部分的处理都是用的C的预处理#define来处理常量 ,比如:#define ELEMENT "element" #defin ...

  10. IOS开发中单例模式使用详解

    第一.基本概念 单例模式是一种常用的软件设计模式.在它的核心结构中只包含一个被称为单例类的特殊类.通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问. 第二.在IOS中使用单例模式的情 ...

最新文章

  1. joomla源代码探析(五) framework.php
  2. 视频数据:深度数据采集(Depth Data)
  3. 开发日记-20190501 关键词 汇编语言(启动) 基于x86处理器
  4. Linux编程下open()函数的用法
  5. ISCC2021 美人计
  6. java快速排序泛型,如何进行对C# .NET通用泛型进行快速排序?
  7. python调用c#注意事项_Python调用C#编写的DLL
  8. 安全地创建和存储密码
  9. IoT -- (一) 物联网平台架构设计分析
  10. 138个被撤出EI检索的会议
  11. HTTP性能测试工具wrk安装及使用
  12. html div重叠上方,html – 将父div上方的子div对齐到右边,不要重叠
  13. org.springframework.web.context.ContextLoaderListener 解决方案
  14. LINUX SHELL中大小写转换及注意事项
  15. c语言字体取模软件下载,非常好用的lcd汉字取模软件
  16. java 遍历json串_Java遍历Json数据
  17. thinkphp5.0接入芝麻信用分
  18. 100M和1000M网线做法
  19. 【扩展欧几里得】Codeforces Round #406 (Div. 2) A. The Monster
  20. js Cesium 返回范围的数据

热门文章

  1. 手机APP支付--整合银联支付控件
  2. 肖博高考数学二轮复习方法之立体几何解题策略-付题型解析
  3. ArcMap制作TPK文件
  4. java duration 设置值,Java中的Duration toHours()方法
  5. 计算机中的数学【集合论】现代数学的共同基础
  6. 人工智能能否在翻译中胜过人类?
  7. 硬件设计必备,电子元器件高清矢量图
  8. odi12配置mysql_Oracle数据库之Oracle ODI 12c之多表联合查询以及定时任务设置
  9. jquery 源码分析系列1
  10. Rockchip平台TP驱动详解