Use the new Icon Composer .icon format. (#4612)

This commit is contained in:
Doug
2025-10-10 20:00:03 +01:00
committed by GitHub
parent a49cc47936
commit 6cf7e90b3b
18 changed files with 200 additions and 44 deletions

View File

@@ -607,6 +607,7 @@
6C34237AFB808E38FC8776B9 /* RoomStateEventStringBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8D55702474F279D910D2D162 /* RoomStateEventStringBuilder.swift */; };
6C98153D60FF9B648C166C27 /* TimelineItemMenu.swift in Sources */ = {isa = PBXBuildFile; fileRef = 91FFE1F410969ECB23FE9BB2 /* TimelineItemMenu.swift */; };
6CAADDC6318E41C7D7AA9526 /* SpaceScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = 646B50583A2CE6DA67F7739A /* SpaceScreen.swift */; };
6CBC544A7CC4DDDBDED4D0A6 /* AppIcon.icon in Resources */ = {isa = PBXBuildFile; fileRef = 4B1F71AC585827E6C416C15A /* AppIcon.icon */; };
6CD61FAF03E8986523C2ABB8 /* StartChatScreenCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = B3005886F00029F058DB62BE /* StartChatScreenCoordinator.swift */; };
6DC8E43BA04AC2AC4EB2EB97 /* AnalyticsPromptScreenModels.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18486B87745B1811E7FBD3D2 /* AnalyticsPromptScreenModels.swift */; };
6E03A710799E6C65C0AB36BC /* TargetConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5D829FD8958376614504B18 /* TargetConfiguration.swift */; };
@@ -1913,6 +1914,7 @@
4A2B5274C1D3D2999D643786 /* EncryptionResetPasswordScreenViewModelProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EncryptionResetPasswordScreenViewModelProtocol.swift; sourceTree = "<group>"; };
4A5B4CD611DE7E94F5BA87B2 /* AppLockTimerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppLockTimerTests.swift; sourceTree = "<group>"; };
4AB29A2D95D3469B5F016655 /* SecureBackupControllerMock.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecureBackupControllerMock.swift; sourceTree = "<group>"; };
4B1F71AC585827E6C416C15A /* AppIcon.icon */ = {isa = PBXFileReference; path = AppIcon.icon; sourceTree = "<group>"; };
4B2B564CA6570E1487A7C7CC /* SpaceRoomListProxy.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SpaceRoomListProxy.swift; sourceTree = "<group>"; };
4B2D4EEBE8C098BBADD10939 /* SecureBackupKeyBackupScreenCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecureBackupKeyBackupScreenCoordinator.swift; sourceTree = "<group>"; };
4B41FABA2B0AEF4389986495 /* LoginMode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginMode.swift; sourceTree = "<group>"; };
@@ -3369,6 +3371,7 @@
2774D635E78D8B98390EA694 /* Resources */ = {
isa = PBXGroup;
children = (
4B1F71AC585827E6C416C15A /* AppIcon.icon */,
01C4C7DB37597D7D8379511A /* Assets.xcassets */,
A0C06C0F6A8621B22BFAEB56 /* Localizations */,
8AEA6A91159FA0D3EAFCCB0D /* Sounds */,
@@ -6987,6 +6990,7 @@
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
6CBC544A7CC4DDDBDED4D0A6 /* AppIcon.icon in Resources */,
992F5E750F5030C4BA2D0D03 /* Assets.xcassets in Resources */,
2CA6ABBC9A88EB89EA52FCCB /* ConfettiScene.scn in Resources */,
B6DA66EFC13A90846B625836 /* InfoPlist.strings in Resources */,

View File

Before

Width:  |  Height:  |  Size: 244 KiB

After

Width:  |  Height:  |  Size: 244 KiB

View File

@@ -0,0 +1,27 @@
{
"fill" : "automatic",
"groups" : [
{
"layers" : [
{
"glass" : false,
"image-name" : "AppIcon.png",
"name" : "AppIcon"
}
],
"name" : "Background",
"shadow" : {
"kind" : "none",
"opacity" : 0.5
},
"specular" : false,
"translucency" : {
"enabled" : false,
"value" : 0.5
}
}
],
"supported-platforms" : {
"squares" : "shared"
}
}

View File

@@ -1,14 +0,0 @@
{
"images" : [
{
"filename" : "AppIcon.png",
"idiom" : "universal",
"platform" : "ios",
"size" : "1024x1024"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@@ -140,12 +140,12 @@ GEM
google-apis-core (>= 0.11.0, < 2.a)
google-apis-storage_v1 (0.31.0)
google-apis-core (>= 0.11.0, < 2.a)
google-cloud-core (1.8.0)
google-cloud-core (1.7.1)
google-cloud-env (>= 1.0, < 3.a)
google-cloud-errors (~> 1.0)
google-cloud-env (1.6.0)
faraday (>= 0.17.3, < 3.0)
google-cloud-errors (1.5.0)
google-cloud-errors (1.4.0)
google-cloud-storage (1.47.0)
addressable (~> 2.8)
digest-crc (~> 0.4)
@@ -172,7 +172,7 @@ GEM
logger (1.7.0)
mini_magick (4.13.2)
mini_mime (1.1.5)
multi_json (1.17.0)
multi_json (1.15.0)
multipart-post (2.4.1)
mutex_m (0.3.0)
nanaimo (0.4.0)
@@ -182,7 +182,7 @@ GEM
os (1.1.4)
ostruct (0.6.3)
plist (3.7.2)
public_suffix (6.0.2)
public_suffix (5.1.1)
rake (13.3.0)
representable (3.2.0)
declarative (< 0.1.0)
@@ -195,10 +195,10 @@ GEM
rubyzip (2.4.1)
security (0.1.5)
semantic (1.6.1)
signet (0.21.0)
signet (0.19.0)
addressable (~> 2.8)
faraday (>= 0.17.5, < 3.a)
jwt (>= 1.5, < 4.0)
jwt (>= 1.5, < 3.0)
multi_json (~> 1.10)
simctl (1.6.10)
CFPropertyList

View File

@@ -53,12 +53,13 @@ struct BannerImage: View {
Text(text)
.foregroundColor(.white)
.font(.system(size: 140))
.font(.system(size: 135, weight: .medium, design: .rounded))
.lineLimit(1)
.minimumScaleFactor(0.5)
.padding(.horizontal, image.size.width * 0.1)
.frame(maxWidth: .infinity)
.background(Color.black.opacity(0.5))
.padding(.top, 10)
.padding(.bottom, 30)
}
.frame(width: image.size.width, height: image.size.height)
}

View File

@@ -1,6 +0,0 @@
{
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 632 KiB

View File

@@ -1,14 +0,0 @@
{
"images" : [
{
"filename" : "AppIcon.png",
"idiom" : "universal",
"platform" : "ios",
"size" : "1024x1024"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 387 KiB

View File

@@ -0,0 +1,7 @@
<?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 1024 200" 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;">
<g transform="matrix(1,0,0,0.671141,0,-487.248)">
<rect x="0" y="726" width="1024" height="298"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 572 B

View File

@@ -0,0 +1,6 @@
<svg width="542" height="542" viewBox="0 0 542 542" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M189.653 33.3829C189.653 15.4234 204.243 0.864411 222.24 0.86441C344.217 0.864405 443.099 99.5416 443.099 221.266C443.099 239.225 428.51 253.784 410.513 253.784C392.517 253.784 377.927 239.225 377.927 221.266C377.927 135.46 308.224 65.9013 222.24 65.9013C204.243 65.9013 189.653 51.3423 189.653 33.3829Z" fill="white"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M508.55 188.747C526.546 188.747 541.136 203.306 541.136 221.266C541.136 342.99 442.253 441.667 320.276 441.667C302.279 441.667 287.69 427.109 287.69 409.149C287.69 391.19 302.279 376.631 320.276 376.631C406.26 376.631 475.964 307.071 475.964 221.266C475.964 203.306 490.553 188.747 508.55 188.747Z" fill="white"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M352.859 508.612C352.859 526.572 338.27 541.131 320.273 541.131C198.295 541.131 99.4131 442.454 99.4131 320.729C99.4131 302.77 114.002 288.211 131.999 288.211C149.996 288.211 164.585 302.77 164.585 320.729C164.585 406.535 234.289 476.094 320.273 476.094C338.27 476.094 352.859 490.653 352.859 508.612Z" fill="white"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M33.4508 353.248C15.454 353.248 0.864717 338.689 0.864716 320.729C0.864705 199.005 99.7471 100.328 221.725 100.328C239.721 100.328 254.311 114.887 254.311 132.846C254.311 150.806 239.721 165.365 221.725 165.365C135.741 165.365 66.0369 234.924 66.0369 320.729C66.0369 338.689 51.4476 353.248 33.4508 353.248Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@@ -0,0 +1,10 @@
<svg width="890" height="890" viewBox="0 0 890 890" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M445 890C690.767 890 890 690.767 890 445C890 199.233 690.767 0 445 0C199.233 0 0 199.233 0 445C0 690.767 199.233 890 445 890Z" fill="#567871"/>
<path d="M445 4.97949C688.017 4.97949 885.021 201.983 885.021 445C885.021 688.017 688.017 885.021 445 885.021C201.983 885.021 4.97949 688.017 4.97949 445C4.97951 201.983 201.983 4.97951 445 4.97949Z" stroke="url(#paint0_linear_1_19)" stroke-opacity="0.4" stroke-width="9.95804" style="mix-blend-mode:hard-light"/>
<defs>
<linearGradient id="paint0_linear_1_19" x1="445" y1="0" x2="445" y2="890" gradientUnits="userSpaceOnUse">
<stop stop-color="white"/>
<stop offset="1" stop-opacity="0.5"/>
</linearGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 818 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

View File

@@ -0,0 +1,132 @@
{
"fill" : "automatic",
"groups" : [
{
"layers" : [
{
"glass" : true,
"image-name" : "Shapes.svg",
"name" : "Shapes",
"position-specializations" : [
{
"idiom" : "square",
"value" : {
"scale" : 0.93,
"translation-in-points" : [
0,
0
]
}
}
]
}
],
"name" : "Shapes",
"shadow" : {
"kind" : "neutral",
"opacity" : 0.5
},
"specular" : true,
"translucency" : {
"enabled" : true,
"value" : 0.5
}
},
{
"blur-material" : 0.5,
"layers" : [
{
"glass" : true,
"image-name" : "Version.png",
"name" : "Version"
},
{
"blend-mode" : "normal",
"fill" : {
"solid" : "srgb:0.50711,0.71284,0.69177,1.00000"
},
"glass" : true,
"image-name" : "Banner.svg",
"name" : "Banner",
"opacity" : 0.25,
"position" : {
"scale" : 1,
"translation-in-points" : [
0,
418
]
}
}
],
"name" : "Banner",
"shadow" : {
"kind" : "neutral",
"opacity" : 0.5
},
"specular" : false,
"translucency" : {
"enabled" : false,
"value" : 0.5
}
},
{
"layers" : [
{
"glass" : true,
"hidden-specializations" : [
{
"idiom" : "square",
"value" : false
}
],
"image-name" : "Surface.svg",
"name" : "Surface",
"position-specializations" : [
{
"idiom" : "square",
"value" : {
"scale" : 0.93,
"translation-in-points" : [
0,
0
]
}
}
]
}
],
"name" : "Surface",
"shadow" : {
"kind" : "neutral",
"opacity" : 0.5
},
"specular" : true,
"translucency" : {
"enabled" : true,
"value" : 0.5
}
},
{
"layers" : [
{
"glass" : false,
"image-name" : "Background.png",
"name" : "Background"
}
],
"name" : "Background",
"shadow" : {
"kind" : "none",
"opacity" : 0.5
},
"specular" : false,
"translucency" : {
"enabled" : false,
"value" : 0.5
}
}
],
"supported-platforms" : {
"squares" : "shared"
}
}

View File

@@ -156,7 +156,7 @@ lane :config_nightly do |options|
release_version = get_version_number(target: "ElementX")
Dir.chdir ".." do
sh("swift run tools app-icon-banner Variants/Nightly/Resources/Nightly.xcassets/NightlyAppIcon.appiconset/AppIcon.png --banner-text '#{release_version} (#{build_number})'")
sh("swift run tools app-icon-banner Variants/Nightly/Resources/NightlyAppIcon.icon/Assets/Version.png --banner-text '#{release_version} (#{build_number})'")
end
end

View File

@@ -41,6 +41,9 @@ options:
- Other
- UITests
- AccessibilityTests
fileTypes:
icon:
file: true # https://github.com/yonaskolb/XcodeGen/issues/1556
postGenCommand: cd Tools/XcodeGen && sh postGenCommand.sh
settings: