iOS:SDK开发「静态库」

iOS:SDK开发「静态库」_第1张图片
image.png

本篇介绍如何制作一个简单的iOS静态库,其实写一个库和写一个iOS app程序本质上是一样的,可以认为把app中的大多数代码都去掉,留下最核心的就是库的代码。

1 使用xcode创建工程时选择Cocoa Touch Static Library
iOS:SDK开发「静态库」_第2张图片
image.png
  • 工程创建后就能看到项目结构

其实和普通的iOS工程一样, 不过TARGETS中是显示的一个静态库的图标
将自己静态库的代码加入到项目路径下

iOS:SDK开发「静态库」_第3张图片
image.png
2 新建的类OtherClass.hOtherClass.m默认是SDK内部的,但是如果在MccReeLib.h中引入OtherClass.h的话,因为MccReeLib.h是暴露出去的,所以OtherClass也要暴露出去.在target中进行把OtherClass.h加进去即可
  • 用到图片资源等也可以一并放入,记得勾选Add to targets
    iOS:SDK开发「静态库」_第4张图片
    image.png
3 依赖其他三方库的话,使用Podfile来管理,pod install之后再打开可以看到引入的依赖库
iOS:SDK开发「静态库」_第5张图片
image.png
4 静态库编译,选择模拟器编译时Products中会生成编译后的.a文件,右击Show in Finder可以看到Debug-iphonesimulatorsimulator字样的就是表示模拟器
iOS:SDK开发「静态库」_第6张图片
image.png
  • 编译真机使用的静态库时,选择Generic iOS Device即可,同样右击打开可以看到Debug-iphoneos就是真机可以使用的静态库

    iOS:SDK开发「静态库」_第7张图片
    image.png

  • 最后需要将模拟器编译出的静态库和真机编译出的静态库合并

合并命令格式

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里的方法,运行成功.

iOS:SDK开发「静态库」_第8张图片
image.png


最后放上demo地址MQL9011/SDK_Fun

你可能感兴趣的:(iOS:SDK开发「静态库」)