Unified · Split
| @@ -30,7 +30,7 @@ export const APP_BUNDLE_ID = isDevelopment · 29 unmodified lines | |||
| 30 | ? `com.t3tools.t3code.dev.${devBundleIdSuffix || "local"}` | 30 | ? `com.t3tools.t3code.dev.${devBundleIdSuffix || "local"}` |
| 31 | : "com.t3tools.t3code"; | 31 | : "com.t3tools.t3code"; |
| 32 | const APP_PROTOCOL_SCHEMES = isDevelopment ? ["t3code-dev"] : ["t3code"]; | 32 | const APP_PROTOCOL_SCHEMES = isDevelopment ? ["t3code-dev"] : ["t3code"]; |
| 33 | const LAUNCHER_VERSION = 10; | 33 | const LAUNCHER_VERSION = 11; |
| 34 | const defaultIconPath = join(desktopDir, "resources", "icon.icns"); | 34 | const defaultIconPath = join(desktopDir, "resources", "icon.icns"); |
| 35 | const developmentMacIconPngPath = join(repoRoot, "assets", "dev", "blueprint-macos-1024.png"); | 35 | const developmentMacIconPngPath = join(repoRoot, "assets", "dev", "blueprint-macos-1024.png"); |
| 36 | 36 | ||
| @@ -295,7 +295,11 @@ function buildMacLauncher(electronBinaryPath) { · 258 unmodified lines | |||
| 295 | } | 295 | } |
| 296 | 296 | ||
| 297 | rmSync(targetAppBundlePath, { recursive: true, force: true }); | 297 | 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 }); | ||
| 299 | patchMainBundleInfoPlist(targetAppBundlePath, iconPath); | 303 | patchMainBundleInfoPlist(targetAppBundlePath, iconPath); |
| 300 | patchHelperBundleInfoPlists(targetAppBundlePath); | 304 | patchHelperBundleInfoPlists(targetAppBundlePath); |
| 301 | if (isDevelopment) { | 305 | if (isDevelopment) { |