美文网首页
iOS framework生成

iOS framework生成

作者: 陈江红 | 来源:发表于2018-11-02 19:00 被阅读13次

    (1)创建一个文件夹名为SDK

    (2)创建一个.xcworkspace文件,放入文件夹SDK中

    创建.xcworkspace文件

    生成后,在文件夹的样子

    SDK文件夹中显示

    (3)在刚刚Xcode打开时,创建一个demo,名称XHTestDemo

    创建demo

    存放位置,存在刚刚创建xcworkspace的同一个文件夹SDK中

    存放demo

    (4)创建SDK,名为XHTestSDK,存放在SDK文件夹中,

    创建SDK

    (5)存放好之后,目录

    目录层级

    (6)在sdk中创建需要的内容,创建内容之后,在XHTestSDK/XHTestSDK.h中添加#import <XHTestSDK/XHView.h>

    创建sdk内容

    配置architecture,添加armv7s,添加,arm64。设置Build active Architecture Only 设置为NO,设置为NO是真机模拟器都能够编译

    配置Architecture

    设置Linking --Mach-O Type 设置Static Libirary,Link WithStandard Libraries设置为NO,Dead Code Stripping设置为NO

    借用别人的图

    (6)XHTestSDK,设置暴露文件,project中的XHView.h移到public

    添加公开文件

    (7)demo中,添加SDK。XHTestDemo target -General-Linked frameworks and Libiaries 添加XHTestSDK

    demo中添加SDK

    (8)添加target,创建一个名为createSDK的target,project--》XHTestSDK

    创建target

    创建之后target的样子

    target

    (9)给createSDK添加framework。选择createSDK,build phase-- Target Dependecies--添加XHTestSDK

    createSDK添加framework

    (10)在文件夹SDK中创建一个文件夹名为scripts

    创建scripts文件夹

    (11)在scripts中创建一个build-universal-framework.sh,这个文件的内容如下

    # Sets the target folders and the final framework product.

    # 如果工程名称和Framework的Target名称不一样的话,要自定义FMKNAME

    # 例如: FMK_NAME = "MyFramework"

    FMK_NAME=${PROJECT_NAME}

    # Install dir will be the final output to the framework.

    # The following line create it in the root folder of the current project.

    INSTALL_DIR=${SRCROOT}/Products/${FMK_NAME}.framework

    # Working dir will be deleted after the framework 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 clean build

    xcodebuild OTHER_CFLAGS="-fembed-bitcode"-configuration"Release"-target"${FMK_NAME}"-sdk iphoneos 

    xcodebuild -configuration"Release"-target"${FMK_NAME}"-sdk iphonesimulator

    # Cleaning the oldest.

    if [ -d "${INSTALL_DIR}" ] #xh 删除这个目录

    then

    rm -rf "${INSTALL_DIR}" #xh 删除目录及其内容

    fi

    mkdir -p "${INSTALL_DIR}" #xh 确保路径存在,不存在则创建一个

    cp -R "${DEVICE_DIR}/" "${INSTALL_DIR}/" #若参数一是源文件,则将参数一内容复制到参数二中

    # Uses the Lipo Tool to merge both binary files (i386 + armv6/armv7) into one Universal final product.

    # 使用lipo工具合并模拟器和真机,输出在ouput路径里

    lipo -create "${DEVICE_DIR}/${FMK_NAME}" "${SIMULATOR_DIR}/${FMK_NAME}" -output "${INSTALL_DIR}/${FMK_NAME}"

    #rm -r "${WRK_DIR}"

    # 打开文件

    open "${INSTALL_DIR}"

    build-universal-framework.sh内容展示

    (12)选中createSDK--》build Phase--》Runscript,Shell处写../scripts/build-universal-framework.sh

    添加script

    (13)target选择createSDK,commond + B,编译

    编译

    (14)这个framework就是我们需要的,show in FInder 就可以找到绝对地址

    找到绝对地址,选中framework,如下图

    选中framework

    把framework拖动到你需要的项目中即可,大功告成。

    参考了大神的文章,在此非常感谢。

    参考地址:https://www.cnblogs.com/oc-bowen/p/7478461.html

    相关文章

      网友评论

          本文标题:iOS framework生成

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