Skip to content

Commit e6f29bc

Browse files
authored
Merge pull request #36 from webrtc-sdk/blaze/dsyms
Apple: Add debug configuration with dSYMs
2 parents bc94d4a + 59a3383 commit e6f29bc

File tree

4 files changed

+72
-13
lines changed

4 files changed

+72
-13
lines changed

.github/workflows/build.yml

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,14 @@ on:
77
description: 'webrtc-sdk commit hash'
88
default: ''
99
required: true
10+
configuration:
11+
description: 'build configuration'
12+
default: 'release'
13+
required: true
14+
type: choice
15+
options:
16+
- release
17+
- debug
1018
push:
1119
paths-ignore:
1220
- '**.md'
@@ -41,9 +49,19 @@ jobs:
4149
- uses: maxim-lobanov/setup-xcode@v1
4250
with:
4351
xcode-version: 16.4
52+
- name: Cleanup
53+
run: |
54+
echo "Removing all simulators"
55+
xcrun simctl delete all
56+
for xcode_path in /Applications/Xcode*.app; do
57+
if [[ -d "$xcode_path" ]] && [[ "$xcode_path" != "/Applications/Xcode_16.4.app" ]]; then
58+
echo "Removing $xcode_path"
59+
rm -rf "$xcode_path"
60+
fi
61+
done
4462
- name: Build
4563
id: build
46-
run: ./build.${{ matrix.name }}.sh "${{ github.event.inputs.commitHash }}"
64+
run: ./build.${{ matrix.name }}.sh "${{ github.event.inputs.commitHash }}" "${{ github.event.inputs.configuration || 'release' }}"
4765
- name: Upload Artifact
4866
uses: actions/upload-artifact@v4
4967
with:

build/apple/xcframework.sh

Lines changed: 51 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -99,33 +99,74 @@ start_group "Creating universal binaries (x64 + arm64)"
9999
mkdir -p "$OUT_DIR/macOS-lib"
100100
cp -R "$OUT_DIR/macOS-x64/$FRAMEWORK_NAME.framework" "$OUT_DIR/macOS-lib/$FRAMEWORK_NAME.framework"
101101
lipo -create -output "$OUT_DIR/macOS-lib/$FRAMEWORK_NAME.framework/$FRAMEWORK_NAME" "$OUT_DIR/macOS-arm64/$FRAMEWORK_NAME.framework/$FRAMEWORK_NAME" "$OUT_DIR/macOS-x64/$FRAMEWORK_NAME.framework/$FRAMEWORK_NAME"
102+
if [ -d "$OUT_DIR/macOS-x64/$FRAMEWORK_NAME.dSYM" ]; then
103+
cp -R "$OUT_DIR/macOS-x64/$FRAMEWORK_NAME.dSYM" "$OUT_DIR/macOS-lib/$FRAMEWORK_NAME.dSYM"
104+
lipo -create -output "$OUT_DIR/macOS-lib/$FRAMEWORK_NAME.dSYM/Contents/Resources/DWARF/$FRAMEWORK_NAME" "$OUT_DIR/macOS-arm64/$FRAMEWORK_NAME.dSYM/Contents/Resources/DWARF/$FRAMEWORK_NAME" "$OUT_DIR/macOS-x64/$FRAMEWORK_NAME.dSYM/Contents/Resources/DWARF/$FRAMEWORK_NAME"
105+
fi
102106

103107
mkdir -p "$OUT_DIR/catalyst-lib"
104108
cp -R "$OUT_DIR/catalyst-arm64/$FRAMEWORK_NAME.framework" "$OUT_DIR/catalyst-lib/$FRAMEWORK_NAME.framework"
105109
lipo -create -output "$OUT_DIR/catalyst-lib/$FRAMEWORK_NAME.framework/$FRAMEWORK_NAME" "$OUT_DIR/catalyst-arm64/$FRAMEWORK_NAME.framework/$FRAMEWORK_NAME" "$OUT_DIR/catalyst-x64/$FRAMEWORK_NAME.framework/$FRAMEWORK_NAME"
110+
if [ -d "$OUT_DIR/catalyst-arm64/$FRAMEWORK_NAME.dSYM" ]; then
111+
cp -R "$OUT_DIR/catalyst-arm64/$FRAMEWORK_NAME.dSYM" "$OUT_DIR/catalyst-lib/$FRAMEWORK_NAME.dSYM"
112+
lipo -create -output "$OUT_DIR/catalyst-lib/$FRAMEWORK_NAME.dSYM/Contents/Resources/DWARF/$FRAMEWORK_NAME" "$OUT_DIR/catalyst-arm64/$FRAMEWORK_NAME.dSYM/Contents/Resources/DWARF/$FRAMEWORK_NAME" "$OUT_DIR/catalyst-x64/$FRAMEWORK_NAME.dSYM/Contents/Resources/DWARF/$FRAMEWORK_NAME"
113+
fi
106114

