我在 Mac 上尝试从我们的 Xcode 构建中编写一些脚本。您可以dSYM
使用某些目录进行检查Show package contents
。在 Xcode 构建后运行的脚本中,我尝试将 dSYM 复制到输出目录。
我的命令是这样的:
cp -vR "${BUILD_PATH}/${CONFIGURATION}-${DEVICE_TYPE}/${FRAMEWORK}.dSYM" "${OUTPUT_FOLDER}/${FRAMEWORK}.dSYM"
扩展后基本上看起来像
cp -vR "${BUILD_PATH}/${ANOTHER_FOLDER}/MyFramework.framework.dSYM" "${OUTPUT_FOLDER}/MyFramework.framework.dSYM"
发生的情况是我将 dsym 文件夹复制到 dsym 文件夹中,因此它看起来像这样:
MyFramework.framework.dSYM/MyFramework.framework.dSYM
rm -rf
在复制它之前我可以使用dSYM,但更好奇是否有另一种方法而不删除它以及我做错了什么。谢谢!
答案1
如果您不想复制 MyFramework.framework.dSYM 父文件夹,请调整命令cp
以使其启动以下那个目录。为了匹配之前的行为,其中每一个dSYM 目录中的文件被复制,甚至是点文件,您必须告诉您的 shell 来拾取这些文件;对于 bash,它是与shopt -s dotglob
.
新cp
命令是:
shopt -s dotglob
cp -vR "${BUILD_PATH}/${CONFIGURATION}-${DEVICE_TYPE}/${FRAMEWORK}.dSYM"/* \
"${OUTPUT_FOLDER}/${FRAMEWORK}.dSYM"
我所做的只是附加/*
到源路径的末尾。
示例运行:
设置
$ tree -a build_path/
build_path/
└── configuration-type
└── framework.dSYM
├── a
├── .dotfile-here
└── subdir
└── b
3 directories, 3 files
执行
cp -vR build_path/configuration-type/framework.dSYM/* output_folder/MyFramework.framework.dSYM
结果
$ tree -a output_folder/
output_folder/
└── MyFramework.framework.dSYM
├── a
├── .dotfile-here
└── subdir
└── b
2 directories, 3 files