创建OC SDK 之 framework

2017-08-31  本文已影响0人  CodeLuck

最近经常会被问到如何创建一个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成功!

上一篇下一篇

猜你喜欢

热点阅读