feat: app icon (Icon Composer) + Xcode project settings for it

punktfunk_Logo.icon (Icon Composer 2.0) in App/, ASSETCATALOG_COMPILER_APPICON_NAME set.
Compiles with Xcode 27 beta's actool; Xcode 26.5's actool crashes on EVERY .icon file
(known regression, Apple FB20183399, expo/expo#46121) — build with the beta (or 26.4.1)
until a 26.x fix lands. The icon itself is fine.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-06-10 16:15:15 +02:00
parent b21fffc3d1
commit dc42d6a375
6 changed files with 221 additions and 13 deletions
@@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg width="100%" height="100%" viewBox="0 0 1001 1000" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"><rect id="punktfunk_Minimal_Icon-Composer_Layer-1" x="0.299" y="0" width="1000" height="1000" style="fill:none;"/><g><path d="M403.037,791.672c107.586,0 194.41,-86.824 194.41,-194.41c0,-107.586 -86.824,-194.41 -194.41,-194.41c-107.586,0 -194.41,86.824 -194.41,194.41c0,107.586 86.824,194.41 194.41,194.41Z" style="fill:#a79ff8;fill-rule:nonzero;"/></g></svg>

After

Width:  |  Height:  |  Size: 802 B

@@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg width="100%" height="100%" viewBox="0 0 1001 1000" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"><rect id="punktfunk_Minimal_Icon-Composer_Layer-2" x="0.66" y="0" width="1000" height="1000" style="fill:none;"/><g><path d="M735.276,540.321c76.075,-76.075 76.075,-198.862 0,-274.937c-76.075,-76.075 -198.862,-76.075 -274.937,0c-76.075,76.075 -76.075,198.862 0,274.937c76.075,76.075 198.862,76.075 274.937,0Z" style="fill:#6c5bf3;fill-rule:nonzero;"/></g></svg>

After

Width:  |  Height:  |  Size: 805 B

@@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg width="100%" height="100%" viewBox="0 0 1001 1000" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"><rect id="punktfunk_Minimal_Icon-Composer_Layer-3" x="0.276" y="0" width="1000" height="1000" style="fill:none;"/><g><path d="M647.84,590.737c-64.853,17.403 -136.871,0.597 -187.885,-50.416c-51.013,-51.013 -67.819,-123.032 -50.416,-187.885c64.853,-17.403 136.871,-0.597 187.885,50.416c51.013,51.013 67.819,123.032 50.416,187.885Z" style="fill:#d2c9fb;"/></g></svg>

After

Width:  |  Height:  |  Size: 807 B

@@ -0,0 +1,137 @@
{
"features" : [
"refractivity",
"specular-location"
],
"fill" : {
"automatic-gradient" : "display-p3:0.39502,0.30640,0.96338,1.00000"
},
"groups" : [
{
"layers" : [
{
"fill-specializations" : [
{
"appearance" : "dark",
"value" : {
"linear-gradient" : [
"display-p3:0.50857,0.42359,0.99951,1.00000",
"display-p3:0.79872,0.76251,0.99951,1.00000"
],
"orientation" : {
"start" : {
"x" : 0.760399408577226,
"y" : 0.23565405496698932
},
"stop" : {
"x" : 0.22975170002255774,
"y" : 0.7672556579447137
}
}
}
}
],
"image-name" : "punktfunk_Minimal_Icon-Composer_Layer-3 2.svg",
"name" : "punktfunk_Minimal_Icon-Composer_Layer-3 2"
}
],
"name" : "Group",
"refractivity" : {
"depth" : 0.0419921875,
"enabled" : true,
"strength" : 0.5463671875
},
"shadow" : {
"kind" : "neutral",
"opacity" : 0.6
},
"translucency" : {
"enabled" : true,
"value" : 0.6
}
},
{
"blur-material" : null,
"layers" : [
{
"fill-specializations" : [
{
"appearance" : "dark",
"value" : {
"solid" : "display-p3:0.38965,0.33936,0.91504,1.00000"
}
}
],
"image-name" : "punktfunk_Minimal_Icon-Composer_Layer-2.svg",
"name" : "punktfunk_Minimal_Icon-Composer_Layer-2"
}
],
"lighting" : "individual",
"name" : "Group",
"refractivity" : {
"depth" : 0.1,
"enabled" : false,
"strength" : 0.57
},
"shadow" : {
"kind" : "layer-color",
"opacity" : 0.56
},
"specular" : true,
"translucency" : {
"enabled" : true,
"value" : 1
}
},
{
"blur-material" : 0,
"layers" : [
{
"fill-specializations" : [
{
"appearance" : "dark",
"value" : {
"automatic-gradient" : "display-p3:0.38965,0.33936,0.91504,1.00000"
}
}
],
"image-name" : "punktfunk_Minimal_Icon-Composer_Layer-1.svg",
"name" : "punktfunk_Minimal_Icon-Composer_Layer-1"
}
],
"refractivity" : {
"depth" : 0.5808984375,
"enabled" : true,
"strength" : 0.2508984375
},
"shadow" : {
"kind" : "neutral",
"opacity" : 0.6
},
"specular" : "outside",
"translucency" : {
"enabled" : true,
"value" : 0.53
}
},
{
"layers" : [
],
"shadow" : {
"kind" : "neutral",
"opacity" : 0.6
},
"translucency" : {
"enabled" : true,
"value" : 0.2
}
}
],
"supported-platforms" : {
"circles" : [
"watchOS"
],
"squares" : "shared"
}
}