You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Local macOS .app bundle does not wire the app icon (and hardcodes version / display name) #10847
perry compile now emits a real .app bundle for a local macOS UI build (#10078 / #10240). The bundle copies the project's AppIcon.icns into Contents/Resources/assets/, but it never writes a CFBundleIconFile (or CFBundleIconName) key, and the icon sits under assets/ rather than the Resources/ root. So the Dock and Finder show the generic executable icon instead of the app's icon. There is no flag or config to set the icon.
Environment
Perry 0.5.1622 (local build)
macOS, Darwin 25.6.0, arm64
Native macOS target (perry-ui-macos), local desktop UI build
Steps to reproduce
Put an AppIcon.icns in the project's assets directory.
perry compile src/main.ts -o myapp (native macOS UI build).
Inspect myapp.app/Contents/:
Resources/assets/AppIcon.icns is present.
Info.plist has no CFBundleIconFile / CFBundleIconName.
Launch it. The Dock and Finder icon is the generic executable icon.
Expected
The bundle wires the app icon so the Dock and Finder show it. Either honor an AppIcon.icns in the project assets (copy it to Contents/Resources/AppIcon.icns and add CFBundleIconFile), or add a compile flag / perry.toml key that points at an .icns.
Workaround
We post-process the bundle: copy the .icns to Contents/Resources/AppIcon.icns and add the CFBundleIconFile key by hand.
Related bundle metadata (same code path)
Two more Info.plist fields are hardcoded for a local build with no way to set them:
CFBundleShortVersionString / CFBundleVersion are hardcoded 1.0.0 / 1. The package.jsonversion (e.g. 0.1.0) is not read.
CFBundleName / CFBundleDisplayName default to the -o output name, not perry.toml's name.
CFBundleIdentifier is already settable via --app-bundle-id, so that one is fine.
Activity
fix(macos): wire app icon and bundle metadata