Use AppIcon.icon for release and enforce icon preflight in workflow

This commit is contained in:
h3p 2026-02-12 20:09:40 +01:00
parent a1cf72c038
commit b1a988eba5
3 changed files with 33 additions and 7 deletions

View file

@ -89,6 +89,32 @@ jobs:
-exportPath "$EXPORT_PATH" \
-exportOptionsPlist export.plist
- name: Verify app icon payload
env:
EXPORT_PATH: ${{ runner.temp }}/export
run: |
set -euo pipefail
APP="$EXPORT_PATH/Neon Vision Editor.app"
INFO="$APP/Contents/Info.plist"
CAR="$APP/Contents/Resources/Assets.car"
ICON_NAME="$(/usr/libexec/PlistBuddy -c 'Print :CFBundleIconName' "$INFO" 2>/dev/null || true)"
if [[ "$ICON_NAME" != "AppIcon" ]]; then
echo "Unexpected CFBundleIconName: '$ICON_NAME' (expected 'AppIcon')." >&2
exit 1
fi
xcrun --sdk macosx assetutil --info "$CAR" > icon-info.json
if ! rg -q '"RenditionName" : "AppIcon\.iconstack"' icon-info.json; then
echo "Missing AppIcon iconstack rendition in Assets.car." >&2
exit 1
fi
if ! rg -q '"Name" : "AppIcon"' icon-info.json; then
echo "Missing AppIcon image renditions in Assets.car." >&2
exit 1
fi
echo "Icon payload preflight passed."
- name: Notarize
env:
EXPORT_PATH: ${{ runner.temp }}/export

View file

@ -80,7 +80,7 @@
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIconName</key>
<string>AppIcon-iOS</string>
<string>AppIcon</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleName</key>

View file

@ -349,9 +349,9 @@
98EAE6412E5F15EC0050E579 /* Debug configuration for PBXNativeTarget "Neon Vision Editor" */ = {
isa = XCBuildConfiguration;
buildSettings = {
"ASSETCATALOG_COMPILER_APPICON_NAME[sdk=iphoneos*]" = "AppIcon-iOS";
"ASSETCATALOG_COMPILER_APPICON_NAME[sdk=iphonesimulator*]" = "AppIcon-iOS";
"ASSETCATALOG_COMPILER_APPICON_NAME[sdk=macosx*]" = "AppIcon-iOS";
"ASSETCATALOG_COMPILER_APPICON_NAME[sdk=iphoneos*]" = AppIcon;
"ASSETCATALOG_COMPILER_APPICON_NAME[sdk=iphonesimulator*]" = AppIcon;
"ASSETCATALOG_COMPILER_APPICON_NAME[sdk=macosx*]" = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = NO;
AUTOMATION_APPLE_EVENTS = NO;
@ -429,9 +429,9 @@
98EAE6422E5F15EC0050E579 /* Release configuration for PBXNativeTarget "Neon Vision Editor" */ = {
isa = XCBuildConfiguration;
buildSettings = {
"ASSETCATALOG_COMPILER_APPICON_NAME[sdk=iphoneos*]" = "AppIcon-iOS";
"ASSETCATALOG_COMPILER_APPICON_NAME[sdk=iphonesimulator*]" = "AppIcon-iOS";
"ASSETCATALOG_COMPILER_APPICON_NAME[sdk=macosx*]" = "AppIcon-iOS";
"ASSETCATALOG_COMPILER_APPICON_NAME[sdk=iphoneos*]" = AppIcon;
"ASSETCATALOG_COMPILER_APPICON_NAME[sdk=iphonesimulator*]" = AppIcon;
"ASSETCATALOG_COMPILER_APPICON_NAME[sdk=macosx*]" = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = NO;
AUTOMATION_APPLE_EVENTS = NO;