[英]Encrypting Cocoa Resources with Custom Build Shell Script
我正在使用以下脚本( 源 )对我的Cocoa应用程序中的一些资源进行加密:
DIRNAME=EncryptedResources
ENC_KEY="abcdefghijklmnopqrstuvwxyz123456"
INDIR=$PROJECT_DIR/$DIRNAME
OUTDIR=$TARGET_BUILD_DIR/$CONTENTS_FOLDER_PATH/$DIRNAME
if [ ! -d "$OUTDIR" ]; then
mkdir -p "$OUTDIR"
fi
for file in "$INDIR"/*
do
echo "Encrypting $file"
"$PROJECT_DIR/crypt" -e -k $ENC_KEY -i "$file" -o "$OUTDIR/`basename "$file"`"
done
但是,该脚本无法处理EncryptedResources目录中的子目录。 我有几个嵌套的子目录,因此修改外壳程序脚本以处理子目录并正确输出这些内容的最简单方法是什么。
您需要使用find
命令而不是for
循环。
find $INDIR -exec "$PROJECT_DIR/crypt"
-e -k $ENC_KEY -i {} -o "$OUTDIR/`basename {}`" \; # all on one line
可能是您需要做的一个很好的近似,但是find
很难使用,并且我正在内存中工作。
仅供参考,我使用了以下内容:
DIRNAME=ENCRYPTEDCONTENT
ENC_KEY="INSERT ENCRYPTION KEY HERE"
INDIR=$PROJECT_DIR/$DIRNAME
OUTDIR=$TARGET_BUILD_DIR/$CONTENTS_FOLDER_PATH/Resources/$DIRNAME
if [ ! -d "$OUTDIR" ]; then
mkdir -p "$OUTDIR"
fi
while IFS= read -r -d $'\0' dir;
do
DIRECTORY=`echo $dir | sed -e "s,$INDIR,$OUTDIR,g"`
mkdir -p "$DIRECTORY"
done < <(find "$INDIR" -type d -print0)
while IFS= read -r -d $'\0' file;
do
OUTFILE=`echo $file | sed -e "s,$INDIR,$OUTDIR,g"`
if [ ! -d "$file" ]; then
echo "Encrypting $file"
"$PROJECT_DIR/crypt" -e -k $ENC_KEY -i "$file" -o "$OUTFILE"
fi
done < <(find "$INDIR" -type f -print0)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.