创建静态库可能出于以下几个理由:

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

 

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

 

一。创建静态库文件

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

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

点击Next。创建工程

ios配置静态yum源_头文件

 

 

 

工程目录:

ios配置静态yum源_.a文件_02

 

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



#import <Foundation/Foundation.h>

@interface StaticTest1 : NSObject

-(void)testStaticLib;

@end



  

 

在StaticTest1.m中实现方法



#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配置静态yum源_静态库_03

 

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

ios配置静态yum源_ios配置静态yum源_04

 

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

ios配置静态yum源_静态库_05

 

使用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



  

 如果需要将通用静态库分离成各个版本的静态库,可以参考文章 

三。使用静态库

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

ios配置静态yum源_头文件_06

 

在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



  

测试输出:

ios配置静态yum源_.a文件_07

 

四.知识补充

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

添加Public.h头文件

ios配置静态yum源_ios配置静态yum源_08

 

在public.h中引入可以公开的头文件



#import "StaticTest1.h"



  

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

ios配置静态yum源_头文件_09

 

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

ios配置静态yum源_静态库_10

 

 

 

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