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

 建立静态库可能出于如下几个理由:html

1.你想将工具类代码或者第三方插件快捷的分享给其余人而无需拷贝大量文件。
2.你想让一些通用代码处于本身的掌控之下,以便于修复和升级。
3.你想将库共享给其余人,但不想让他们看到你的源代码
ios

 

Xcode6建立静态库详解(Cocoa Touch Static Library)xcode

 

一。建立静态库文件

打开Xcode, 选择File ----> New ---> Project。 新建工程。架构

选择iOS ----> Framework & Library ---> Cocoa Touch Static Library。app

点击Next。建立工程工具

 

 

 

工程目录:测试

 

在头文件StaticTest1.h中声明方法ui

#import <Foundation/Foundation.h>

@interface StaticTest1 : NSObject

-(void)testStaticLib;

@end

  

 

在StaticTest1.m中实现方法spa

#import "StaticTest1.h"

@implementation StaticTest1

-(void)testStaticLib
{
    NSLog(@"This is a static library test");
}

@end

  

二。建立通用静态库

经过xcode编译出的静态库.a文件由于支持的cpu架构不一样而分为iOS Device真机(armv7 arm64), iPhone5(i386),iPhone5s(x86_64)等版本,各个版本的.a文件不能混用,为了解决这个问题须要制做通用的静态库文件插件

 

依次使用iOS Device -> iPhone5 ->iPhone5s在Products目录下生成libStaticTest1.a文件(文件名从红色变为黑色既为编译成功),必须先编译iOS Device的.a文件,否则可能编译不经过

 

经过右键.a文件->show in finder 找到文件libStaticTest1.a,依次重命名libStaticTest1s.a,libStaticTest15.a,libStaticTest15s.a, 名字能够随意

 

使用mac下的终端命令行工具执行合并语句

lipo -create /Users/outeki/Desktop/libStaticTest1s.a /Users/outeki/Desktop/libStaticTest15s.a /Users/outeki/Desktop/libStaticTest15.a -output /Users/outeki/Desktop/test.a
文件路径能够随意放置,我将文件都放在了桌面上方便写合并语句,注意三个文件路径都用空格分开,/Users/outeki/Desktop/test.a既为生成的通用静态库文件

 

若是你不知道每一个.a文件支持的系统,能够经过lipo -info命令行来查看具体信息

lipo -info /Users/outeki/Desktop/libStaticTest1s.a

  

 若是须要将通用静态库分离成各个版本的静态库,能够参考文章 http://www.cnblogs.com/wengzilin/p/3800856.html

三。使用静态库

新建一个ios项目,并建立lib文件夹,将头文件StaticTest1.h和test.a文件加入项目

 

在ViewController.m中import头文件,便可使用头文件中定义的方法了

#import "ViewController.h"
#import "StaticTest1.h"

@interface ViewController ()

@end

@implementation ViewController
            
- (void)viewDidLoad {
    [super viewDidLoad];
    
    StaticTest1 *test = [[StaticTest1 alloc] init];
    [test testStaticLib];
    
}

@end

  

测试输出:

 

四.知识补充

到此静态库的介绍基本结束,若是你想自定义静态库的头文件,能够在静态库工程中新建一个新的.h头文件,用其替换掉copy file中配置的默认.h头文件

添加Public.h头文件

 

在public.h中引入能够公开的头文件

#import "StaticTest1.h"

  

在配置文件Build Phases ->Copy File中修改公共接口文件 (Xcode5之前是Copy Header)

 

Command+R执行工程便可获得对应的.h和.a文件

 

 

 

如何使用workspace管理静态库源码和原生app代码将在下一篇讨论

相关文章
相关标签/搜索