iOS 本地资源"压缩加密"脚本

2023-08-11  本文已影响0人  Eugene_iOS

前言:
开发中避免不了对敏感资源进行加密,以下实现了对批量资源文件进行zip压缩加密打包,若对压缩的加密zip文件进行再加密、或仅仅加密单个或少量文件可参考这里


批量资源zip压缩加密脚本

1、将敏感资源集中到某一资源文件夹,拖入到项目中注意不要勾选Target,这样资源文件就不会打包到ipa文件中,只是会关联到工程项目。
2、使用以下脚本,项目编译时会将资源文件压缩加密到ipa包中的xx.app目录里,从而不影响APP的运行。
3、工程项目中,使用[[NSBundle mainBundle] pathForResource:fileName ofType:nil]访问加密压缩的zip文件,然后对读取到的zip文件,进行解密解压缩访问。⚠️注意:代码zip压缩文件密码要和脚本中的密码保持一致。

# Type a script or drag a script file from your workspace to insert its path.
# -- 👇这里默认是在根目录,即: ${PROJECT_DIR} 或 ${SRCROOT} --

# zip密码需要和代码中保持一致,方可解压zip资源包
PASSWARD="YanJin"
ZIP_NAME="Wavetables"

cd ${TARGET_NAME}
# -- 👇这里是项目文件根目录/项目名/,即: ${TARGET_NAME} --
 
# 项目文件根目录:${PROJECT_DIR} 或 ${SRCROOT}
# 项目文件根目录/项目名目录: ${TARGET_NAME}
FILE_PATH="${ZIP_NAME}"  
# 压缩文件到工程项目中路径
#ZIP_PATH="${PROJECT_DIR}/${TARGET_NAME}/${ZIP_NAME}.zip"

# 压缩文件的Build/Archive项目构建路径,xx.app中的文件路径
BUILD_ZIP_PATH="${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/${ZIP_NAME}.zip"
#BUILD_ZIP_PATH="${BUILT_PRODUCTS_DIR}/${TARGET_NAME}.app/${ZIP_NAME}.zip"

# 压缩加密zip,压缩资源文件到指定路径。这里将压缩加密的$FILE_PATH文件,移动xx.ipa包的xx.app目录下。
# xx.ipa包的xx.app目录下文件,若访问可使用:[[NSBundle mainBundle] pathForResource:fileName ofType:nil]
# 注意:若不想压缩多余的目录路径,要cd到目标文件($FILE_PATH),或者它的“父目录”,这里cd到了它的“父目录”;
# 若cd到目标文件($FILE_PATH),使用: "zip -r -P $PASSWARD $BUILD_ZIP_PATH *" 即可
zip -r -P $PASSWARD $BUILD_ZIP_PATH $FILE_PATH
  
#cd $TARGET_APP_PATH
# -- 👇这里是编译包 xx.app/ 的路径
#mkdir file-dir #测试创建文件见


脚本运行结果

查看脚本运行结果 xx.app中解压zip文件

写在最后

Linux zip
XCode环境变量及路径设置

上一篇 下一篇

猜你喜欢

热点阅读