iOS开发之.a文件的制作
2015-11-22 22:42
302 查看
可以通过xcode6直接制作.a文件静态库
1.创建静态库项目
2.创建自己的类,并在类中写自己的方法和方法实现
定义:
实现:
创建好上面的类和定义了方法后,需要将类的头文件.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,则会报下面的错误
配置如下
输出结果:
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,则会报下面的错误
配置如下
输出结果:
相关文章推荐
- 【iOS】删除 main.storyboard 的问题
- 【iOS】通讯录分组方式展示数据
- iOS 百度定位实现
- iOS 事件传递流程
- iOS 获得汉字拼音首字母
- iOS AFNetworking
- iOS 保持界面流畅的技巧
- iOS的二维码扫描
- iOS ViewController之间传值方法四(利用Delegate)
- ios实现简单的键盘回收的方法
- iOS开发Post请求错误:Error Domain=NSCocoaErrorDomain Code=3840 "JSON text did not start with array or ...
- IOS中输入框被软键盘遮挡的解决办法
- iOS 7应用开发公开课笔记 L13:Core Data and Table View
- ios 通知机制
- iOS 7应用开发公开课笔记 L12:Documents and Core Data
- iOS 7应用开发公开课笔记 L11:Table View and iPad
- iOS 7应用开发公开课笔记 L10:Multithreading, Scroll View
- iOS 7应用开发公开课笔记 L9:Animation and Autolayout
- iOS 7应用开发公开课笔记 L8:Protocols, Blocks, and Animation
- iOS 7应用开发公开课笔记 L7:Views and Gestures