持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第3天,点击查看活动详情
前言
在加入打包好 framework 文件之后,由于资源文件(如 .bundle 文件,额外文件,.plist 等)的添加与库的添加性质不同,所以在添加库的时候,不会把库中的资源文件自动加入,所以需要则外进行添加。基于此,写出一个脚本,实现打包之后,生成一个新的文件夹,文件夹中包括 。framework 的资源与 .framework 文件
前期配置
UNLOCALIZED_RESOURCES_FOLDER_PATH 本地资源文件夹路径 增加 User-Defined 的设置,通过设置 UNLOCALIZED_RESOURCES_FOLDER_PATH 的值,可以在打包之后自动的将资源文件写入到该文件夹中。 详细步骤:
- 我这边设置的是
$(CONTENTS_FOLDER_PATH)/Resources
配置UNLOCALIZED_RESOURCES_FOLDER_PATH
- 如此,打包出来之后就会将资源写到 Resources 中
Resources
至此,前期准备已经做好
自动打包
该脚本所做的功能有两:1、编译库 2、将库中的资源文件夹做个替身出来 (如果愿意,可以编译debug和release两个版本并合并)
#!/bin/sh
#需要接受3个值:1、工程目录 2、target名称 3、库目录
#project目录
PROJECT_PATH=$1
#target名称
TARGET_NAME=$2
#库存放的目录
FRAMEWORK_PATH=$3
#库的名称
FRAMEWORK_NAME=$TARGET_NAME".framework"
#库的具体位置
OLD_FRAMEWORK_DEVICE_PATH=$FRAMEWORK_PATH"/"$FRAMEWORK_NAME
#编译后存放的位置
BUILD_PATH=./build/
BUILD_FRAMEWORK_PATH=$BUILD_PATH"Release-iphoneos/"$FRAMEWORK_NAME
#打包release版本的真机库
release_iphoneos(){
echo "现在开始编译iphone的设备版本";
xcodebuild -project $PROJECT_PATH -configuration Release -target $TARGET_NAME
echo "删除旧framework"
rm -r $OLD_FRAMEWORK_DEVICE_PATH
echo "拷贝新framework"
cp -r $BUILD_FRAMEWORK_PATH $OLD_FRAMEWORK_DEVICE_PATH
}
#创建文件夹
create_direction(){
EMBEDDED_DIR=$FRAMEWORK_PATH"/"$TARGET_NAME".embeddedframework"
echo "删除旧目录"
rm -r $EMBEDDED_DIR
echo "创建新目录"
mkdir $EMBEDDED_DIR
echo "拷贝库到目录中"
cp -r $BUILD_FRAMEWORK_PATH $EMBEDDED_DIR"/"
#制造替身
ln -s $EMBEDDED_DIR"/"$FRAMEWORK_NAME"/Resources" $EMBEDDED_DIR"/Resources"
}
release_iphoneos;
create_direction;