美文网首页
创建OC SDK 之 framework

创建OC SDK 之 framework

作者: CodeLuck | 来源:发表于2017-08-31 21:09 被阅读0次

    最近经常会被问到如何创建一个SDK,这里把步骤记录下来。

    1.首先  创建工程

    2.工程创建好之后,就是配置一些东西了,这对SDK的通用性很重要

    Build Setting -> Dead Code Stripping 改为NO

    Build Setting -> Mach-O Type改为 Static Library

    Build Setting -> Build Active Architecture Only 改为 NO

    Build Setting -> Architectures 添加armv7s架构

    Build Setting -> Other C flags  添加-fembed-bitcode    (使SDK支持bitcode)

    Build Phases -> Headers 将公开的头文件从Project中拖入Public

    3.暴露出想要被引用的头文件

    需要暴露的头文件都拖到public下面,不需要的都放在private或者project下面

    4.好了,现在运行工程,就能得到framework了

    点击show  in finder 之后,得到两个版本,一个模拟器用到的,一个真机用到的.但是一般我们都会把这两个整合成一个framework,

    5.合并真机和模拟器framework,可以用一段脚本代码来实现,还是上图说话:

    首先点击+号,添加一个Run Script,在输入框里粘贴一段代码:如下(脚本代码是从这来的,感谢大神)

    if [ "${ACTION}" = "build" ]

    then

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

    DEVICE_DIR=${BUILD_ROOT}/${CONFIGURATION}-iphoneos/${PROJECT_NAME}.framework

    SIMULATOR_DIR=${BUILD_ROOT}/${CONFIGURATION}-iphonesimulator/${PROJECT_NAME}.framework

    if [ -d "${INSTALL_DIR}" ]

    then

    rm -rf "${INSTALL_DIR}"

    fi

    mkdir -p "${INSTALL_DIR}"

    cp -R "${DEVICE_DIR}/" "${INSTALL_DIR}/"

    #ditto "${DEVICE_DIR}/Headers" "${INSTALL_DIR}/Headers"

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

    #open "${DEVICE_DIR}"

    #open "${SRCROOT}/Products"

    fi

    6.然后重现运行 framework,,分别在下面三种条件下运行一遍

    (模拟器可以任选一中模拟器跑一遍)

    7.然后  ,单击Products,选择 show in finder  ,在products目录下,得到的就是合并后的framework,在真机模拟器上或者打包都可以用.

    8,可以验证一下,打开终端:输入: lipo -info    然后把生成的framework下的二进制文件拖入终端,获得路径,回车,得到我们想要的信息:

    得到的framework支持的架构如下:

    说明合并framework成功!

    相关文章

      网友评论

          本文标题:创建OC SDK 之 framework

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