美文网首页
Xcode8 制作静态库

Xcode8 制作静态库

作者: 深山问 | 来源:发表于2017-04-20 12:18 被阅读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>
    

    相关文章

      网友评论

          本文标题:Xcode8 制作静态库

          本文链接:https://www.haomeiwen.com/subject/ikwkzttx.html