

















@@ -19,6 +19,11 @@ APP_VERSION_INPUT="${APP_VERSION:-$(cd "$ROOT_DIR" && node -p "require('./packag
1919# Default to universal binary for distribution builds (supports both Apple Silicon and Intel Macs)
2020export BUILD_ARCHS="${BUILD_ARCHS:-all}"
2121export BUILD_CONFIG
22+DSYM_ARCHS_VALUE="$BUILD_ARCHS"
23+if [[ "$DSYM_ARCHS_VALUE" == "all" ]]; then
24+ DSYM_ARCHS_VALUE="arm64 x86_64"
25+fi
26+IFS=' ' read -r -a DSYM_ARCHS <<< "$DSYM_ARCHS_VALUE"
22272328# Use release bundle ID (not .debug) so Sparkle auto-update works.
2429# The .debug suffix in package-mac-app.sh blanks SUFeedURL intentionally for dev builds.
@@ -136,24 +141,49 @@ else
136141fi
137142138143if [[ "$SKIP_DSYM" != "1" ]]; then
139- DSYM_ARM64="$(find "$BUILD_ROOT/arm64" -type d -path "*/$BUILD_CONFIG/$PRODUCT.dSYM" -print -quit)"
140- DSYM_X86="$(find "$BUILD_ROOT/x86_64" -type d -path "*/$BUILD_CONFIG/$PRODUCT.dSYM" -print -quit)"
141-if [[ -n "$DSYM_ARM64" || -n "$DSYM_X86" ]]; then
144+ DSYM_PATHS=()
145+ MISSING_DSYM_ARCHS=()
146+for arch in "${DSYM_ARCHS[@]}"; do
147+if [[ ! -d "$BUILD_ROOT/$arch" ]]; then
148+ MISSING_DSYM_ARCHS+=("$arch")
149+continue
150+fi
151+ DSYM_FOR_ARCH="$(find "$BUILD_ROOT/$arch" -type d -path "*/$BUILD_CONFIG/$PRODUCT.dSYM" -print -quit)"
152+if [[ -n "$DSYM_FOR_ARCH" ]]; then
153+ DSYM_PATHS+=("$DSYM_FOR_ARCH")
154+else
155+ MISSING_DSYM_ARCHS+=("$arch")
156+fi
157+done
158+159+if [[ "${#MISSING_DSYM_ARCHS[@]}" -gt 0 ]]; then
160+echo "Error: dSYM not found for architecture(s): ${MISSING_DSYM_ARCHS[*]} (set SKIP_DSYM=1 to skip symbols)" >&2
161+exit 1
162+fi
163+164+if [[ "${#DSYM_PATHS[@]}" -gt 0 ]]; then
142165 TMP_DSYM="$ROOT_DIR/dist/$PRODUCT.dSYM"
143166 rm -rf "$TMP_DSYM"
144-if [[ -n "$DSYM_ARM64" && -n "$DSYM_X86" ]]; then
145- cp -R "$DSYM_ARM64" "$TMP_DSYM"
167+if [[ "${#DSYM_PATHS[@]}" -gt 1 ]]; then
168+ cp -R "${DSYM_PATHS[0]}" "$TMP_DSYM"
146169 DWARF_OUT="$TMP_DSYM/Contents/Resources/DWARF/$PRODUCT"
147- DWARF_ARM="$DSYM_ARM64/Contents/Resources/DWARF/$PRODUCT"
148- DWARF_X86="$DSYM_X86/Contents/Resources/DWARF/$PRODUCT"
149-if [[ -f "$DWARF_ARM" && -f "$DWARF_X86" ]]; then
150- /usr/bin/lipo -create "$DWARF_ARM" "$DWARF_X86" -output "$DWARF_OUT"
170+ DWARF_INPUTS=()
171+for dsym in "${DSYM_PATHS[@]}"; do
172+ DWARF_INPUT="$dsym/Contents/Resources/DWARF/$PRODUCT"
173+if [[ ! -f "$DWARF_INPUT" ]]; then
174+echo "Error: missing DWARF binaries for dSYM merge (set SKIP_DSYM=1 to skip symbols)" >&2
175+exit 1
176+fi
177+ DWARF_INPUTS+=("$DWARF_INPUT")
178+done
179+if [[ "${#DWARF_INPUTS[@]}" -gt 1 ]]; then
180+ /usr/bin/lipo -create "${DWARF_INPUTS[@]}" -output "$DWARF_OUT"
151181else
152182echo "Error: missing DWARF binaries for dSYM merge (set SKIP_DSYM=1 to skip symbols)" >&2
153183exit 1
154184fi
155185else
156- cp -R "${DSYM_ARM64:-$DSYM_X86}" "$TMP_DSYM"
186+ cp -R "${DSYM_PATHS[0]}" "$TMP_DSYM"
157187fi
158188echo "🧩 dSYM: $DSYM_ZIP"
159189 rm -f "$DSYM_ZIP"
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。