美文网首页
iOS | 小收获:封装framework

iOS | 小收获:封装framework

作者: 佳小豆 | 来源:发表于2018-11-02 17:26 被阅读178次

嗯,没错,小豆我学习了一下封装framework,为啥要学这个?当然是我自私,我狭隘,我自己写的代码不想让别人看到啊,怕大佬鄙视我啊,哈哈哈!开玩笑啦,是因为有多个项目用到同一批工具类的时候,几十个文件粘来粘去的实在是烦躁得很,而且改完这个项目的文件的工具类,别的项目对应的工具类也要改,我这么懒的人,实在是忍不了了!!!
废话不多说,开始撸!

创建项目

和平时创建项目有所不同,这次我们创建的项目不是Single View App,而是Cocoa Touch Framework,没错,就是它!然后给项目随便起一个名字哈


导入需要封装的代码

在你的项目文件夹下导入或者开始撸你需要封装的代码:


相关配置

  • Build Active Architecture Only 设置为NO,即当前打包的.framework支持所有的设备,否则打包时只能用当前版本的模拟器或真机运行


  • 设置Dead Code Stripping 为NO


  • Mach-O Type选中StaticLibrary,即静态库,Xcode默认是动态库


  • 设置framework最低支持的版本


  • 设置外部需要调用的头文件:将需要给外部呈现的文件从Project拖到Public中


  • File -> Project Setting -> Build System ->Legacy Build System
    至此,我们想要封装的framework的相关配置基本完毕。

Add Target:Aggregate

File ->New ->Target,随便起一个名字


添加脚本代码


在你刚才新建的target下,点击BuildPhases下面的“+”号,选择New Run Script Phase,把以下脚本复制过去

# 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 -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}"
fi
mkdir -p "${INSTALL_DIR}"
cp -R "${DEVICE_DIR}/" "${INSTALL_DIR}/"
# Uses the Lipo Tool to merge both binary files (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}"

最后在你刚才创建的Aggregate的Target下Command+B,然后你会发现在Project下会有一个.framework的文件。

验证

为了检测我们这个framework是否正确,我们再创建一个Target

  • 创建测试Target


  • 添加已经封装好的framework



    在需要的地方添加需要测试的功能代码,在测试Target下运行程序,验证framework是否成功封装,当然,你也可以通过在Build Phases下的Compile Sources添加未封装之前的.m代码文件后的运行结果与添加framework的运行结果进行对比验证。
    终于写完了,全是图,截图甚是乏累呢!

相关文章

网友评论

      本文标题:iOS | 小收获:封装framework

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