Xcode 使用-jr标志创建的zip在macOS上的解压方式不同于双击和运行解压

Xcode 使用-jr标志创建的zip在macOS上的解压方式不同于双击和运行解压,xcode,bash,scripting,zip,xctest,Xcode,Bash,Scripting,Zip,Xctest,我正在从构建我的应用程序生成的.app目标中的Plugins文件夹压缩.xtest文件。我有一个构建阶段脚本,它在我的测试目标中最后运行以复制这个文件。我使用以下脚本进行压缩: XCTEST_FILE=${TARGET_BUILD_DIR}/${TARGET_NAME}.xctest XCTEST_ZIP=${TARGET_BUILD_DIR}/../../${TARGET_NAME}.xctest.zip zip -jr ${XCTEST_ZIP} ${XCTEST_FILE} 这给了我Te

我正在从构建我的应用程序生成的
.app
目标中的
Plugins
文件夹压缩
.xtest
文件。我有一个构建阶段脚本,它在我的测试目标中最后运行以复制这个文件。我使用以下脚本进行压缩:

XCTEST_FILE=${TARGET_BUILD_DIR}/${TARGET_NAME}.xctest
XCTEST_ZIP=${TARGET_BUILD_DIR}/../../${TARGET_NAME}.xctest.zip
zip -jr ${XCTEST_ZIP} ${XCTEST_FILE}
这给了我
TestTarget.xtest.zip
文件。但基于这两种方法,解压方式有所不同

解压缩TestTarget.xtest.zip

-测试目标
-代码资源
-Info.plist

双击finder中的TestTarget.xTest.zip

-TestTarget.xctest
--测试目标
--代码资源
--Info.plist

为什么解压要转到最里面的节点并提取所有文件?我希望解压命令为我提供
.xtest
目录。我尝试将zip文件重命名为
TestTarget.zip
,但它的行为仍然类似

我最初使用
zip-r${xtest\u zip}${xtest\u FILE}
进行压缩,但问题是当我双击解压文件时,它会保留根目录(
\
)中的整个文件夹结构。一篇帖子建议使用
-j
标志代替
-r
。但是仅仅
-j
导致没有生成zip文件。另一条评论推荐了
-jr
,它创建了一个zip,双击它时生成了我期望的输出。但是我想
unzip
命令做的事情是不同的

类似问题:

这里的错误原因非常不同

问题是文件是在什么时候创建的。这与MacOs问题无关,但与windows中已知的某些路径长度问题有关

基于,在生成zip之前,我必须先将脚本更新到
cd
中的
TARGET\u BUILD\u DIR
。我还必须删除
-j
标志,以便在运行
解压时保留本地文件夹结构

cd ${TARGET_BUILD_DIR}
XCTEST_FILE=./${TARGET_NAME}.xctest
XCTEST_ZIP=../../${TARGET_NAME}.xctest.zip
zip -r ${XCTEST_ZIP} ${XCTEST_FILE}