Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 20 additions & 16 deletions .github/actions/apply-version/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -110,16 +110,20 @@ runs:
set -e

if [[ "$INPUT_STAGING" == "true" && -d "src-tauri/icons-staging" ]]; then
# Liquid Glass icons take a different input per platform (the two
# build systems differ): macOS uses the precompiled Assets.car
# (the Tauri bundler copies it into the .app — no actool), with
# icon.icns as the pre-macOS-26 fallback; iOS uses the icon.icon
# Icon Composer source, which xcodebuild's actool compiles itself
# (the iOS step below places it into gen/apple). Both derive from
# the same Icon Composer project.
cp src-tauri/icons-staging/32x32.png src-tauri/icons-staging/64x64.png \
src-tauri/icons-staging/128x128.png "src-tauri/icons-staging/128x128@2x.png" \
src-tauri/icons-staging/icon.png src-tauri/icons-staging/icon.icns src-tauri/icons-staging/icon.ico \
src-tauri/icons-staging/Assets.car \
src-tauri/icons-staging/Square*.png src-tauri/icons-staging/StoreLogo.png \
src-tauri/icons/
# icon.icon is the Icon Composer (Liquid Glass) source shared by
# macOS and iOS: the macOS bundler compiles it to Assets.car via
# actool (icon.icns stays as the pre-macOS-26 fallback), and the
# iOS step below copies it into the asset catalog. It's a directory,
# so replace it wholesale rather than cp-ing into the existing one.
# icon.icon is a directory — replace wholesale rather than cp into it.
rm -rf src-tauri/icons/icon.icon
cp -r src-tauri/icons-staging/icon.icon src-tauri/icons/icon.icon
echo "Using staging icon set (src-tauri/icons-staging)"
Expand Down Expand Up @@ -184,16 +188,16 @@ runs:
/usr/libexec/PlistBuddy -c "Set :CFBundleDisplayName ${DISPLAY_NAME}" "$plist" || true
done

# gen/apple/Assets.xcassets is a separate, committed copy that only
# xcodebuild seesit holds the committed (release) icon.icon. The
# "Select app icon set" step above already swapped src-tauri/icons/icon.icon
# to the staging Icon Composer source when staging, so sync whatever is
# there into the catalog. xcodebuild's actool compiles it into the app's
# Assets.car (Liquid Glass on iOS 26) and auto-generates the PNG raster
# fallbacks for older iOS. ASSETCATALOG_COMPILER_APPICON_NAME=icon
# (project.pbxproj) selects this entry.
rm -rf src-tauri/gen/apple/Assets.xcassets/icon.icon
cp -r src-tauri/icons/icon.icon src-tauri/gen/apple/Assets.xcassets/icon.icon
echo "Synced iOS app icon (icon.icon) into Assets.xcassets"
# icon.icon (Icon Composer source) must sit at the project root next
# to Assets.xcassetsNOT inside the catalog — and be referenced in
# project.pbxproj (PBXFileReference + Resources build phase) so
# actool routes it as the app icon. It's committed for release; the
# "Select app icon set" step above swaps src-tauri/icons/icon.icon to
# the staging source when staging, so sync whatever is there.
# ASSETCATALOG_COMPILER_APPICON_NAME=icon (project.pbxproj) selects it;
# actool compiles Liquid Glass for iOS 26 and PNG rasters for older iOS.
rm -rf src-tauri/gen/apple/icon.icon
cp -r src-tauri/icons/icon.icon src-tauri/gen/apple/icon.icon
echo "Synced iOS app icon (icon.icon) to gen/apple/"

echo "Applied iOS settings (display: '$DISPLAY_NAME')"
4 changes: 4 additions & 0 deletions src-tauri/gen/apple/Scriptio.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
3D7539C77E3E7B39D3773069 /* WebKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7A8413995900F72FAD7A3130 /* WebKit.framework */; };
6733D0DFCF58CE1D20CE0016 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 1E3399965F93C0A48BEFE2C4 /* LaunchScreen.storyboard */; };
6A1D956C950B8B06708E767A /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 0667FF9D3F0DB024724F0BEA /* Assets.xcassets */; };
1C0BEEF0123456789ABCDEF0 /* icon.icon in Resources */ = {isa = PBXBuildFile; fileRef = 1C012345678901234567ABCD /* icon.icon */; };
7846971724947E89AFFDC51B /* assets in Resources */ = {isa = PBXBuildFile; fileRef = F5DAA82DE3DAD01B3E1C1C65 /* assets */; };
79C9B60DDE83BD0684D6BC99 /* main.mm in Sources */ = {isa = PBXBuildFile; fileRef = D57601982FF7EC1800EEF60E /* main.mm */; };
B9300403511F50982F70659B /* MetalKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 21458003D850EB3F53C747A5 /* MetalKit.framework */; };
Expand All @@ -23,6 +24,7 @@

/* Begin PBXFileReference section */
0667FF9D3F0DB024724F0BEA /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
1C012345678901234567ABCD /* icon.icon */ = {isa = PBXFileReference; lastKnownFileType = folder.iconcomposer.icon; path = icon.icon; sourceTree = "<group>"; };
1B4BDB9CCC6ACDA2FA3220A0 /* Scriptio_iOS.app */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.application; path = Scriptio_iOS.app; sourceTree = BUILT_PRODUCTS_DIR; };
1E3399965F93C0A48BEFE2C4 /* LaunchScreen.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = LaunchScreen.storyboard; sourceTree = "<group>"; };
1F8860DCD301847213FCA26D /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
Expand Down Expand Up @@ -117,6 +119,7 @@
children = (
F5DAA82DE3DAD01B3E1C1C65 /* assets */,
0667FF9D3F0DB024724F0BEA /* Assets.xcassets */,
1C012345678901234567ABCD /* icon.icon */,
1E3399965F93C0A48BEFE2C4 /* LaunchScreen.storyboard */,
3BB4DB253825EB083CAE5A83 /* Externals */,
739C81ACF40CC5D14E65ECBC /* Scriptio_iOS */,
Expand Down Expand Up @@ -212,6 +215,7 @@
buildActionMask = 2147483647;
files = (
6A1D956C950B8B06708E767A /* Assets.xcassets in Resources */,
1C0BEEF0123456789ABCDEF0 /* icon.icon in Resources */,
6733D0DFCF58CE1D20CE0016 /* LaunchScreen.storyboard in Resources */,
7846971724947E89AFFDC51B /* assets in Resources */,
);
Expand Down
Binary file added src-tauri/icons-staging/Assets.car
Binary file not shown.
Binary file added src-tauri/icons/Assets.car
Binary file not shown.
2 changes: 1 addition & 1 deletion src-tauri/tauri.conf.json
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,6 @@
"macOS": {
"minimumSystemVersion": "13.0"
},
"icon": ["icons/32x32.png", "icons/128x128.png", "icons/128x128@2x.png", "icons/icon.icns", "icons/icon.icon", "icons/icon.ico"]
"icon": ["icons/32x32.png", "icons/128x128.png", "icons/128x128@2x.png", "icons/icon.icns", "icons/Assets.car", "icons/icon.ico"]
}
}
Loading