ios 制作.a静态库

下面介绍一下具体生成步骤:

1、新建一个framework&library库。IOS 下的cocoa touch static library。然后输入product name 为JsonModel

2、把JsonMdel.h和JsonMdel.m删除。导入自己的文件

3、修改scheme,设为release版本。

4、 将有用的头文件显示出来

OK,选译ios device编译运行。成功后将在目录的build/products/release-iphoneos/下产生一个libJsonModel.a文件。

注,这里产生的是真机使用的.a文件。

选译iphonesimulator 进行编译一次,同样会在build/products/release-iphonesimulator/下产生一个libJsonModel.a文件。

这里是虚拟机使用的.a文件。

下面来看一下这两个文件有什么不同之处,使用lipo -info命令。

打开终端。

进入到相应的目录。

真机的:libJsonModel.a文件信息。

input file libJsonModel.a is not a fat file

Non-fat file: libJsonModel.a is architecture: armv7

如图:

模拟器的:libJsonModel.a文件信息。

input file libJsonModel.a is not a fat file

Non-fat file:  libJsonModel.a  is architecture: i386

如图:

如果使用真机和模拟器通用,则需要将这两个文件合并,使用命令lipo -create  xxxx/libJsonModel.a   xxxxx/libJsonModel.a  -output  JsonModel.a

同样可以使用lipo -info 来查看这个合并的JsonModel.a

可以看到architectures in the fat file: JsonModel.a are: i386  armv7

如图:

OK,打包完成。这个静态库比起framework是不是简单了许多呢。

如果你在静态库工程中使用了category,那么你可能会碰到链接问题,解决的办法就是需要同时在生成静态库的工程和使用静态库的工程中使用“-all_load”编译选项,即在对应target的"Build Settings"中的“Other Linker Flags”选项添加“-all_load”。注意:使用静态库的工程中是一定要加该编译选项的!!至于生成静态库的工程中加不加没有试过,不过建议还是加上该编译选项。

时间: 2024-10-30 14:03:26

ios 制作.a静态库的相关文章

iOS开发之静态库(五)—— 图片、界面xib等资源文件封装到静态框架framework

编译环境:Macbook Air + OS X 10.9.2 + XCode5.1 + iPhone5s(iOS7.0.3) 一.首先将资源文件打包成bundle 由于bundle是静态的,所以可以将“iOS开发之静态库(三)—— 图片.界面xib等资源文件封装到.a静态库”中生成的“MyToolsWithAssetsA.bundle”文件直接拿过来使用. 二.创建静态框架 创建过程参考“iOS开发之静态库(四)—— 静态框架framework制作”,里面介绍非常详细. 静态库代码借用“iOS开

关于iOS上的静态库

最近再进行项目的真机调试,然后发现了一个天坑.就此研究了一些iOS上的静态库的使用: 首先我们是直接拿一个可以运行的项目来制作静态库的,网上大部分都是先创建静态库然后再写内容,看看我的方法. 1.把子项目导入到总项目工程里面,然后删除子项目的运行文件,然后再里面创建一个静态库!!!(不要创建framework那个,非常坑.我给坑了好久具体下面在说吧)创建一个.a的静态库.名字没有什么影响自己喜欢就可以,我一般是按照原来的名字来的. 2.然后在总项目工程里面添加链接  Build Phases -

xcode 4 制作通用静态库

参考:http://blog.csdn.net/pjk1129/article/details/7255163 最近在做Apple的IOS开发,有开发静态库的需求,本身IOS的开发,只允许静态库或者Framework. 我这个文档的静态库的开发是基于Xcode4.2和iOS SDK5.0编写的.Xcode4跟之前的Xcode3还是有不少的差别的.下面就简单写一个静态库和一个调用静态库的例子.静态库的编写:1.静态库工程的建立: Xcode New一个新的project,选择IOS下面的Frame

iOS:Xcode7创建静态库

Xcode7 中创建静态库 一.简单介绍 1.什么是库? 库是程序代码的集合,是共享程序代码的一种方式 2.库的分类 根据源代码的公开情况,库可以分为2种类型 (1)开源库 公开源代码,能看到具体实现 比如SDWebImage.AFNetworking (2)闭源库 不公开源代码,是经过编译后的二进制文件,看不到具体实现 主要分为:静态库.动态库 二.静态库和动态库 1.静态库和动态库的存在形式 静态库:.a 和 .framework 动态库:.dylib 和 .framework 2.静态库和

李洪强iOS开发之静态库

iOS开发拓展篇—静态库 一.简单介绍 1.什么是库? 库是程序代码的集合,是共享程序代码的一种方式 2.库的分类 根据源代码的公开情况,库可以分为2种类型 (1)开源库 公开源代码,能看到具体实现 比如SDWebImage.AFNetworking (2)闭源库 不公开源代码,是经过编译后的二进制文件,看不到具体实现 主要分为:静态库.动态库 二.静态库和动态库 1.静态库和动态库的存在形式 静态库:.a 和 .framework 动态库:.dylib 和 .framework 2.静态库和动

如何制作.a静态库?合成多架构静态库?

08_01静态库 08_02制作静态库 .a 1.新建项目com+shift+n:选择Framework&Library. 2.下一步. 项目名不能为中文. 3.编写代码之后.用真机运行.会自动生成一个静态库 4.products文件夹中的.a静态库文件,从红色变成黑色.  Show in Finder 该文件夹中会生成一个.a文件 5.在include文件夹里只有主文件的.h文件. 新建的HMTool.h 需要手动添加. 1>可以直接手动拷贝 2>如图,先在xcode中添加 在运行一

【iOS】编译静态库

与java和.net一样,objc也由类库的概念,不过在在objc上一般叫库,库表示程序代码集合,可以共享给其他程序使用,库是编译后的二进制文件,因此不能看到源代码,多用于一些开放sdk(如百度地图sdk),商用库,这两天在研究iOS上编译静态库,这里把编译的过程和中间遇到的一些问题做一下记录,方便以后查阅 objc上的库一般分为两类 静态库: .a 和 .framework .a文件:纯二进制文件,需要配合.h文件一起使用,通过.h文件引用库里面的内容 .framework文件:包含二进制文件

iOS 中的静态库与动态库,区别、制作和使用

如果我们有些功能要给别人用,但是又不想公开代码实现,比如高德地图.第三方登录分享等等,这时候我们就要打包成库了.库分静态库和动态库两种: 静态库:以.a 和 .framework为文件后缀名.动态库:以.tbd(之前叫.dylib) 和 .framework 为文件后缀名. 静态库与动态库的区别 静态库:链接时会被完整的复制到可执行文件中,被多次使用就有多份拷贝.动态库:链接时不复制,程序运行时由系统动态加载到内存,系统只加载一次,多个程序共用(如系统的UIKit.framework等),节省内

ios中静态库的创建和使用、制作通用静态库(Cocoa Touch Static Library)

创建静态库可能出于以下几个理由: 1.你想将工具类代码或者第三方插件快捷的分享给其他人而无需拷贝大量文件.2.你想让一些通用代码处于自己的掌控之下,以便于修复和升级.3.你想将库共享给其他人,但不想让他们看到你的源代码. Xcode6创建静态库详解(Cocoa Touch Static Library) 一.创建静态库文件 打开Xcode, 选择File ----> New ---> Project. 新建工程. 选择iOS ----> Framework & Library -