首页 > 学院 > 开发设计 > 正文

Xcode5创建自己的静态库详解

2019-11-14 20:23:06
字体:
来源:转载
供稿:网友

首先声明: 本人屌丝一枚,如有不对不妥之处,请大牛指正!

1.静态库工程的建立:

Xcode New一个新的PRoject,选择IOS下面的Framework&Library,下面有一个Cocoa Touch Static Library。直接next去建立一个名为:MaxLib 的工程。

 

2.工程建立

添加简单的两个方法"- (void)max:(int)a :(int )b;"和"+ (void)print;"做示例 ;在*.m文件中的实现这两个方法 。这样编译出来的libMaxLib.a 就可以被其他的IOS小伙伴进行调用了。

 

方法的简单实现:

#import "MaxLib.h" 

 

@implementation MaxLib

 

- (void)max:(int)a :(int)b

 

{

 

    a > b ?(NSLog(@"Max is %d",a)) :(NSLog(@"Max is %d",b));

 

}

 

 + (void)print

 

{

 

    NSLog(@"Hello");

@end

 

 

3.注意要编译两次

一次是选择真机编译;一次模拟器编译;注意设置版本如下所示;编译之后libMaxLib.a会变成黑色;

 

4.查看.a文件

libMaxLib.a 上右键show in finder 可以看到该文件;

 

 

返回上级目录可以看到右边目录下是模拟器用的 libMaxLib.a文件

 

5,将真机和模拟器用的两个.a 合并成为一个通用的.a文件 

  在终端输入命令 : lipo -create /..... *.a /...../*.a -output /Users/..../*.a ;注意自己文件所在的路径

( 注意 可以使用命令 :lipo -info /..... *a 查看.a 所支持的架构 e.g. :

hezhujindeMacBook-Pro:~ hezhujin$ lipo -info /Users/hezhujin/Desktop/libMaxLib.a 

Architectures in the fat file: /Users/hezhujin/Desktop/libMaxLib.a are: i386 armv7 armv7s arm64 )

 

6.最后我们来就可以简单使用自己创建的静态库了

新建工程,导入我们静态库工程的MaxLib.h 文件,然后在这个工程的Build Phases的Link Binary With Library里添加合并的 libMaxLib.a 文件;

 

简单代码示例 

#import "HZJViewController.h"

#import "MaxLib.h"

@interface HZJViewController ()

 

@end

 

@implementation HZJViewController

 

- (void)viewDidLoad

{

    [super viewDidLoad];

    int a = 'A' ;

    int b = 100 ;

    [MaxLib print];

    MaxLib * maxlib = [[MaxLib alloc]init];

    [maxlib  max:a :b ];

    

// Do any additional setup after loading the view, typically from a nib.

}

 运行结果:

2014-06-22 21:26:37.136 TestView[2572:60b] Hello

2014-06-22 21:26:37.137 TestView[2572:60b] Max is 100

 

 

补充:要支持arm64 ,选择64位模拟器编译得到.a 在和之前的合并的.a 合并成新的.a 这样在64 位模拟器就可以运行了!!

 


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表