The only way out of it was to create a build post-action script to generate the missing dsym file. Here is the gist of the script:
set -euo pipefail
if [ -z "${ARCHIVE_PATH:-}" ]; then
exit 0
fi
APP_PATH="$ARCHIVE_PATH/Products/Applications/App_Product_Name.app"
if [ ! -d "$APP_PATH/Contents" ]; then
exit 0
fi
BIN="$APP_PATH/Contents/Frameworks/Framework_Name.framework/Framework_Name"
OUT="$ARCHIVE_PATH/dSYMs/Framework_Name.framework.dSYM"
OUT_DWARF="$OUT/Contents/Resources/DWARF/Framework_Name"
if [ ! -f "$BIN" ]; then
exit 0
fi
if [ ! -f "$OUT_DWARF" ]; then
mkdir -p "$ARCHIVE_PATH/dSYMs"
rm -rf "$OUT"
xcrun dsymutil "$BIN" -o "$OUT"
fi
if [ ! -f "$OUT_DWARF" ]; then
exit 1
fi
BIN_UUIDS="$(xcrun dwarfdump --uuid "$BIN" | awk '{print $2}' | sort)"
DSYM_UUIDS="$(xcrun dwarfdump --uuid "$OUT_DWARF" | awk '{print $2}' | sort)"
if [ "$BIN_UUIDS" != "$DSYM_UUIDS" ]; then
exit 1
fi
Topic:
Developer Tools & Services
SubTopic:
Xcode
Tags: