如何解决当双击与运行 unzip
我正在从构建我的应用程序生成的 .xctest
目标内的 Plugins
文件夹中压缩 .app
文件。我有一个构建阶段脚本,它在我的测试目标中最后运行以复制此文件。我使用以下脚本进行压缩:
XCTEST_FILE=${TARGET_BUILD_DIR}/${TARGET_NAME}.xctest
XCTEST_ZIP=${TARGET_BUILD_DIR}/../../${TARGET_NAME}.xctest.zip
zip -jr ${XCTEST_ZIP} ${XCTEST_FILE}
这给了我 TestTarget.xctest.zip
文件。但是根据这两种方法解压方式不同,
解压 TestTarget.xctest.zip
-测试目标
-代码资源
-Info.plist
在finder中双击TestTarget.xctest.zip
-TestTarget.xctest
--测试目标
--代码资源
--Info.plist
为什么解压到最里面的节点并解压所有文件?我想要 unzip 命令给我 .xctest
目录。我尝试将 zip 文件重命名为 TestTarget.zip
,但它的行为仍然相似。
我最初使用 zip -r ${XCTEST_ZIP} ${XCTEST_FILE}
进行压缩,但问题是当我双击以解压缩文件时,它会保留根目录 (\
) 中的整个文件夹结构。帖子建议使用 -j
标志而不是 -r
。但只是 -j
导致没有生成 zip 文件。另一条评论推荐 -jr
,它创建了一个 zip,它在双击时生成了我期望的输出。但我猜 unzip
命令的作用有所不同。
类似问题:MacOs zip file - different result when double click and running unzip command
这里的错误原因非常不同,
问题出在文件的创建时间。它与 MacOs 问题无关,但在 Windows 中存在某些路径长度已知问题
解决方法
基于 How to zip folder without full path,在生成 zip 之前,我必须先将脚本更新为 cd
到 TARGET_BUILD_DIR
。我还必须删除 -j
标志,以便在运行 unzip
时保留本地文件夹结构。
cd ${TARGET_BUILD_DIR}
XCTEST_FILE=./${TARGET_NAME}.xctest
XCTEST_ZIP=../../${TARGET_NAME}.xctest.zip
zip -r ${XCTEST_ZIP} ${XCTEST_FILE}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。