107115
mkdir -p "$OUT_DIR/iOS-device-lib"
108116
cp -R "$OUT_DIR/iOS-arm64-device/$FRAMEWORK_NAME.framework" "$OUT_DIR/iOS-device-lib/$FRAMEWORK_NAME.framework"
109117
lipo -create -output "$OUT_DIR/iOS-device-lib/$FRAMEWORK_NAME.framework/$FRAMEWORK_NAME" "$OUT_DIR/iOS-arm64-device/$FRAMEWORK_NAME.framework/$FRAMEWORK_NAME"
118+
if [ -d "$OUT_DIR/iOS-arm64-device/$FRAMEWORK_NAME.dSYM" ]; then
119+
cp -R "$OUT_DIR/iOS-arm64-device/$FRAMEWORK_NAME.dSYM" "$OUT_DIR/iOS-device-lib/$FRAMEWORK_NAME.dSYM"
120+
lipo -create -output "$OUT_DIR/iOS-device-lib/$FRAMEWORK_NAME.dSYM/Contents/Resources/DWARF/$FRAMEWORK_NAME" "$OUT_DIR/iOS-arm64-device/$FRAMEWORK_NAME.dSYM/Contents/Resources/DWARF/$FRAMEWORK_NAME"
121+
fi
110122

111123
mkdir -p "$OUT_DIR/iOS-simulator-lib"
112124
cp -R "$OUT_DIR/iOS-arm64-simulator/$FRAMEWORK_NAME.framework" "$OUT_DIR/iOS-simulator-lib/$FRAMEWORK_NAME.framework"
113125
lipo -create -output "$OUT_DIR/iOS-simulator-lib/$FRAMEWORK_NAME.framework/$FRAMEWORK_NAME" "$OUT_DIR/iOS-arm64-simulator/$FRAMEWORK_NAME.framework/$FRAMEWORK_NAME" "$OUT_DIR/iOS-x64-simulator/$FRAMEWORK_NAME.framework/$FRAMEWORK_NAME"
126+
if [ -d "$OUT_DIR/iOS-arm64-simulator/$FRAMEWORK_NAME.dSYM" ]; then
127+
cp -R "$OUT_DIR/iOS-arm64-simulator/$FRAMEWORK_NAME.dSYM" "$OUT_DIR/iOS-simulator-lib/$FRAMEWORK_NAME.dSYM"
128+
lipo -create -output "$OUT_DIR/iOS-simulator-lib/$FRAMEWORK_NAME.dSYM/Contents/Resources/DWARF/$FRAMEWORK_NAME" "$OUT_DIR/iOS-arm64-simulator/$FRAMEWORK_NAME.dSYM/Contents/Resources/DWARF/$FRAMEWORK_NAME" "$OUT_DIR/iOS-x64-simulator/$FRAMEWORK_NAME.dSYM/Contents/Resources/DWARF/$FRAMEWORK_NAME"
129+
fi
114130

115131
end_group
116132

117133
start_group "Creating XCFramework"
118134

