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上即可。
- IOS小知识点7之IOS静态库打包、工作区关联多个工程、一个工程下关联多个Target、c代码打包
- ios一个工程的多个target
- IOS开发之Xcode下使用多target, 让同一份代码,一个工程 Project 管理多个app
- iOS 开发 Xcode 一个工程 Project 创建多个 target
- 一个工程的多个target
- 一个工程建立多个target
- iOS开发--一个工程中添加多个工程
- IOS工程自动打包
- 工程打包-另辟蹊径 iOS
- ios将工程打包成静态库过程
- iOS一个类可以关联多个nib文件
- IOS小知识点10之IOSFramework打包
- VC6.0 工程改名 和 多个工程合并到一个工作空间 小技巧
- VC6.0 工程改名 和 多个工程合并到一个工作空间 小技巧
- [IOS]在一个工程管理多个应用
- Cocos2d-x3.0 iOS 一键编译多个target并打包ipa。
- Cocos2d-x3.0 iOS 一键编译多个target并打包ipa
- iOS命令行自动化集成打包全记录(多个target,多种环境)
- ios 应用内购买 In-App Purchase
- 游戏资源
- Android(Lollipop/5.0) Material Design(二) 入门指南
- 解决Oracle in 超过1000个问题 C#拼接字符串
- Servlet理解
- IOS小知识点7之IOS静态库打包、工作区关联多个工程、一个工程下关联多个Target、c代码打包
- X86任务切换机制
- 还原TexturePacker plist 文件以及图片的方法 (切开各小图片)
- 提问的艺术[转]
- 多个二维数组如何取出它们的交集
- google hosts 2014.10.28 更新
- 最简单的视音频播放示例7:SDL2播放RGB/YUV
- Android adb.exe启动失败如何处理
- Android Volley完全解析(一),初识Volley的基本用法