iOS framework制作、脚本合并

iOS framework制作、脚本合并,第1张

注意:在M1芯片的电脑上只会支持支持arm64、arm7,下面教程不合适,这时候我推荐使用xcframework,教程如下:

使用carthage 制作xcframework_m0_47450499的博客-CSDN博客使用carthage 制作xcframeworkhttps://blog.csdn.net/m0_47450499/article/details/123475342?spm=1001.2014.3001.5501

一、创建framework工程:

1.在桌面创建一个文件夹,取名MyFramework,这个文件夹我是用来统一存放framework、demo、workspace工程。

2.创建framework工程,存放位置在MyFramework文件中。取名:MySDK

设置支持的最小版本为10.0版本。注意:framework支持的最低版本号,要“小于”或者“等于”主项目工程支持的最低版本号。

二、创建demo测试工程:

1.创建demo测试工程,取名Demo,存放位置在MyFramework文件夹下。与framework工程是同级关系。

二、创建workspae管理framework、demo:

1.创建workspae管理工程,取名“MyFrameworkWorkSpace”。位置存放在MyFramework文件夹下,与其他工程同级关系。

 2.打开MyFrameworkWorkSpace工程,向该workspace添加上面创建的framework、demo两个工程。

四、配置framework工程参数:

1.设置iOS Deployment Target

iOS Deployment Target, 静态库需要支持的最低版本号要小于等于主项目的版本号

2.设置Mach-O Type

2.MySDK->Build Settings->Mach-O Type->Static Library

3.设置Build Active Architecture Only

Build Active Architecture Only 修改为NO, 否则生成的静态库就只支持当前设备的架构;

4.设置Excluded Architectures

设置Build Setting --> Excluded Architectures --> Debug --> 添加上 arm64

设置Build Setting --> Excluded Architectures --> Release --> 添加上 arm64

出现的原因是XCode12 编译的模拟器库新增支持架构arm64。

将模拟器的arm64给排除出去即可。

 5.设置可以暴露的头文件:

5.1、将暴露头文件,拖到public下

 5.2、将暴露的头文件import到MySDK.h.

五、脚本合并、生产合并后的framework:

1.合并脚本:

#!/bin/sh
 
BIN_DIR="bin"
if [ ! -d "$BIN_DIR" ]; then
mkdir -p "$BIN_DIR"
fi
 
BIN_DIR_TMP="bin_tmp"
if [ ! -d "$BIN_DIR_TMP" ]; then
mkdir -p "$BIN_DIR_TMP"
fi
 
 
 
cp -af ${BUILT_PRODUCTS_DIR}/${TARGET_NAME}.framework/ ${BIN_DIR_TMP}/${PLATFORM_NAME}-${TARGET_NAME}.framework
cp -af ${BUILT_PRODUCTS_DIR}/${TARGET_NAME}.framework/ ${BIN_DIR}/${TARGET_NAME}.framework
lipo -create $BIN_DIR_TMP/*-${TARGET_NAME}.framework/${TARGET_NAME} -output ${BIN_DIR}/${TARGET_NAME}.framework/${TARGET_NAME}

2.将上面的脚本放倒一个脚本文件中,取名:framework.sh

3.将framework.sh脚本文件放倒sdk工程目录,要与MySDK.xcodeproj同级的目录中。

4.在framework的工程中,添加脚本文件,如下:

5.选择真机command+b,build一次,再选择模拟器build一次,即可得到合并后的framework.(bin_tmp文件中包含的是模拟器或真机,bin是合并好的framework)

6.验证framework:

合并报错:have the same architectures (arm64) and can't be in the same fat output file;

参考:Xcode 12打包framework 报错:have the same architectures (arm64) and can't be in the same fat output file - 简书

iOS 合并SDK 报错 have the same architectures (arm64) and can't be in the same fat output file - 简书

以上就完成了framework的制作!!! 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/994426.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存