XiaoKL

在iOS开发中如何高效使用静态库

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
 

posted on 2011-05-27 00:36  XiaoKL  阅读(984)  评论(0编辑  收藏  举报

导航