ios开发静态库生成

首先简单说下哈: 库就是程序代码的集合,是共享代码的一种方式

分为开源库(sd,mi,afn)和闭源库(看不到具体实现的)

闭源库分为静态库和动态库

静态库: .a 和 .framework

动态库: .dylib 和 .framework

静态库和动态库在使用上的区别

静态库:链接时,静态库会被完整地复制到可执行文件中, 被多次使用就有多份冗余拷贝

动态库:链接时不复制,程序运行时由系统动态加载到内存,供程序调用,系统只加载一次,多个程序共用,节省内存

注意啦: 使用自己制作的动态库无法上传appstore

接下来讲讲制作.a的方法

第一步: 新建一个工程选择如下:

之后下一步啦新建工程。

打开工程后干掉声称的.h 和.m文件如下

第二部:把需要封装的类拖到工程中来

然后选择需要暴露出来的 .h 文件, .m 文件会自动编译到 .a 文件中

选择真机设备,然后 Command+B 编译, libMJRefresh.a 文件从红色变为黑色

就成功了, show in finder  就是需要的库啦。

这里需要注意的是: 选择 真机运行的出来的是  真机运行需要的.a文件, 只能运行在真机上, 跑模拟器就会报错。

因为手机的cpu架构和电脑的不同造成的。。

解决方法:

合并真机command +B出来的.a  和模拟器command +B出来的.a

合并静态库让模拟器和真机都能用的招

lipo -create /Users/gti/Desktop/Debug-iphoneos/libJTK.a /Users/gti/Desktop/Debug-iphonesimulator/libJTK.a -output /Users/gti/Desktop/libJTK.a

lipo -create :固定的命令

/Users/gti/Desktop/Debug-iphoneos/libJTK.a   真机跑出来的.a文件的位置   这位置选中.a 文件直接拖到终端就ok

/Users/gti/Desktop/Debug-iphonesimulator/libJTK.a   模拟器跑出来的.a文件的位置

output  固定命令行

/Users/gti/Desktop/libJTK.a   合并ok 的最终文件的位置以及名字

使用 .a

如何使用 .a

直接将 .a 、 .h 、资源文件拖拽到其他项目中即可

时间: 2024-07-28 18:01:20

ios开发静态库生成的相关文章

ios开发 静态库制作

IOS程序是由Objective-c语言构成,而是Objective-c语言中每一个类又分成 .h .m 文件.静态库可以将这些程序的类封装成一个.a文件,第三方应用程序只需要拿到这个.a文件和代码对应的.h文件即可使用静态库中封装的方法.总的来说IOS静态库适合去制作第三方提供的SDK,废话不多说了我们直接进正题. 制作静态库 代码如下 1 #import <Foundation/Foundation.h> 2 3 @interface BookModelLib : NSObject 4 {

Linux静态库生成指南

Linux静态库生成指南 Linux上的静态库,其实是目标文件的归档文件.在Linux上创建静态库的步骤如下: 写源文件,通过 gcc -c xxx.c 生成目标文件. 用 ar 归档目标文件,生成静态库. 配合静态库,写一个使用静态库中函数的头文件. 使用静态库时,在源码中包含对应的头文件,链接时记得链接自己的库. 下面通过实例具体讲解. 写源文件,生成目标文件. 第一个源文件 my_print.c #include <stdio.h> void cout(const char * mess

iOS开发的库的列表,不完全是开源库

这个也是从他人的总结中COPY过来,加以整理的 iOS苹果官方Demo合集1.网页地址 2.官方地址 优质iOS UI/UE库:1.gitHub地址 [资源集合]94个iOS开发资源推荐 iOS开发的库的列表 项目管理和工具 测试:TestFlight 依赖管理:CocoaPods 自动生成推送证书:GeneratePushCerts AppStore统计:App Annie 单元测试:GHUnitIOS.OCMock 错误分析:Crashlytics 动态更新APP:JSPatch,WaxPa

iOS 创建静态库文件时去掉其中的Symbols

在工程中创建静态库文件时,默认会将一些Symbols加到静态库文件中,这样做有两个缺点: 1.如果引用静态库文件的工程中发生了bug,就会直接跳转到静态库的源码. 2.静态库文件的大小会因此翻几番.本人最近做的这个静态库文件中,去掉symbols前大小为7.8MB左右,去掉以后大小为2.8MB. 要去掉Symbols,首先打开Build Settings并选中静态库的Target,然后设置下列选项: 如果有错误或遗漏,欢迎批评指正. iOS 创建静态库文件时去掉其中的Symbols,布布扣,bu

Linux下静态库生成和使用

Linux下静态库生成和使用 一.静态库概念 1.库是预编译的目标文件(object  files)的集合,它们可以被链接进程序.静态库以后缀为”.a”的特殊的存档(archive file)存储. 2.标准系统库可在目录/usr/lib与/lib中找到.比如,在类Unix系统中C语言的数序库一般存储为文件/usr/lib/libm.a.该库中函数的原型声明在头文件/usr/include/math.h中. 3.C标准库本身存储为/usr/lib/libc.a,它包含ANS1/ISO标准指定的函

iOS中静态库-.a文件生成和使用

最近在使用使用一个网上的Demo的时候. 出现另一令人烦恼的问题 . 就是它里面有嵌套的工程. 如下图所示. 工程里面还嵌套有一个工程. 真的是让人煞费苦心 …其实这个问题看起来并不是很难, 如果是一般的工程的话, 解决方法有两种: 我可把嵌套工程里面的文件拖拽出来. 修改一些属性什么的应该可以使用了 还有一种方法就是我把嵌套里面的工程整个生成一个静态库文件.把我需要使用的文件的.h暴露出来使用.但是这个工程比较奇葩. 他里面是c++de一些文件. 如果直接拖拽的话会有各种引用文件错误的问题.

【转】IOS制作静态库

原文参见:http://blog.csdn.net/pjk1129/article/details/7255163 本身IOS的开发,只允许静态库或者Framework.在Xcode上没有找到允许编译,如同Android上的*.so和Win32上的dll这样的说法.不过Framework这样的框架,估计也是类似动态库的实现,不过没有具体研究过,后续继续深入研究. 我这个文档的静态库的开发是基于Xcode4.2和iOS SDK5.0编写的.Xcode4跟之前的Xcode3还是有不少的差别的. 下面

iOS 开发第三方库全集

拉刷新 EGOTableViewPullRefresh – 最早的下拉刷新控件. SVPullToRefresh – 下拉刷新控件. MJRefresh – 仅需一行代码就可以为UITableView或者CollectionView加上下拉刷新或者上拉刷新功能.可以自定义上下拉刷新的文字说明.具体使用看"使用方法". (国人写) XHRefreshControl – XHRefreshControl 是一款高扩展性.低耦合度的下拉刷新.上提加载更多的组件.(国人写) CBStoreHo

iOS 打包静态库.a文件(真机版 + 虚拟机)

我们以打包IOS开发中封装的高地地图基础功能包 GDMap为例. 1>我们需要准备好需要打包的GDMap 2>接下来我们开始新建一个工程文件取名GDMap 3>删掉无用自动生成的.h 和.m 文件,把准备好的GDMap拖入工程中,注意文件放在一级目录下. 4>接下来我们选择出来需要暴露出来的头文件.h 我选择暴露出所有的头文件如下图 5>接下来我们配置下工程文件,修改 Product->Scheme-> Edit Scheme下 为 Release 6>配置