iOS:SDK开发「静态库」
2018-02-13 本文已影响31人
MccReeee
image.png
1 使用
image.png
2 新建的类
3 依赖其他三方库的话,使用
image.png
4 静态库编译,选择模拟器编译时
image.png
本篇介绍如何制作一个简单的iOS静态库,其实写一个库和写一个iOS app程序本质上是一样的,可以认为把app中的大多数代码都去掉,留下最核心的就是库的代码。
1 使用xcode
创建工程时选择Cocoa Touch Static Library
image.png
- 工程创建后就能看到项目结构
image.png其实和普通的iOS工程一样, 不过TARGETS中是显示的一个静态库的图标
将自己静态库的代码加入到项目路径下
2 新建的类OtherClass.h
和OtherClass.m
默认是SDK内部的,但是如果在MccReeLib.h
中引入OtherClass.h
的话,因为MccReeLib.h
是暴露出去的,所以OtherClass
也要暴露出去.在target
中进行把OtherClass.h
加进去即可
- 用到图片资源等也可以一并放入,记得勾选
Add to targets
image.png
3 依赖其他三方库的话,使用Podfile
来管理,pod install
之后再打开可以看到引入的依赖库
image.png
4 静态库编译,选择模拟器编译时Products
中会生成编译后的.a
文件,右击Show in Finder
可以看到Debug-iphonesimulator
带simulator
字样的就是表示模拟器
image.png
-
编译真机使用的静态库时,选择
image.pngGeneric iOS Device
即可,同样右击打开可以看到Debug-iphoneos
就是真机可以使用的静态库
-
最后需要将模拟器编译出的静态库和真机编译出的静态库合并
合并命令格式
lipo -create 真机静态库 模拟器静态库 -output 指定合并后的文件
完整命令
lipo -create /Users/mccree/Library/Developer/Xcode/DerivedData/MccReeLib-ekyehwtlrjvgkcdxhctvuqmkzlxk/Build/Products/Debug-iphoneos/libMccReeLib.a /Users/mccree/Library/Developer/Xcode/DerivedData/MccReeLib-ekyehwtlrjvgkcdxhctvuqmkzlxk/Build/Products/Debug-iphonesimulator/libMccReeLib.a -output /user/Desktop/libMccReeLib.a
5 测试一下
新建一个测试工程,把.a
和头文件放进来,调用一下.h
里的方法,运行成功.
最后放上demo地址MQL9011/SDK_Fun