美文网首页
iOS SDK的封装(二)静态库.framework SDK文件

iOS SDK的封装(二)静态库.framework SDK文件

作者: lin哥哥 | 来源:发表于2019-11-30 11:41 被阅读0次

    前言

    这几年做的项目,基本都是封装成SDK供第三方使用,在这里做个记录,希望各位技术大牛多多指教,同时也希望可以给别人给予帮助和借鉴。
    感兴趣的可以看下面的文章
    iOS SDK的封装(一)静态库.a SDK文件的封装和使用

    1 .framework 的创建

    1.1 打开Xcode创建一个新的工程,选择工程如下:
    image.png
    1.2 创建工程完毕后,目录如下
    image.png
    1.3 配置参数
    1.3.1 TARGETS --> Build Settings --> Linking 配置参数。
    image.png
    1.3.2 接着配置 TARGETS --> Build Settings --> Build Active Architecture Only 设置为NO。
    image.png
    1.3.3 接着配置,增加armv7s:TARGETS --> Build Settings --> Architectures,在Architectures下增加armv7s,并选中。
    image.png
    1.4 创建一个工具类AtaticLibTool,添加一个方法用于测试;
    image.png
    1.5 设置Headers:将你要公开的头文件拖至Public下,要隐藏的放在Private或者Project下,当然,隐藏的头文件就无法再被引用;
    image.png
    1.6 需要在testFramework.h(必须是公开的,否则无法引用)中将你所有要公开的.h引入。
    image.png
    1.7 编译打包
    1.7.1 首先 Edit Scheme
    image.png
    1.7.2 设置Build Configuration ,选择Release。
    image.png
    1.7.3 添加编译打包版本
    1.7.3.1 选中TARGETS下的工程,点击菜单的Editor,选择Add Target创建一个Aggregate;
    image.png
    1.7.3.2 选择Cross-platform --> Other --> Aggregate,点击Next创建;
    image.png
    1.7.3.3 嵌入脚本,TARGETS --> MyFramework --> Build Phases --> + --> New Run Script Phase 。
    image.png
    1.7.3.4 编辑脚本。
    image.png
    脚本如下:
    # Sets the target folders and the finalframework product.
    # 如果工程名称和Framework的Target名称不一样的话,要自定义FMKNAME
    # 例如: FMK_NAME = "MyFramework"
    FMK_NAME=${PROJECT_NAME}
    # Install dir will be the final output tothe framework.
    # The following line create it in the rootfolder of the current project.
    INSTALL_DIR=${SRCROOT}/Products/$      {FMK_NAME}.framework
    # Working dir will be deleted after theframework creation.
    WRK_DIR=build
    DEVICE_DIR=${WRK_DIR}/Release-iphoneos/${FMK_NAME}.framework
    SIMULATOR_DIR=${WRK_DIR}/Release-iphonesimulator/${FMK_NAME}.framework
    # -configuration ${CONFIGURATION}
    # Clean and Building both architectures.
    xcodebuild -configuration"Release"-target"${FMK_NAME}"-sdk iphoneos clean build
    xcodebuild -configuration"Release"-target"${FMK_NAME}"-sdk iphonesimulator clean build
    # Cleaning the oldest.
    if[-d"${INSTALL_DIR}"]
    then
    rm -rf"${INSTALL_DIR}"
    fimkdir -p"${INSTALL_DIR}"
    cp -R"${DEVICE_DIR}/""${INSTALL_DIR}/"
    # Uses the Lipo Tool to merge both binaryfiles (i386 + armv6/armv7) into one      Universal final product.
    lipo -create"${DEVICE_DIR}/${FMK_NAME}""${SIMULATOR_DIR}/${FMK_NAME}"-output"$                      {INSTALL_DIR}/${FMK_NAME}"
    rm -r"${WRK_DIR}"
    open"${INSTALL_DIR}"
    
    1.8 编译。如图所示,command + B编译。这里Generic iOS Device的意思是“iOS通用设备”,大概就是说模拟器和真机都能用。
    image.png
    1.9 编译成功后,选择Products --> 右软件 --> Show in Finder ,那就是我们需要的framework文件。
    image.png image.png
    1.10 最后使用Framework,导入另一个项目中,我们打开这个framework看看,发现只有Headers,里面有两个.h,其中一个是我们之前添加的FrameworkDemo.h文件,另一个就是我们的AtaticLibTools.h 。
    image.png

    2 完成 .framework 的创建和打包、使用。

    3 后记

    本篇主要讲述了一种.framework SDK的生成和使用,感兴趣的给个赞或者关注~~~

    相关文章

      网友评论

          本文标题:iOS SDK的封装(二)静态库.framework SDK文件

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