diff --git a/FchatiApp/Info.plist b/FchatiApp/Info.plist index 28c212c..a23436b 100644 --- a/FchatiApp/Info.plist +++ b/FchatiApp/Info.plist @@ -8,6 +8,8 @@ FchatiApp CFBundleIdentifier de.diyaa.fchati + CFBundleIconFile + Fchati.icns CFBundleInfoDictionaryVersion 6.0 CFBundleName diff --git a/FchatiApp/Resources/AppIcon.png b/FchatiApp/Resources/AppIcon.png new file mode 100644 index 0000000..2513932 Binary files /dev/null and b/FchatiApp/Resources/AppIcon.png differ diff --git a/FchatiApp/Resources/Fchati.icns b/FchatiApp/Resources/Fchati.icns new file mode 100644 index 0000000..402f74f Binary files /dev/null and b/FchatiApp/Resources/Fchati.icns differ diff --git a/IMPLEMENTATION_STATUS.md b/IMPLEMENTATION_STATUS.md index 6fc9556..b774a83 100644 --- a/IMPLEMENTATION_STATUS.md +++ b/IMPLEMENTATION_STATUS.md @@ -199,6 +199,7 @@ - `relay-server/Dockerfile` initializes all persistent-data paths as the unprivileged `node` user, preventing pairing, queue, and upload write failures on newly created volumes. - The macOS app now has an always-visible quit control beside the top-level tabs, in addition to the existing Settings action. - The macOS app now includes a normal main window and Dock presence while retaining the menu-bar shortcut. +- `FchatiApp/Resources/AppIcon.png` and `FchatiApp/Resources/Fchati.icns` provide the bundled Dock and application icon, and the installer copies the icon into the application bundle. ## Bug Fixes — Post-Review ✅ diff --git a/scripts/run-macos-app.sh b/scripts/run-macos-app.sh index f0ad0bb..c93449a 100755 --- a/scripts/run-macos-app.sh +++ b/scripts/run-macos-app.sh @@ -9,6 +9,7 @@ PRODUCT_NAME="FchatiApp" INSTALL_PATH="/Applications/Fchati.app" STAGING_DIR="$(mktemp -d "${TMPDIR:-/tmp}/fchati-install.XXXXXX")" STAGING_APP="$STAGING_DIR/Fchati.app" +ICON_PATH="$PROJECT_DIR/Resources/Fchati.icns" cleanup() { rm -rf "$STAGING_DIR" @@ -20,6 +21,11 @@ if [[ ! -f "$PROJECT_DIR/Package.swift" ]]; then exit 1 fi +if [[ ! -f "$ICON_PATH" ]]; then + echo "Application icon not found: $ICON_PATH" >&2 + exit 1 +fi + if [[ -e "$INSTALL_PATH" && ! -d "$INSTALL_PATH" ]]; then echo "Expected an application bundle at $INSTALL_PATH, but found a non-directory." >&2 exit 1 @@ -41,9 +47,10 @@ if [[ ! -x "$EXECUTABLE_PATH" ]]; then fi echo "Creating the application bundle..." -mkdir -p "$STAGING_APP/Contents/MacOS" +mkdir -p "$STAGING_APP/Contents/MacOS" "$STAGING_APP/Contents/Resources" cp "$PROJECT_DIR/Info.plist" "$STAGING_APP/Contents/Info.plist" cp "$EXECUTABLE_PATH" "$STAGING_APP/Contents/MacOS/$PRODUCT_NAME" +cp "$ICON_PATH" "$STAGING_APP/Contents/Resources/Fchati.icns" codesign --force --sign - --timestamp=none --entitlements "$PROJECT_DIR/FchatiApp.entitlements" "$STAGING_APP" if [[ -d "$INSTALL_PATH" ]]; then