IOS小知识点7之IOS静态库打包、工作区关联多个工程、一个工程下关联多个Target、c代码打包

来源:互联网 发布:贵州中标数据网 编辑:程序博客网 时间:2024/05/20 13:12

动态库dylib 静态库a。

动态库体积更小,多个应用程序共享内存中的同一份库文件,节省资源。苹果暂时不能自己创建动态库。

(1)首先新建一个静态库的工程


(2)设置系统debug或者release模式



(3)设置是模拟器使用的.a文件还是真机使用的.a静态文件。


(4)查找.a文件

有的时候这个.a文件是红色的,这个不用关心,最重要的是在

Windown->Organizer->Projects


(5)使用的时候根据是模拟器还是真机。

添加相应的.a静态库文件以及include头文件。

(6)当然这里声称的.a文件是模拟器和真机分开的,还可以用下面文件中的命令声称一个通用的.a文件。

具体查看静态库合并文件

lipo –create     真机.a文件路径    模拟器.a文件路径    -output    输出.a文件路径。

例如这里使用的是libPrint.a文件,将这个新的.a文件添加进来,再加上真机或者是模拟器任意一个h头文件就可以正常的使用。

一个Project下关联多个Target:

新建一个工程,然后在工作目录创建一个新的工程,这个工程创建的是lib。利用这种方法Build Phase不能将点a文件添加进来,可以先在Build Phase下将点a文件添加到Link Binary With Libraries下,然后直降吧点a文件拖拽到Framework目录下。这里共享的h文件就是原来lib工程中的h文件添加进来的。

一个Workspace下关联多个Project:

首先在xcode下 点击file -new -workspace 创建一个新的工作区。然后在工作区内可以创建两个新的工程。

新创建的工程在下面。这个时候在app工程中点击build pahse就可以吧a文件添加进来了。如果点a文件是红色的,那么点击编译选中IOS device。然后就可以吧点a文件添加进来。同理h文件和上面的添加方式一样。

有一些要注意的地方:

在Target - IOS development target 选中IOS支持的最低版本

Editor - Add Build Phase - Add Copy Headers Build Phase 公开头文件。然后在Copy head中将头文件添加进来,并且放到public公开目录中。会在模拟器 上一级路径下生成两个文件,一个是模拟器使用的a文件,一个是真机使用的a文件,工程在运行中报错:

(1)app Target - build settings -link - other link flags 设置为-all_load

其它的资源文件添加参考:

http://blog.sina.com.cn/s/blog_b71d24920101kyl7.html


这里再补充一个C代码如何打包,在另一篇文章中介绍了sh脚本打包5种cpu架构的framework的方法,这里再说说c语言如何打包为我们经常使用的framework。

sh脚本中使用了Xcode target build等命令,因此我们想利用sh脚本打包必须要创建一个xcode工程。

所以对于C语言来说,第一步创建一个xcode工程。然后吧xcode工程中的所有文件全部清除,然后将我们需要打包的c语言代码添加进来,执行sh脚本即可。注意,如果我们想暴露一些我们需要开放的c语言接口,那么仅仅需要讲文件中的h文件放在Build Phase -》Copy Bundle Resources上即可。

0 0
原创粉丝点击