iOS制作framework之静态库

制作步骤:

一、Edit—>Add Target—>Framework & Library—>Cocoa Touch Framework 创建静态Target子项目

二、Build Settings 配置:
1. Mach-O Type: Static Library
2. Build Active Architecture Only 设置为NO
3. 在创建的Framework目录下创建类

三、设置Headers
将你要公开的头文件拖至Public下,要隐藏的放在Private或者Project下,当然,隐藏的头文件就无法再被引用。

四、打包Framework有两种方式
1. 方式一:手动打包方式,通过终端命令,如下操作:

模拟器和真机合成通用一个静态库,终端命令:
lipo -create xxx.framework/xxx xxx.framework/xxx -output 导出路径/xxx
#其中xxx表示项目名称

2.然后将任何一个framework中的二进制文件替换成合并后的二进制文件,然后把framework添加到要使用的项目中即可使用.

演示例子:

lius-Mac-mini-2:~ liuping$ lipo -create /Users/liuping/Library/Developer/Xcode/DerivedData/DevHankFramework-geliklgglgerbkgrsiwagqxswdly/Build/Products/Release-iphoneos/DevHankFramework.framework/DevHankFramework /Users/liuping/Library/Developer/Xcode/DerivedData/DevHankFramework-geliklgglgerbkgrsiwagqxswdly/Build/Products/Release-iphonesimulator/DevHankFramework.framework/DevHankFramework -output /Users/liuping/Desktop/DevHankFramework

踩坑:在终端输入上述命令就能合成,切记是合成二进制文件而不是framework, 最后合成的二进制文件替代之前的二进制文件即可

2. 方式二:通过脚步自动合并Framework,自动打包脚本如下:
1)选中TARGETS下的工程,点击上方的Editor,选择Add Target创建一个Aggregate.
2)嵌入脚本。选中刚刚创建的Aggregate,然后选中右侧的Build Phases,点击左下方加号,选择New Run Script Phase
#自动合并模拟器与真机静态库脚本

#参考: [https://www.codercto.com/a/63661.html](https://www.codercto.com/a/63661.html)

FMK_NAME=${PROJECT_NAME}

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

then

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

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

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

fi

if [ -d "${INSTALL_DIR}" ]

then

rm -rf "${INSTALL_DIR}"

fi

mkdir -p "${INSTALL_DIR}"

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

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

#合并完成后打开对应的文件夹

open "${SRCROOT}/Products"
Framework二进制文件架构终端查看命令:
lipo -info xxx.framework/xxx

【参考】
iOS开发——创建你自己的Framework
iOS封装功能生成 .framework
iOS 静态库.framework的制作与使用

你可能感兴趣的:(iOS制作framework之静态库)