IOS 封装静态库(.a文件)

IOS中导入外部文件,一种是将源码导入,一种是导入静态库,有很多第三方库都是以静态库的形式提供给我们使用的,如何制作一个静态库呢?

一、xCode创建文件时,选择创建静态库文件:cacoaTouchStaticLibrary

创建完成后,我们在里面写我们的方法和实现:

.h文件和.m文件

?


1

2

3

4

#import <Foundation/Foundation.h>

@interface MyStaticLibrary : NSObject

-(void)myLog;

@end

?


1

2

3

4

5

6

#import "MyStaticLibrary.h"

@implementation MyStaticLibrary

-(void)myLog{

    NSLog(@"myLog");

}

@end

二、生成静态库文件:
这里需要将设备选成IOS Device

然后 使用command+B进行编译,如果xcode报出这样的一个错误:

我们需要在Peoject->Code Signing ->Code Signing Identity 改成IOS Developer

再次编译,成功。然后你会看到,Products中的.a文件由红色编程了黑色。我们右键show in finder,就可以看到编译成功的静态库文件了。

三、合并静态库

在文件夹中,我们看到有两个.a文件,分别用在模拟器调试和真机调试中,如果我们在开发时需要真机模拟器不停的切换,我们可以将这两个静态库文件合并成为一个:

在终端使用:lipo -create  -output 命令:

这时,我们的静态库文件就做好了。

三、静态库文件的使用:

将.a和.h文件导入工程,在需要的文件中导入头文件,即可使用。

时间: 2024-09-19 09:18:54

IOS 封装静态库(.a文件)的相关文章

教程-xcode6 封装静态库不能设置暴漏头文件是怎么回事?

问题描述 xcode6 封装静态库不能设置暴漏头文件是怎么回事? 我是按照http://blog.csdn.net/dengbin9009/article/details/34109893这个教程走的,但是 在第三大步的第六小步上不能设置暴漏的头文件是怎么回事?

IOS 打包静态库详细介绍_IOS

IOS 打包静态库详细介绍 一.前言 前段时间看的一本书上说:"隔着一段距离看,很多有趣的知识看起来都很唬人."比如说这篇我要总结的"静态库知识",在我初出茅庐的时候着实觉得那些后缀名为".frameworke".".a".".dylib"的文件很神秘,很高冷.那时我虽然知道只要导入一个库就能引用库里面很多封装好的东西,但对这个"库"究竟是什么"鬼",一直都是云里雾里

静态库(.a)文件怎么拆分成(.o)文件?

问题描述 静态库(.a)文件怎么拆分成(.o)文件? 如题,本人在移植静态库文件是时出现重复定义,想把其拆开,删去重复的部分,谢谢各位大侠! 解决方案 用编辑器打开,然后删除重复的部分

求大神帮忙-ios制作静态库以后使用编译的时候出现问题

问题描述 ios制作静态库以后使用编译的时候出现问题 解决方案 查看一下出错的文件格式是不是utf8

iOS制作framework静态库图文教程_IOS

本文实例为大家分享了iOS制作framework静态库教程 ,供大家参考,具体内容如下 环境: 硬件:macbook air 系统:OSX EI Capitan 版本:10.11.3 xcode :Version 7.2.1 (7C1002) 最近在做ios的静态库(据说framework动态库不能上传到app store).a 和framework都做过了,这里就先说framework的制作流程: 1.首先在xcode下新建cocoa touch framework工程: 2.新建好工程后,往

iOS创建与使用静态库_IOS

在日常项目开发中,不论是为了两个公司项目上的业务交流还是为了减少项目的编译时间,有的时候我们会把项目中的私密内容打包成静态库,或者是把项目中变动较少一部分打包成静态库以便提高编译效率,那么下面我们就来学习一下"iOS-静态库的创建与使用": (一)iOS静态库.动态库与Framework静态库与动态库的区别 (1)什么是库? 库(Library)直白一点说就是一段编译好的二进制代码,加上头文件就可以供别人使用;(例如: iOS中Objective-C编译下的.h和.m文件,打包静态库后

iOS学习之库

一.什么是库 库是程序代码的集合,是共享程序代码的一种方式.   二.库的分类 根据源代码的公开情况,库可以分为2种类型. 1.开源库 公开源代码,能看到具体实现. 比如,SDWebImage.AFNetworking   2.闭源库 不公开源代码,是经过编译后的二进制文件,看不见具体实现.   三.静态库和动态库 1.动态库和静态库的存在形式 静态库:.a和.framework 动态库:.dylib和.framework   2.使用区别 静态库:链接时,静态库会被完整地复制到可执行文件中,被

gcc中动态库和静态库的链接顺序

so文件:动态库a文件: 静态库exe文件:可执行程序(linux下以文件属性来标示是否是可执行文件,与后缀名无关) 经过自己写的一些测试程序,大致了解了下gcc中链接顺序问题,总结出以下几点:1,动态库中可以包含另一个静态库,通过参数 -lxxx 把静态库libxxx.a加入so文件中,这样so文件中   就包含了libxxx.a的所有实现.当然,如果不包含libxxx.a也没有问题,这样生成的so会小一点.   如果不包含libxxx.a,最终使用这个so的可执行文件,在其生成时必须加入 -

Linux系统中“动态库”和“静态库”那点事儿【转】

转自:http://blog.chinaunix.net/uid-23069658-id-3142046.html 今天我们主要来说说Linux系统下基于动态库(.so)和静态(.a)的程序那些猫腻.在这之前,我们需要了解一下源代码到可执行程序之间到底发生了什么神奇而美妙的事情.       在Linux操作系统中,普遍使用ELF格式作为可执行程序或者程序生成过程中的中间格式.ELF(Executable and Linking Format,可执行连接格式)是UNIX系统实验室(USL)作为应