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}