Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
hrydgard
GitHub Repository: hrydgard/ppsspp
Path: blob/master/copysym.sh
3185 views
1
#!/bin/bash
2
3
set -euo pipefail
4
5
# === CONFIGURATION ===
6
7
APP_NAME="PPSSPP" # Name of your app bundle (no .app extension)
8
DSYM_PATH="build-ios/Release-iphoneos/${APP_NAME}.app.dSYM"
9
10
# === Find latest .xcarchive ===
11
12
ARCHIVE_DIR_BASE=~/Library/Developer/Xcode/Archives
13
LATEST_ARCHIVE=$(find "$ARCHIVE_DIR_BASE" -type d -name "*.xcarchive" -print0 | xargs -0 ls -td | head -n 1)
14
15
if [ ! -d "$LATEST_ARCHIVE" ]; then
16
echo "❌ Could not find .xcarchive in $ARCHIVE_DIR_BASE"
17
exit 1
18
fi
19
20
echo "📦 Found archive: $LATEST_ARCHIVE"
21
22
# === Extract binary UUID from .app inside archive ===
23
24
ARCHIVE_APP="$LATEST_ARCHIVE/Products/Applications/${APP_NAME}.app/${APP_NAME}"
25
if [ ! -f "$ARCHIVE_APP" ]; then
26
echo "❌ App binary not found in archive: $ARCHIVE_APP"
27
exit 1
28
fi
29
30
ARCHIVE_UUIDS=$(dwarfdump --uuid "$ARCHIVE_APP" | awk '{ print $2 }' | sort)
31
32
# === Extract UUID from your .dSYM ===
33
34
DSYM_BINARY="$DSYM_PATH/Contents/Resources/DWARF/${APP_NAME}"
35
if [ ! -f "$DSYM_BINARY" ]; then
36
echo "❌ .dSYM binary not found: $DSYM_BINARY"
37
exit 1
38
fi
39
40
DSYM_UUIDS=$(dwarfdump --uuid "$DSYM_BINARY" | awk '{ print $2 }' | sort)
41
42
# === Compare UUIDs ===
43
44
if [ "$ARCHIVE_UUIDS" != "$DSYM_UUIDS" ]; then
45
echo "❌ UUID mismatch:"
46
echo "Archive binary UUIDs: $ARCHIVE_UUIDS"
47
echo "Your dSYM UUIDs: $DSYM_UUIDS"
48
exit 1
49
fi
50
51
echo "✅ UUIDs match!"
52
53
# === Copy dSYM into archive ===
54
55
DEST="$LATEST_ARCHIVE/dSYMs/$(basename "$DSYM_PATH")"
56
57
echo "📁 Copying dSYM to archive: $DEST"
58
cp -R "$DSYM_PATH" "$DEST"
59
60
echo "✅ dSYM successfully copied to archive."
61
62