2022年2月23日亲自测有用
iOS framework-SDK开发用Cocoapods管理第三方库
一.创建工程
1.选择Cocoa Touch Framework
image2.更改Xcode配置
image注:Dead Code Stripping:舍弃无用代码
Link With Standard Library:用标准库连接
Mach-O Type:类型选择静态库
3.将Build Active Architecture Only 设置为NO(代表根据Arch 和Valid Arch来设定, 一般Debug模式下为yes,Release模式下为No):
注:Build Active Archiitecture Only指是否只对当前连接设备所支持的指令集编译,在debug模式下为了编译更快选择yes,而release模式下设为No,支持所选的所有架构
4.创建Podfile文件
image引入第三方库,然后执行pod install
image5.打开pod生成的.xcworkspace文件,创建类
image4.设置Headers
将需要公开的头文件拖置Public
image二.创建demo联调
1.通过workspace文件打开步骤一的SDK项目
2.新建一个target,类型选择Single View App
3.编辑Podfile,如下所示,联调需要分别设置SDK与Demo的的target,导出包给别人用好像不需要设置SDK的target,只用设置项目的target:
image4.执行pod install
5.Other Linker Flages 处添加:-ObjC 。 Enable Bitcode 设置为NO,不然三方framework无法使用。
6.选中demo的target,在Target Dependencies中将SDK和bundle的target加进来,并且在Link Binary With Libraries中添加SDK的framework, 在Copy Bundle Resource中添加bundle。这样的话,SDK有改动,demo引用的是最新版本。
注意:直接把自己的BRCBTwoAccountPaySDK.framework往demo里拖,别勾选copy也可以。
将图中替换内容后的标红框的framework拉出来保存,此为制作完成的Framework
四.脚本编译出SDK供其它项目使用
1.在SDK项目中创建一个新target,类型选择Aggregate
image2.选中新创建的target,在Build Phrases下添加一个Run Script,内容参考如下:
#通过脚本合并真机和模拟器SDK包
TARGET_NAME=${PROJECT_NAME}
OUTPUT_DIR=${SRCROOT}/Products/${TARGET_NAME}.framework
DEVICE_DIR=${BUILD_ROOT}/${CONFIGURATION}-iphoneos/${TARGET_NAME}.framework
SIMULATOR_DIR=${BUILD_ROOT}/${CONFIGURATION}-iphonesimulator/${TARGET_NAME}.framework
if [ -d "${OUTPUT_DIR}" ]
then
rm -rf "${OUTPUT_DIR}"
fi
mkdir -p "${OUTPUT_DIR}"
cp -R "${DEVICE_DIR}/" "${OUTPUT_DIR}/"
lipo -create "${DEVICE_DIR}/${TARGET_NAME}" "${SIMULATOR_DIR}/${TARGET_NAME}" -output "${OUTPUT_DIR}/${TARGET_NAME}"
open "${SRCROOT}/Products"
3.编译Aggregate 类型的target,会自动打开SDK所需framework所在的文件夹。
注:步骤二和步骤一示例名称有所不同,不用纠结,只为示例!
制作完成!!!
网友评论