@@ -30,7 +30,7 @@ export const APP_BUNDLE_ID = isDevelopment
3030 ? `com.t3tools.t3code.dev.${ devBundleIdSuffix || "local" } `
3131 : "com.t3tools.t3code" ;
3232const APP_PROTOCOL_SCHEMES = isDevelopment ? [ "t3code-dev" ] : [ "t3code" ] ;
33- const LAUNCHER_VERSION = 10 ;
33+ const LAUNCHER_VERSION = 11 ;
3434const defaultIconPath = join ( desktopDir , "resources" , "icon.icns" ) ;
3535const developmentMacIconPngPath = join ( repoRoot , "assets" , "dev" , "blueprint-macos-1024.png" ) ;
3636
@@ -295,7 +295,11 @@ function buildMacLauncher(electronBinaryPath) {
295295 }
296296
297297 rmSync ( targetAppBundlePath , { recursive : true , force : true } ) ;
298- cpSync ( sourceAppBundlePath , targetAppBundlePath , { recursive : true } ) ;
298+ // verbatimSymlinks keeps the framework's relative symlinks intact
299+ // (e.g. Resources -> Versions/Current/Resources). Without it cpSync
300+ // rewrites them to absolute paths into node_modules, which escape the
301+ // bundle and crash sandboxed helper processes (icudtl.dat not found).
302+ cpSync ( sourceAppBundlePath , targetAppBundlePath , { recursive : true , verbatimSymlinks : true } ) ;
299303 patchMainBundleInfoPlist ( targetAppBundlePath , iconPath ) ;
300304 patchHelperBundleInfoPlists ( targetAppBundlePath ) ;
301305 if ( isDevelopment ) {
0 commit comments