From dc42d6a3759ec959fc12127c88d12e5840ce9300 Mon Sep 17 00:00:00 2001 From: enricobuehler Date: Wed, 10 Jun 2026 16:15:15 +0200 Subject: [PATCH] feat: app icon (Icon Composer) + Xcode project settings for it MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- ...unktfunk_Minimal_Icon-Composer_Layer-1.svg | 1 + ...unktfunk_Minimal_Icon-Composer_Layer-2.svg | 1 + ...ktfunk_Minimal_Icon-Composer_Layer-3 2.svg | 1 + .../apple/App/punktfunk_Logo.icon/icon.json | 137 ++++++++++++++++++ .../apple/Punktfunk.xcodeproj/project.pbxproj | 88 ++++++++++- .../xcshareddata/xcschemes/Punktfunk.xcscheme | 6 +- 6 files changed, 221 insertions(+), 13 deletions(-) create mode 100644 clients/apple/App/punktfunk_Logo.icon/Assets/punktfunk_Minimal_Icon-Composer_Layer-1.svg create mode 100644 clients/apple/App/punktfunk_Logo.icon/Assets/punktfunk_Minimal_Icon-Composer_Layer-2.svg create mode 100644 clients/apple/App/punktfunk_Logo.icon/Assets/punktfunk_Minimal_Icon-Composer_Layer-3 2.svg create mode 100644 clients/apple/App/punktfunk_Logo.icon/icon.json diff --git a/clients/apple/App/punktfunk_Logo.icon/Assets/punktfunk_Minimal_Icon-Composer_Layer-1.svg b/clients/apple/App/punktfunk_Logo.icon/Assets/punktfunk_Minimal_Icon-Composer_Layer-1.svg new file mode 100644 index 0000000..994e712 --- /dev/null +++ b/clients/apple/App/punktfunk_Logo.icon/Assets/punktfunk_Minimal_Icon-Composer_Layer-1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/clients/apple/App/punktfunk_Logo.icon/Assets/punktfunk_Minimal_Icon-Composer_Layer-2.svg b/clients/apple/App/punktfunk_Logo.icon/Assets/punktfunk_Minimal_Icon-Composer_Layer-2.svg new file mode 100644 index 0000000..387f9ba --- /dev/null +++ b/clients/apple/App/punktfunk_Logo.icon/Assets/punktfunk_Minimal_Icon-Composer_Layer-2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/clients/apple/App/punktfunk_Logo.icon/Assets/punktfunk_Minimal_Icon-Composer_Layer-3 2.svg b/clients/apple/App/punktfunk_Logo.icon/Assets/punktfunk_Minimal_Icon-Composer_Layer-3 2.svg new file mode 100644 index 0000000..553bbfc --- /dev/null +++ b/clients/apple/App/punktfunk_Logo.icon/Assets/punktfunk_Minimal_Icon-Composer_Layer-3 2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/clients/apple/App/punktfunk_Logo.icon/icon.json b/clients/apple/App/punktfunk_Logo.icon/icon.json new file mode 100644 index 0000000..41bdb41 --- /dev/null +++ b/clients/apple/App/punktfunk_Logo.icon/icon.json @@ -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" + } +} \ No newline at end of file diff --git a/clients/apple/Punktfunk.xcodeproj/project.pbxproj b/clients/apple/Punktfunk.xcodeproj/project.pbxproj index 898379d..78d594f 100644 --- a/clients/apple/Punktfunk.xcodeproj/project.pbxproj +++ b/clients/apple/Punktfunk.xcodeproj/project.pbxproj @@ -15,8 +15,16 @@ /* End PBXFileReference section */ /* Begin PBXFileSystemSynchronizedRootGroup section */ - AA0000000000000000000002 /* App */ = {isa = PBXFileSystemSynchronizedRootGroup; path = App; sourceTree = ""; }; - AA0000000000000000000003 /* PunktfunkClient */ = {isa = PBXFileSystemSynchronizedRootGroup; path = Sources/PunktfunkClient; sourceTree = ""; }; + AA0000000000000000000002 /* App */ = { + isa = PBXFileSystemSynchronizedRootGroup; + path = App; + sourceTree = ""; + }; + AA0000000000000000000003 /* Sources/PunktfunkClient */ = { + isa = PBXFileSystemSynchronizedRootGroup; + path = Sources/PunktfunkClient; + sourceTree = ""; + }; /* End PBXFileSystemSynchronizedRootGroup section */ /* Begin PBXFrameworksBuildPhase section */ @@ -35,7 +43,7 @@ isa = PBXGroup; children = ( AA0000000000000000000002 /* App */, - AA0000000000000000000003 /* PunktfunkClient */, + AA0000000000000000000003 /* Sources/PunktfunkClient */, AA0000000000000000000008 /* Products */, ); sourceTree = ""; @@ -65,7 +73,7 @@ ); fileSystemSynchronizedGroups = ( AA0000000000000000000002 /* App */, - AA0000000000000000000003 /* PunktfunkClient */, + AA0000000000000000000003 /* Sources/PunktfunkClient */, ); name = Punktfunk; packageProductDependencies = ( @@ -82,7 +90,7 @@ isa = PBXProject; attributes = { BuildIndependentTargetsInParallel = 1; - LastUpgradeCheck = 2600; + LastUpgradeCheck = 2650; TargetAttributes = { AA0000000000000000000009 = { CreatedOnToolsVersion = 26.0; @@ -135,24 +143,53 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; COPY_PHASE_STRIP = NO; + DEAD_CODE_STRIPPING = YES; DEBUG_INFORMATION_FORMAT = dwarf; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; + ENABLE_USER_SCRIPT_SANDBOXING = YES; GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = ( "DEBUG=1", "$(inherited)", ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; MACOSX_DEPLOYMENT_TARGET = 14.0; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = macosx; + STRING_CATALOG_GENERATE_SYMBOLS = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)"; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; }; @@ -162,17 +199,46 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; COPY_PHASE_STRIP = NO; + DEAD_CODE_STRIPPING = YES; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = YES; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; MACOSX_DEPLOYMENT_TARGET = 14.0; MTL_ENABLE_DEBUG_INFO = NO; MTL_FAST_MATH = YES; SDKROOT = macosx; + STRING_CATALOG_GENERATE_SYMBOLS = YES; SWIFT_COMPILATION_MODE = wholemodule; SWIFT_OPTIMIZATION_LEVEL = "-O"; }; @@ -181,12 +247,15 @@ AA0000000000000000000012 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_APPICON_NAME = punktfunk_Logo; CODE_SIGN_IDENTITY = "-"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; CURRENT_PROJECT_VERSION = 1; + DEAD_CODE_STRIPPING = YES; GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_KEY_CFBundleDisplayName = "Punktfunkempfänger"; + INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.utilities"; INFOPLIST_KEY_NSHumanReadableCopyright = ""; INFOPLIST_KEY_NSPrincipalClass = NSApplication; LD_RUNPATH_SEARCH_PATHS = ( @@ -204,12 +273,15 @@ AA0000000000000000000013 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_APPICON_NAME = punktfunk_Logo; CODE_SIGN_IDENTITY = "-"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; CURRENT_PROJECT_VERSION = 1; + DEAD_CODE_STRIPPING = YES; GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_KEY_CFBundleDisplayName = "Punktfunkempfänger"; + INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.utilities"; INFOPLIST_KEY_NSHumanReadableCopyright = ""; INFOPLIST_KEY_NSPrincipalClass = NSApplication; LD_RUNPATH_SEARCH_PATHS = ( @@ -250,7 +322,7 @@ /* Begin XCLocalSwiftPackageReference section */ AA000000000000000000000F /* XCLocalSwiftPackageReference "." */ = { isa = XCLocalSwiftPackageReference; - relativePath = "."; + relativePath = .; }; /* End XCLocalSwiftPackageReference section */ diff --git a/clients/apple/Punktfunk.xcodeproj/xcshareddata/xcschemes/Punktfunk.xcscheme b/clients/apple/Punktfunk.xcodeproj/xcshareddata/xcschemes/Punktfunk.xcscheme index d947e69..cdbfbd1 100644 --- a/clients/apple/Punktfunk.xcodeproj/xcshareddata/xcschemes/Punktfunk.xcscheme +++ b/clients/apple/Punktfunk.xcodeproj/xcshareddata/xcschemes/Punktfunk.xcscheme @@ -1,6 +1,6 @@ - - -