在Xcode中制作.a文件

<div="nbsp;库是程序代码的集合,是共享程序代码的一种方式. 根据源代码的公开情况,库可以分为 2 种类型.

开源库: 公开源代码,能看到具体实现

比如 SDWebImage 、 AFNetworking

闭源库: 不公开源代码,是经过编译后的二进制文件,看不到具体实现

主要分为:静态库、动态库

静态库和动态库

静态库和动态库的存在形式

静态库: .a 和 .framework

动态库: .dylib 和 .framework

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

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

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

需要注意的是:

项目中如果使用了自制的动态库,不能被上传到 AppStore

制作 .a

新建项目-> 选择 “Cocoa Touch Static Library”

添加库需要包含的源代码

将李明杰老师的刷新框架MJRefresh拖入工程

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

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

选择模拟器,依然 Command+B ,模拟器和真机环境下用的 .a 文件是分开的

右击 “Show In Finder” ,查看制作好的 .a 文件

  • Debug-iphoneos 文件夹里面的东西是用在真机上的
  • Debug-iphonesimulator 文件夹里面的东西是用在模拟器上的
  • 如果 Scheme 是 Release 模式,生成的文件夹就以 Release 开头

如果想让一个 .a 文件能同时用在真机和模拟器上,需要进行合并

在终端输入指令

lipo -create Debug-iphoneos/libMJRefresh.a Debug-iphonesimulator/libMJRefresh.a -output libMJRefresh.a

.a 文件的体积(一般情况下)

  • 真机用的 .a > 模拟器用的 .a
  • 所合成 .a == 真机用的 .a + 模拟器用的 .a

通过 lipo –info libMJRefresh.a 可以查看 .a 的类型(模拟器还是真机)

使用 .a

如何使用 .a

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

时间: 2024-10-11 09:27:59

在Xcode中制作.a文件的相关文章

xcode中加入声音文件前所做的步骤

1创建工程 2选中工程 然后选中中间图示的“build Phases”第五个按钮 放开带三个选项“ 并点击加号 选中AudioToolbox.framework,并add. 记得在要用声音的文件中加入头文件 #import<AudioToolbox/AudioToolbox.h>. xcode中加入声音文件前所做的步骤,布布扣,bubuko.com

如何读取Xcode中的infoplist文件

关于Xcode中的infoplist文件包含很多app的信息,比如app的项目名字,id及版本号等.比如我们在做版本新特性功能的时候,我们需要从中读取我们的版本号检测版本是否发生变化,如何读取infoplist中的版本号呢?代码如下: NSString * key = @"CFBundleVersion";(这是版本号对应的key值) NSString * version = [NSBundle mainBundle].infoDictionary.[key]; 其它具体的值可以将in

(转)Xcode 中设置部分文件ARC支持

ARC是什么 ARC是iOS 5推出的新功能,全称叫 ARC(Automatic Reference Counting).简单地说,就是代码中自动加入了retain/release,原先需要手动添加的用来处理内存管理的引用计数的代码可以自动地由编 译器完成了.该机制在 iOS 5/ Mac OS X 10.7 开始导入,利用 Xcode4.2 可以使用该机制.简单地理解ARC,就是通过指定的语法,让编译器(LLVM 3.0)在编译代码时,自动生成实例的引用计数管理部分代码.有一点,ARC并不是G

在Xcode中使用pch文件

Xcode后面的版本不建议在开发时使用pch文件,但如果仍然需要使用pch文件可以这样配置: 1.用快捷键  [CMD] + N 新建文件,选 iOS下的 other->PCH File 2.pch文件命名为 PrefixHeader.pch 3.创建好后就可以在项目中看到这样 4.之后在Build Settings 中找到Prefix Header 5.Prescompile Prefix Header 设为 YES,  在Prefix Header中添加pch文件路径 注意:路径建议使用  

Xcode中被删文件的找回,包括stroyBoard

1 到回收站中找到该文件,右键放回原位2 在xcode中 File> add File to "appName" , 选择刚刚恢复到目录下的Main.Storyboard即可恢复到xcode中注意 stroyBoard 是在你的app目录下的Base.lproj 目录中.

XCODE中的蓝色文件夹与黄色文件夹

黄色文件夹比较常见 - group , 在XCODE中以文件夹的形式存在,有层次感,但是实际文件在工程下是散乱的,没有层级结构.是XCODE中虚拟目录. 蓝色文件夹一般作为资源文件用 - folder,其他的文件不参与编译.

在Xcode中制作Framework

最近由于工作变动, 从此离开了我喜爱的移动互联事业群, 从此走上了游戏业务服务体系的不归路. Apps最近是和我无缘了, 唉... 到了这面需要从新开始学, 做SDK真无聊啊! 提到做SDK的开发就必须得会制作Framework了,如果你想将你开发的控件与别人分享,一种方法是直接提供源代码文件.然而,这种方法并不是很优雅.它会暴露所有的实现细节,而这些实现你可能并不想开源出来.此外,开发者也可能并不想看到你的所有代码,因为他们可能仅仅希望将你的这份漂亮代码的一部分植入自己的应用中. 另一种方法是

Xcode中Info.plist文件各个键的作用说明

Localiztion native development region --- CFBundleDevelopmentRegion 本地化相关,如果?户所在地没有相应的语言资源,则用这个key的value来作为默认 Bundle display name --- CFBundleDisplayName 设置程序安装后显示的名称.应?程序名称限制在10-12个字符,如果超出,将被显示缩写名称. Executaule dile -- CFBundleExecutable 程序安装包的名称 Bun

Xcode中Info.plist文件各个键的作用说明【搜藏】

Localiztion native development region --- CFBundleDevelopmentRegion 本地化相关,如果?户所在地没有相应的语言资源,则用这个key的value来作为默认 Bundle display name --- CFBundleDisplayName 设置程序安装后显示的名称.应?程序名称限制在10-12个字符,如果超出,将被显示缩写名称. Executaule dile -- CFBundleExecutable 程序安装包的名称 Bun