您的位置:首页 > 移动开发 > IOS开发

iOS开发之.a文件的制作

2015-11-22 22:42 302 查看
可以通过xcode6直接制作.a文件静态库

1.创建静态库项目



2.创建自己的类,并在类中写自己的方法和方法实现



定义:

#import <Foundation/Foundation.h>

@interface MyPrint : NSObject
+ (void) print;
@end


实现:

#import "MyPrint.h"

@implementation MyPrint

+ (void)print{
NSLog(@"我的输出");
}

@end


创建好上面的类和定义了方法后,需要将类的头文件.h暴露出去

3.暴露.h文件









4.设置编译目标为最低版本

设置为最低版本,则可以在iOS其他高版本中进行编译运行



5.选择模拟器目标或者真机

如果是使用模拟器编译的,则只能在模拟器中运行(且需要注意模拟器的版本,如果需要不同版本则需要编译多份.a文件在进行合并),如果是真机设备编译,则只能在真机中运行,如果需要既能在模拟器也能在真机中运行,则需要将模拟器.a和真机.a进行合并

编译后,获取.a文件

(1)获取模拟器的编译.a文件



(2)获取真机设备编译的.a文件



如果要真机和模拟器都能编译运行,则将上面两份的.a文件烤出,在执行下面的命令



libstatic_a_simulator.a是模拟器编译的.a文件,libstatic_a_iphone.a是真机设备编译的.a文件,libstatic_a_merge.a是合并后的文件,文件名随便取。如果想多个模拟器版本后ipad模拟器版本都能运行,同理可以将他们都进行合并。





6.把.a文件和暴露的.h文件导入到其他项目中

我们可以使用合并后的.a文件和暴露的.h文件导入到新项目中进行使用





如果出现以下错误,则表示.a编译的版本和新项目运行模拟器的版本的目标iOS不同,解决方法就是将所有可能的模拟器编译的.a文件进行合并,或者选择相对应的模拟器版本运行。



输出结果:



7.带有分类的.a文件

带有分类的.a文件生成方式和不带分类生成.a文件的方式一样,区别在于导入新项目时,使用分类中的功能时会遇到找不到分类中的方法的问题,需要在other linker flags中进行设置。





如果没有设置other linker flags,则会报下面的错误



配置如下



输出结果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: