前言
这几年做的项目,基本都是封装成SDK供第三方使用,在这里做个记录,希望各位技术大牛多多指教,同时也希望可以给别人给予帮助和借鉴。
感兴趣的可以看下面的文章
iOS SDK的封装(一)静态库.a SDK文件的封装和使用
1 .framework 的创建
1.1 打开Xcode创建一个新的工程,选择工程如下:
1.2 创建工程完毕后,目录如下
1.3 配置参数
1.3.1 TARGETS --> Build Settings --> Linking 配置参数。
1.3.2 接着配置 TARGETS --> Build Settings --> Build Active Architecture Only 设置为NO。
1.3.3 接着配置,增加armv7s:TARGETS --> Build Settings --> Architectures,在Architectures下增加armv7s,并选中。
1.4 创建一个工具类AtaticLibTool,添加一个方法用于测试;
1.5 设置Headers:将你要公开的头文件拖至Public下,要隐藏的放在Private或者Project下,当然,隐藏的头文件就无法再被引用;
1.6 需要在testFramework.h(必须是公开的,否则无法引用)中将你所有要公开的.h引入。
1.7 编译打包
1.7.1 首先 Edit Scheme
1.7.2 设置Build Configuration ,选择Release。
1.7.3 添加编译打包版本
1.7.3.1 选中TARGETS下的工程,点击菜单的Editor,选择Add Target创建一个Aggregate;
1.7.3.2 选择Cross-platform --> Other --> Aggregate,点击Next创建;
1.7.3.3 嵌入脚本,TARGETS --> MyFramework --> Build Phases --> + --> New Run Script Phase 。
1.7.3.4 编辑脚本。
脚本如下:
# Sets the target folders and the finalframework product.
# 如果工程名称和Framework的Target名称不一样的话,要自定义FMKNAME
# 例如: FMK_NAME = "MyFramework"
FMK_NAME=${PROJECT_NAME}
# Install dir will be the final output tothe framework.
# The following line create it in the rootfolder of the current project.
INSTALL_DIR=${SRCROOT}/Products/$ {FMK_NAME}.framework
# Working dir will be deleted after theframework 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}"
fimkdir -p"${INSTALL_DIR}"
cp -R"${DEVICE_DIR}/""${INSTALL_DIR}/"
# Uses the Lipo Tool to merge both binaryfiles (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}"
1.8 编译。如图所示,command + B编译。这里Generic iOS Device的意思是“iOS通用设备”,大概就是说模拟器和真机都能用。
1.9 编译成功后,选择Products --> 右软件 --> Show in Finder ,那就是我们需要的framework文件。
1.10 最后使用Framework,导入另一个项目中,我们打开这个framework看看,发现只有Headers,里面有两个.h,其中一个是我们之前添加的FrameworkDemo.h文件,另一个就是我们的AtaticLibTools.h 。
2 完成 .framework 的创建和打包、使用。
3 后记
本篇主要讲述了一种.framework SDK的生成和使用,感兴趣的给个赞或者关注~~~