119-
xcodebuild -create-xcframework \
120-
-framework "$OUT_DIR/iOS-device-lib/$FRAMEWORK_NAME.framework" \
121-
-framework "$OUT_DIR/iOS-simulator-lib/$FRAMEWORK_NAME.framework" \
122-
-framework "$OUT_DIR/macOS-lib/$FRAMEWORK_NAME.framework" \
123-
-framework "$OUT_DIR/catalyst-lib/$FRAMEWORK_NAME.framework" \
124-
-framework "$OUT_DIR/tvOS-arm64-device/$FRAMEWORK_NAME.framework" \
125-
-framework "$OUT_DIR/tvOS-arm64-simulator/$FRAMEWORK_NAME.framework" \
126-
-framework "$OUT_DIR/xrOS-arm64-device/$FRAMEWORK_NAME.framework" \
127-
-framework "$OUT_DIR/xrOS-arm64-simulator/$FRAMEWORK_NAME.framework" \
128-
-output "$OUT_DIR/$FRAMEWORK_NAME.xcframework"
135+
XCFRAMEWORK_ARGS=(-create-xcframework)
136+
137+
FRAMEWORK_PATHS=(
138+
"$OUT_DIR/iOS-device-lib/$FRAMEWORK_NAME.framework"
139+
"$OUT_DIR/iOS-simulator-lib/$FRAMEWORK_NAME.framework"
140+
"$OUT_DIR/macOS-lib/$FRAMEWORK_NAME.framework"
141+
"$OUT_DIR/catalyst-lib/$FRAMEWORK_NAME.framework"
142+
"$OUT_DIR/tvOS-arm64-device/$FRAMEWORK_NAME.framework"
143+
"$OUT_DIR/tvOS-arm64-simulator/$FRAMEWORK_NAME.framework"
144+
"$OUT_DIR/xrOS-arm64-device/$FRAMEWORK_NAME.framework"
145+
"$OUT_DIR/xrOS-arm64-simulator/$FRAMEWORK_NAME.framework"
146+
)
147+
148+
DSYM_PATHS=(
149+
"$OUT_DIR/iOS-device-lib/$FRAMEWORK_NAME.dSYM"
150+
"$OUT_DIR/iOS-simulator-lib/$FRAMEWORK_NAME.dSYM"
151+
"$OUT_DIR/macOS-lib/$FRAMEWORK_NAME.dSYM"
152+
"$OUT_DIR/catalyst-lib/$FRAMEWORK_NAME.dSYM"
153+
"$OUT_DIR/tvOS-arm64-device/$FRAMEWORK_NAME.dSYM"
154+
"$OUT_DIR/tvOS-arm64-simulator/$FRAMEWORK_NAME.dSYM"
155+
"$OUT_DIR/xrOS-arm64-device/$FRAMEWORK_NAME.dSYM"
156+
"$OUT_DIR/xrOS-arm64-simulator/$FRAMEWORK_NAME.dSYM"
157+
)
158+
159+
for i in "${!FRAMEWORK_PATHS[@]}"; do
160+
XCFRAMEWORK_ARGS+=(-framework "${FRAMEWORK_PATHS[$i]}")
161+
162+
if [[ "$DEBUG" == "true" ]] && [[ -d "${DSYM_PATHS[$i]}" ]]; then
163+
XCFRAMEWORK_ARGS+=(-debug-symbols "${DSYM_PATHS[$i]}")
164+
fi
165+
done
166+
167+
XCFRAMEWORK_ARGS+=(-output "$OUT_DIR/$FRAMEWORK_NAME.xcframework")
168+
169+
xcodebuild "${XCFRAMEWORK_ARGS[@]}"
129170

130171
end_group
131172

build/build.apple.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,4 @@ python3 run.py build apple --commit "$1" --webrtc-fetch
77

88
export PATH="$PWD/_source/apple/depot_tools:$PATH"
99
mkdir -p _package/apple
10-
. apple/xcframework.sh release _source/apple/webrtc/src _package/apple
10+
. apple/xcframework.sh "$2" _source/apple/webrtc/src _package/apple

build/build.apple_prefixed.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,4 @@ python3 run.py build apple_prefixed --commit "$1" --webrtc-fetch
77

88
export PATH="$PWD/_source/apple_prefixed/depot_tools:$PATH"
99
mkdir -p _package/apple_prefixed
10-
. apple/xcframework.sh release _source/apple_prefixed/webrtc/src _package/apple_prefixed LiveKit # prefix
10+
. apple/xcframework.sh "$2" _source/apple_prefixed/webrtc/src _package/apple_prefixed LiveKit # prefix

0 commit comments

Comments
 (0)