Xcode8 制作静态库

2017-04-20  本文已影响59人  深山问

关于iOS的静态库,动态库,这篇文章很清楚 iOS 静态库,动态库与 Framework

这里主要讲一下怎么制作自己的静态库

制作静态库framework

(1) 创建framework,命名为SDSDK(本文中以SDSDK举例)
(2) 添加自己的文件
(3) 设置
  1. 设置Target version为你需要的版本,如8.0
  2. 设置Build Configuration 为Release


    屏幕快照 2017-04-20 上午11.56.51.png
  3. 设置静态库


    屏幕快照 2017-04-20 上午11.57.12.png
  4. Architectures添加armv7s,支持5和5C


    屏幕快照 2017-04-20 上午11.59.51.png
  5. 公开文件添加到Public Header中


    屏幕快照 2017-04-20 下午12.02.04.png
(4) 编译
  1. 选择真机,cmd+B 编译程序
  2. 选择模拟器,cmd+B 编译程序,结束后可以看到Products中的framework由红色变为不是红色
  3. 选中Procuts->SDSDK.framework,show in finder, 可以看到如下的结构


    屏幕快照 2017-04-20 下午12.06.23.png
  4. 合并两个framwrok为一个framework,注意合并的内容为下面红色标注的内容


    屏幕快照 2017-04-20 下午12.06.47.png

    打开终端,命令格式为

lipo -create "真机版本路径" "模拟器版本路径" -o "合并后的文件路径"

我直接cd到Products目录下,然后采用下面命令合并,最后的SDSDK为合并后的名称

lipo -create /Users/shendong/Library/Developer/Xcode/DerivedData/SDSDK-hiwmnkyzofjycdggievjxqjzsrxu/Build/Products/Release-iphoneos/SDSDK.framework/SDSDK /Users/shendong/Library/Developer/Xcode/DerivedData/SDSDK-hiwmnkyzofjycdggievjxqjzsrxu/Build/Products/Release-iphonesimulator/SDSDK.framework/SDSDK -o SDSDK
  1. 合并后的SDSDK替换到真机或模拟器文件里的SDK, 最终获得的framwork即我们要的framework
屏幕快照 2017-04-20 下午12.12.22.png
  1. 将最终的framework拖到你的项目中,即可使用
#import <SDSDK/SDSDK.h>

常见问题

(1) xcode8 framework missing submodule xxx 警告

创建framework时,如SDSDK.framework, 会自动生成SDSDK.h文件。如果我们添加一些自己的类, 并对外提供公开.h文件,则需要在SDSDK.h文件中添加子文件的声明文件。如下

#import <UIKit/UIKit.h>

//! Project version number for SDSDK.
FOUNDATION_EXPORT double SDSDKVersionNumber;

//! Project version string for SDSDK.
FOUNDATION_EXPORT const unsigned char SDSDKVersionString[];

// In this header, you should import all the public headers of your framework using statements like #import <SDSDK/PublicHeader.h>

#import <SDSDK/SDServie.h>
#import <SDSDK/SDServie+Cookie.h>

使用时,直接引用即可

#import <SDSDK/SDSDK.h>
上一篇下一篇

猜你喜欢

热点阅读