43 lines
1019 B
Bash
43 lines
1019 B
Bash
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
if [[ "${DEBUG_INFORMATION_FORMAT:-}" != "dwarf-with-dsym" ]]; then
|
|
exit 0
|
|
fi
|
|
|
|
frameworks_dir="${TARGET_BUILD_DIR:-}/${WRAPPER_NAME:-}/Contents/Frameworks"
|
|
dsyms_dir="${DWARF_DSYM_FOLDER_PATH:-}"
|
|
|
|
if [[ -z "${frameworks_dir}" || -z "${dsyms_dir}" || ! -d "${frameworks_dir}" ]]; then
|
|
exit 0
|
|
fi
|
|
|
|
shopt -s nullglob
|
|
|
|
for framework in "${frameworks_dir}"/*.framework; do
|
|
framework_name="$(basename "${framework}")"
|
|
binary_name="${framework_name%.framework}"
|
|
binary_path="${framework}/${binary_name}"
|
|
|
|
if [[ ! -f "${binary_path}" ]]; then
|
|
binary_path="${framework}/Versions/A/${binary_name}"
|
|
fi
|
|
|
|
if [[ ! -f "${binary_path}" ]]; then
|
|
continue
|
|
fi
|
|
|
|
if ! file "${binary_path}" | grep -q "Mach-O"; then
|
|
continue
|
|
fi
|
|
|
|
dsym_path="${dsyms_dir}/${framework_name}.dSYM"
|
|
if [[ -d "${dsym_path}" ]]; then
|
|
continue
|
|
fi
|
|
|
|
echo "Generating missing dSYM for ${framework_name}"
|
|
rm -rf "${dsym_path}"
|
|
xcrun dsymutil "${binary_path}" -o "${dsym_path}"
|
|
done
|