@@ -424,6 +424,46 @@ build_for_arch() {
424424 [ -d " $nested " ] && rm -rf " $nested "
425425 done
426426
427+ # Strip plugin binaries — removes debug symbols, code coverage (__LLVM_COV),
428+ # and dead LINKEDIT metadata that bloat the bundle (e.g., OracleDriver 43MB → ~15MB)
429+ echo " 🔪 Stripping plugin binaries..."
430+ PLUGINS_DIR=" $BUILD_DIR /$OUTPUT_NAME /Contents/PlugIns"
431+ if [ -d " $PLUGINS_DIR " ]; then
432+ for plugin in " $PLUGINS_DIR " /* .tableplugin; do
433+ [ -d " $plugin " ] || continue
434+ local plugin_name
435+ plugin_name=$( basename " $plugin " .tableplugin)
436+ local plugin_binary=" $plugin /Contents/MacOS/$plugin_name "
437+ if [ -f " $plugin_binary " ]; then
438+ local before
439+ before=$( ls -lh " $plugin_binary " | awk ' {print $5}' )
440+ strip -x " $plugin_binary "
441+ local after
442+ after=$( ls -lh " $plugin_binary " | awk ' {print $5}' )
443+ echo " $plugin_name : $before → $after "
444+ fi
445+ done
446+ echo " ✅ Plugin binaries stripped"
447+ fi
448+
449+ # Strip main binary
450+ local main_binary=" $BUILD_DIR /$OUTPUT_NAME /Contents/MacOS/TablePro"
451+ if [ -f " $main_binary " ]; then
452+ local before
453+ before=$( ls -lh " $main_binary " | awk ' {print $5}' )
454+ strip -x " $main_binary "
455+ local after
456+ after=$( ls -lh " $main_binary " | awk ' {print $5}' )
457+ echo " 🔪 Main binary: $before → $after "
458+ fi
459+
460+ # Strip PluginKit framework
461+ local pluginkit_binary=" $BUILD_DIR /$OUTPUT_NAME /Contents/Frameworks/TableProPluginKit.framework/Versions/A/TableProPluginKit"
462+ if [ -f " $pluginkit_binary " ]; then
463+ strip -x " $pluginkit_binary "
464+ echo " TableProPluginKit framework stripped"
465+ fi
466+
427467 # Bundle non-system dynamic libraries (libpq, OpenSSL, etc.)
428468 bundle_dylibs " $BUILD_DIR /$OUTPUT_NAME "
429469
0 commit comments