美文网首页
封装静态库framework

封装静态库framework

作者: huohuitong | 来源:发表于2020-08-10 15:06 被阅读0次

1. 创建framework工程  

2. 设置属性  

TAGETS -> Build Settings -> Base SDK 设置为iOS;

TAGETS -> Build Settings -> Build Active Architecture Only 设置为NO;

 TAGETS ->Grneral->deployment Info 设置为  device和支持版本;

 TAGETS -> Build Settings -> Dead Code Stripping 设置为  NO;

 TAGETS -> Build Settings -> Link With Standard Libraries  设置为 NO;

 TAGETS -> Build Settings -> Mach-O Type 设置为 Static Library;

3.添加文件到工程中

如需公开文件则在TAGETS -> Build Phases ->Headers中从Progect一道Public中,

并在XXDemo.h中引入文件即可

    #import <XXDemo/XXDemoConfig.h>

4. 封装Bundle资源库  

command+shift+N创建新工程,选中macOS,选中Bundle创建bundle工程  

创建bundle 修改为iOS SDK 修改支持最低版本

TAGETS -> Build Settings -> COMBINE_HIDPI_IMAGES 设置为NO;

设置

添加资源文件到bundle工程中并build;

结果

最终showInFinder .bundle文件获取到资源文件,添加到framework中

5. 自动打包  

 Editor -> Add Target -> Cross Platform->Package创建自动打包package

打包1 创建脚本

添加脚本  

    TARGET_NAME=${PROJECT_NAME}

if[[ $1]]

then

TARGET_NAME=$1

fi

UNIVERSAL_OUTPUT_FOLDER="${SRCROOT}/Products/"

#创建输出目录,并删除之前的framework文件

mkdir -p"${UNIVERSAL_OUTPUT_FOLDER}"

rm -rf"${UNIVERSAL_OUTPUT_FOLDER}/${TARGET_NAME}.framework"

#分别编译模拟器和真机的Framework

xcodebuild -target"${TARGET_NAME}"ONLY_ACTIVE_ARCH=NO -configuration ${CONFIGURATION} -sdk iphoneos BUILD_DIR="${BUILD_DIR}"BUILD_ROOT="${BUILD_ROOT}"clean build

xcodebuild -target"${TARGET_NAME}"ONLY_ACTIVE_ARCH=NO -configuration ${CONFIGURATION} -sdk iphonesimulator BUILD_DIR="${BUILD_DIR}"BUILD_ROOT="${BUILD_ROOT}"clean build

#拷贝framework到univer目录

cp -R"${BUILD_DIR}/${CONFIGURATION}-iphonesimulator/${TARGET_NAME}.framework""${UNIVERSAL_OUTPUT_FOLDER}"

#合并framework,输出最终的framework到build目录

lipo -create -output"${UNIVERSAL_OUTPUT_FOLDER}/${TARGET_NAME}.framework/${TARGET_NAME}""${BUILD_DIR}/${CONFIGURATION}-iphonesimulator/${TARGET_NAME}.framework/${TARGET_NAME}""${BUILD_DIR}/${CONFIGURATION}-iphoneos/${TARGET_NAME}.framework/${TARGET_NAME}"

#删除编译之后生成的无关的配置文件

dir_path="${UNIVERSAL_OUTPUT_FOLDER}/${TARGET_NAME}.framework/"

forfileinls $dir_path

do

if[[ ${file} =~".xcconfig"]]

then

rm -f"${dir_path}/${file}"

fi

done

#判断build文件夹是否存在,存在则删除

if[ -d"${SRCROOT}/build"]

then

rm -rf"${SRCROOT}/build"

fi

rm -rf"${BUILD_DIR}/${CONFIGURATION}-iphonesimulator""${BUILD_DIR}/${CONFIGURATION}-iphoneos"

#打开合并后的文件夹

open"${UNIVERSAL_OUTPUT_FOLDER}"

最后选择package build打包成功

相关文章

网友评论

      本文标题:封装静态库framework

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