Skip to content

Commit ceb6b10

Browse files
authored
refactor: use Apple-standard archive + exportArchive build pipeline (#573)
* refactor: use Apple-standard archive + exportArchive build pipeline * fix: use absolute entitlements path and add stripSwiftSymbols to ExportOptions * docs: simplify changelog entry * fix: restore AppIcon.icon CI cleanup, add strip settings to plugin builds
1 parent 49dafee commit ceb6b10

4 files changed

Lines changed: 232 additions & 320 deletions

File tree

.github/workflows/build.yml

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,13 @@ jobs:
137137
build/Release/TablePro-*.dmg
138138
build/Release/TablePro-*.zip
139139
140+
- name: Upload dSYMs
141+
uses: actions/upload-artifact@v4
142+
with:
143+
name: dsyms-arm64
144+
path: build/Release/TablePro-*-dSYMs.zip
145+
if-no-files-found: warn
146+
140147
build-x86_64:
141148
name: Build x86_64
142149
runs-on: macos-15
@@ -255,6 +262,13 @@ jobs:
255262
build/Release/TablePro-*.dmg
256263
build/Release/TablePro-*.zip
257264
265+
- name: Upload dSYMs
266+
uses: actions/upload-artifact@v4
267+
with:
268+
name: dsyms-x86_64
269+
path: build/Release/TablePro-*-dSYMs.zip
270+
if-no-files-found: warn
271+
258272
release:
259273
name: Create GitHub Release
260274
runs-on: macos-15
@@ -278,14 +292,27 @@ jobs:
278292
- name: Download build artifacts
279293
uses: actions/download-artifact@v4
280294
with:
295+
pattern: artifacts-*
281296
path: artifacts-raw/
282297
merge-multiple: true
283298

299+
- name: Download dSYMs
300+
uses: actions/download-artifact@v4
301+
with:
302+
pattern: dsyms-*
303+
path: dsyms-raw/
304+
merge-multiple: true
305+
284306
- name: Flatten artifacts
285307
run: |
286308
mkdir -p artifacts/
287309
find artifacts-raw/ -type f \( -name "*.dmg" -o -name "*.zip" \) -exec mv {} artifacts/ \;
288310
rm -rf artifacts-raw/
311+
312+
# Move dSYMs to artifacts for release attachment
313+
find dsyms-raw/ -name "*-dSYMs.zip" -exec mv {} artifacts/ \; 2>/dev/null || true
314+
rm -rf dsyms-raw/
315+
289316
echo "Artifacts:"
290317
ls -lh artifacts/
291318

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
### Changed
11+
12+
- Use Apple-standard `xcodebuild archive` + `exportArchive` build pipeline with dSYM collection
13+
1014
## [0.27.3] - 2026-04-03
1115

1216
### Added

scripts/build-plugin.sh

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@ build_plugin() {
3737
CODE_SIGN_IDENTITY="$SIGN_IDENTITY" \
3838
CODE_SIGN_STYLE=Manual \
3939
DEVELOPMENT_TEAM="$TEAM_ID" \
40+
DEPLOYMENT_POSTPROCESSING=YES \
41+
STRIP_STYLE=non-global \
4042
-skipPackagePluginValidation \
4143
-derivedDataPath "$DERIVED_DATA_DIR" \
4244
build > "build-plugin-${arch}.log" 2>&1; then
@@ -56,17 +58,10 @@ build_plugin() {
5658

5759
echo "Built: $plugin_bundle" >&2
5860

59-
# Strip the plugin binary to reduce size
61+
# Stripping is handled by Xcode build settings (COPY_PHASE_STRIP, DEPLOYMENT_POSTPROCESSING)
6062
local plugin_name
6163
plugin_name=$(basename "$plugin_bundle" .tableplugin)
6264
local plugin_binary="$plugin_bundle/Contents/MacOS/$plugin_name"
63-
if [ -f "$plugin_binary" ]; then
64-
local before after
65-
before=$(ls -lh "$plugin_binary" | awk '{print $5}')
66-
strip -x "$plugin_binary"
67-
after=$(ls -lh "$plugin_binary" | awk '{print $5}')
68-
echo "Stripped binary: $before -> $after" >&2
69-
fi
7065

7166
# Code sign inside-out: nested frameworks/dylibs first, then binary, then bundle
7267
echo "Code signing with: $SIGN_IDENTITY" >&2

0 commit comments

Comments
 (0)