From a2aa13941df980966b098aa0ef71515bf44a57c5 Mon Sep 17 00:00:00 2001 From: Chung Shing Hin Date: Sat, 20 Sep 2025 15:15:42 +0800 Subject: [PATCH 1/4] xcode: liquid glass app icon --- Code.xcodeproj/project.pbxproj | 14 +- .../AppIcon.appiconset/Contents.json | 122 ------------------ .../AppIcon.appiconset/Icon-App-20x20@1x.png | Bin 370 -> 0 bytes .../AppIcon.appiconset/Icon-App-20x20@2x.png | Bin 617 -> 0 bytes .../AppIcon.appiconset/Icon-App-20x20@3x.png | Bin 818 -> 0 bytes .../AppIcon.appiconset/Icon-App-29x29@1x.png | Bin 528 -> 0 bytes .../AppIcon.appiconset/Icon-App-29x29@2x.png | Bin 840 -> 0 bytes .../AppIcon.appiconset/Icon-App-29x29@3x.png | Bin 1343 -> 0 bytes .../AppIcon.appiconset/Icon-App-40x40@1x.png | Bin 617 -> 0 bytes .../AppIcon.appiconset/Icon-App-40x40@2x.png | Bin 1216 -> 0 bytes .../AppIcon.appiconset/Icon-App-40x40@3x.png | Bin 1803 -> 0 bytes .../AppIcon.appiconset/Icon-App-60x60@2x.png | Bin 1803 -> 0 bytes .../AppIcon.appiconset/Icon-App-60x60@3x.png | Bin 3044 -> 0 bytes .../AppIcon.appiconset/Icon-App-76x76@1x.png | Bin 4140 -> 0 bytes .../AppIcon.appiconset/Icon-App-76x76@2x.png | Bin 2508 -> 0 bytes .../Icon-App-83.5x83.5@2x.png | Bin 2842 -> 0 bytes .../AppIcon.appiconset/ItunesArtwork@2x.png | Bin 18883 -> 0 bytes CodeApp/Iconv2.icon/Assets/Rectangle 2-2.svg | 3 + CodeApp/Iconv2.icon/icon.json | 37 ++++++ 19 files changed, 50 insertions(+), 126 deletions(-) delete mode 100644 CodeApp/Assets.xcassets/AppIcon.appiconset/Contents.json delete mode 100644 CodeApp/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png delete mode 100644 CodeApp/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png delete mode 100644 CodeApp/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png delete mode 100644 CodeApp/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png delete mode 100644 CodeApp/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png delete mode 100644 CodeApp/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png delete mode 100644 CodeApp/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png delete mode 100644 CodeApp/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png delete mode 100644 CodeApp/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png delete mode 100644 CodeApp/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png delete mode 100644 CodeApp/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png delete mode 100644 CodeApp/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png delete mode 100644 CodeApp/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png delete mode 100644 CodeApp/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png delete mode 100644 CodeApp/Assets.xcassets/AppIcon.appiconset/ItunesArtwork@2x.png create mode 100644 CodeApp/Iconv2.icon/Assets/Rectangle 2-2.svg create mode 100644 CodeApp/Iconv2.icon/icon.json diff --git a/Code.xcodeproj/project.pbxproj b/Code.xcodeproj/project.pbxproj index cf20e9d7a..2d8d00d92 100644 --- a/Code.xcodeproj/project.pbxproj +++ b/Code.xcodeproj/project.pbxproj @@ -551,6 +551,8 @@ 9474D2952B6B461E00CCC530 /* MonacoImplementation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9474D2932B6B461E00CCC530 /* MonacoImplementation.swift */; }; 9474D2972B6B4B1300CCC530 /* EditorImplemenationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9474D2962B6B4B1300CCC530 /* EditorImplemenationView.swift */; }; 9474D2982B6B4B1300CCC530 /* EditorImplemenationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9474D2962B6B4B1300CCC530 /* EditorImplemenationView.swift */; }; + 947515E42E7E886A00822B33 /* Iconv2.icon in Resources */ = {isa = PBXBuildFile; fileRef = 947515E32E7E886A00822B33 /* Iconv2.icon */; }; + 947515E52E7E886A00822B33 /* Iconv2.icon in Resources */ = {isa = PBXBuildFile; fileRef = 947515E32E7E886A00822B33 /* Iconv2.icon */; }; 94795C452931489C0057C12F /* ActivityBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94795C442931489C0057C12F /* ActivityBar.swift */; }; 94795C462931489C0057C12F /* ActivityBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94795C442931489C0057C12F /* ActivityBar.swift */; }; 94795C4829314A0A0057C12F /* CompactSidebar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94795C4729314A0A0057C12F /* CompactSidebar.swift */; }; @@ -1824,6 +1826,7 @@ 9474D2902B6B454900CCC530 /* EditorImplementation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditorImplementation.swift; sourceTree = ""; }; 9474D2932B6B461E00CCC530 /* MonacoImplementation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MonacoImplementation.swift; sourceTree = ""; }; 9474D2962B6B4B1300CCC530 /* EditorImplemenationView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditorImplemenationView.swift; sourceTree = ""; }; + 947515E32E7E886A00822B33 /* Iconv2.icon */ = {isa = PBXFileReference; lastKnownFileType = folder.iconcomposer.icon; path = Iconv2.icon; sourceTree = ""; }; 94795C442931489C0057C12F /* ActivityBar.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ActivityBar.swift; sourceTree = ""; }; 94795C4729314A0A0057C12F /* CompactSidebar.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CompactSidebar.swift; sourceTree = ""; }; 94795C4A293259080057C12F /* Encoding.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Encoding.swift; sourceTree = ""; }; @@ -2269,6 +2272,7 @@ 94A5682D257CC367008A6530 /* Localization */, 94A777AE257B678A008FE7B2 /* Extensions */, 94A77799257ABC16008FE7B2 /* Utilities */, + 947515E32E7E886A00822B33 /* Iconv2.icon */, 944EEBF32563C381009D77FE /* CodeApp.swift */, 944EEBF72563C386009D77FE /* Assets.xcassets */, 94A56834257CC60E008A6530 /* LaunchScreen.storyboard */, @@ -3487,6 +3491,7 @@ 941969A0280316C7008AAEB2 /* commandDictionary.plist in Resources */, 941969A1280316C7008AAEB2 /* ClangLib in Resources */, 941969A2280316C7008AAEB2 /* Settings.bundle in Resources */, + 947515E42E7E886A00822B33 /* Iconv2.icon in Resources */, 941969A3280316C7008AAEB2 /* extraCommandsDictionary.plist in Resources */, 941969A4280316C7008AAEB2 /* npm.bundle in Resources */, 941969A6280316C7008AAEB2 /* terminal.bundle in Resources */, @@ -3515,6 +3520,7 @@ files = ( 9424437F2C6F2DF100BC862F /* python-lsp in Resources */, 94127C40280335C8008C7F82 /* Themes in Resources */, + 947515E52E7E886A00822B33 /* Iconv2.icon in Resources */, 944EEBFB2563C386009D77FE /* Preview Assets.xcassets in Resources */, 94A56830257CC3A1008A6530 /* Localizable.strings in Resources */, 94252059263E103E0029427A /* InfoPlist.strings in Resources */, @@ -4011,7 +4017,7 @@ 94196B16280316C7008AAEB2 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_APPICON_NAME = Iconv2; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = NO; CLANG_ENABLE_MODULES = YES; @@ -4058,7 +4064,7 @@ 94196B17280316C7008AAEB2 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_APPICON_NAME = Iconv2; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = NO; CLANG_ENABLE_MODULES = YES; @@ -4297,7 +4303,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_APPICON_NAME = Iconv2; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = "Code App.entitlements"; @@ -4343,7 +4349,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_APPICON_NAME = Iconv2; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = "Code App.entitlements"; diff --git a/CodeApp/Assets.xcassets/AppIcon.appiconset/Contents.json b/CodeApp/Assets.xcassets/AppIcon.appiconset/Contents.json deleted file mode 100644 index 1e2d7086b..000000000 --- a/CodeApp/Assets.xcassets/AppIcon.appiconset/Contents.json +++ /dev/null @@ -1,122 +0,0 @@ -{ - "images" : [ - { - "filename" : "Icon-App-20x20@2x.png", - "idiom" : "iphone", - "scale" : "2x", - "size" : "20x20" - }, - { - "filename" : "Icon-App-20x20@3x.png", - "idiom" : "iphone", - "scale" : "3x", - "size" : "20x20" - }, - { - "filename" : "Icon-App-29x29@1x.png", - "idiom" : "iphone", - "scale" : "1x", - "size" : "29x29" - }, - { - "filename" : "Icon-App-29x29@2x.png", - "idiom" : "iphone", - "scale" : "2x", - "size" : "29x29" - }, - { - "filename" : "Icon-App-29x29@3x.png", - "idiom" : "iphone", - "scale" : "3x", - "size" : "29x29" - }, - { - "filename" : "Icon-App-40x40@2x.png", - "idiom" : "iphone", - "scale" : "2x", - "size" : "40x40" - }, - { - "filename" : "Icon-App-40x40@3x.png", - "idiom" : "iphone", - "scale" : "3x", - "size" : "40x40" - }, - { - "filename" : "Icon-App-60x60@2x.png", - "idiom" : "iphone", - "scale" : "2x", - "size" : "60x60" - }, - { - "filename" : "Icon-App-60x60@3x.png", - "idiom" : "iphone", - "scale" : "3x", - "size" : "60x60" - }, - { - "filename" : "Icon-App-20x20@1x.png", - "idiom" : "ipad", - "scale" : "1x", - "size" : "20x20" - }, - { - "filename" : "Icon-App-20x20@2x.png", - "idiom" : "ipad", - "scale" : "2x", - "size" : "20x20" - }, - { - "filename" : "Icon-App-29x29@1x.png", - "idiom" : "ipad", - "scale" : "1x", - "size" : "29x29" - }, - { - "filename" : "Icon-App-29x29@2x.png", - "idiom" : "ipad", - "scale" : "2x", - "size" : "29x29" - }, - { - "filename" : "Icon-App-40x40@1x.png", - "idiom" : "ipad", - "scale" : "1x", - "size" : "40x40" - }, - { - "filename" : "Icon-App-40x40@2x.png", - "idiom" : "ipad", - "scale" : "2x", - "size" : "40x40" - }, - { - "filename" : "Icon-App-76x76@1x.png", - "idiom" : "ipad", - "scale" : "1x", - "size" : "76x76" - }, - { - "filename" : "Icon-App-76x76@2x.png", - "idiom" : "ipad", - "scale" : "2x", - "size" : "76x76" - }, - { - "filename" : "Icon-App-83.5x83.5@2x.png", - "idiom" : "ipad", - "scale" : "2x", - "size" : "83.5x83.5" - }, - { - "filename" : "ItunesArtwork@2x.png", - "idiom" : "ios-marketing", - "scale" : "1x", - "size" : "1024x1024" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/CodeApp/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png b/CodeApp/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png deleted file mode 100644 index 2094b94bab5c24178ab299e41b30f645cac2eeeb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 370 zcmV-&0ge8NP)hcaEl_5utyUjl z5~2a_;uhj#aCSFW0TV#_iFtj3G6xd^iX=&*h=Ii%dv%W#Df0dT(ExNu0Ysq8(bIFZ z9}`R-p?3i42tmLuU~~e*Bh2IhYzgv5mgb-gSrMesvo*6 zytmTkmPI_QDe%`*)1G^%TFb8CFK;bw4OE4&4@KH|DFl)C=ti*>f*#C1Ae-VY?^@M{ zZ0fyLZF~>w#Xh_4pxAz_KYIC$4vt>+Q34nqHiT8$eK}N6XWId{^#3o|ADDT92>XpB QrT_o{07*qoM6N<$f}7i%y8r+H diff --git a/CodeApp/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png b/CodeApp/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png deleted file mode 100644 index d255a6096cde9572d0579fe4ce9e00d91d8fd7b3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 617 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 QESVTQUHx3vIVCg!03ysd)&Kwi diff --git a/CodeApp/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png b/CodeApp/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png deleted file mode 100644 index 47b9c8f2def44797580d91c0521535d91e3bdea2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1803 zcmb`I`#Teg1I8DdPzYjwX)yu^PdIX9!|+J zHi{WxqP0T3@0c-Uwhd@M*Te0O0TPFFOlX|0t_b~tk;*{9K4e>&(8b`zE~EGA4*4tj zNy7N-^~gLZCduW%_a6-@~FmMhMd9Km4TF4Jt*b75Ywpy7HtgrJ&)?zp5 z4ExsQm4*Iegn#?K4fi%P=xR_|(I#k)N zmdMFvQ~QPy)pZ=ne1;5>A*?$V7B0_x6=k(b%E?P+sOR{1PwTm)jOq~Gnei<9UZ0wu zjI)eIQ~M=no{eyAI!Kz6*5#4&7cA_TSrW>ZE8^_`dARIR&>>Y@ludPAwartMN;(sBr0eN1lM(GSDJz+Jz?qX| z3|{)g^;A7H!)_v7cW0tfqEcgKk%>|`)Z^XNG495e4Y_;1x(i-C`69h2AR|hfzSi3} z=mTE^CRiNTM~)1m9DW&sO{=c2?=f6yqN-9hIy0=Dx9ps zDmbKs;+pJC0l7_Vr7DokD~BKpdPH3p@2b>VyrL2B%d*9koSRyvx3vC`6w1SXYuM$R zPh8-Ya9mUsRQ*#|z*J?PimBDL8&qk2L=tOk&pyf+FjxEnC1d3-OHmh7{BVPpuajT* zguNORKR`~X^yN-7)dSXCjd-OhWF?@r>|8S;H?TUS(cn`_^)Q6}x*o+WGGe(+bNU4W9|@j!i&mYM$NQznzjgG63)L z+>)zTjHq9^*TGy=Y^&+;0)|q;MJG3A-X;>HAfnWNcA|j#@6Fo`Yvxaf|4IdciV}lnM)0jZ&(+;T4O;6Hx&0Hjy@$Nk zv=^&~uRHyxqX#V2dcl*GWSv|8^2~2y7@j_74q0>k(Qtpo+yr4sg389Td>Wo~lD{&(O+oz3t5-a3$^w>-b2YixW_teRAvlA{?jJo_b?~^!>w*{GF z%I_F;^{|nlN1&vwoH%*ve3am#^Xfvct0iLMpJ$@k1zQ=bdW{{#FTV-)}Z diff --git a/CodeApp/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png b/CodeApp/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png deleted file mode 100644 index 47b9c8f2def44797580d91c0521535d91e3bdea2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1803 zcmb`I`#Teg1I8DdPzYjwX)yu^PdIX9!|+J zHi{WxqP0T3@0c-Uwhd@M*Te0O0TPFFOlX|0t_b~tk;*{9K4e>&(8b`zE~EGA4*4tj zNy7N-^~gLZCduW%_a6-@~FmMhMd9Km4TF4Jt*b75Ywpy7HtgrJ&)?zp5 z4ExsQm4*Iegn#?K4fi%P=xR_|(I#k)N zmdMFvQ~QPy)pZ=ne1;5>A*?$V7B0_x6=k(b%E?P+sOR{1PwTm)jOq~Gnei<9UZ0wu zjI)eIQ~M=no{eyAI!Kz6*5#4&7cA_TSrW>ZE8^_`dARIR&>>Y@ludPAwartMN;(sBr0eN1lM(GSDJz+Jz?qX| z3|{)g^;A7H!)_v7cW0tfqEcgKk%>|`)Z^XNG495e4Y_;1x(i-C`69h2AR|hfzSi3} z=mTE^CRiNTM~)1m9DW&sO{=c2?=f6yqN-9hIy0=Dx9ps zDmbKs;+pJC0l7_Vr7DokD~BKpdPH3p@2b>VyrL2B%d*9koSRyvx3vC`6w1SXYuM$R zPh8-Ya9mUsRQ*#|z*J?PimBDL8&qk2L=tOk&pyf+FjxEnC1d3-OHmh7{BVPpuajT* zguNORKR`~X^yN-7)dSXCjd-OhWF?@r>|8S;H?TUS(cn`_^)Q6}x*o+WGGe(+bNU4W9|@j!i&mYM$NQznzjgG63)L z+>)zTjHq9^*TGy=Y^&+;0)|q;MJG3A-X;>HAfnWNcA|j#@6Fo`Yvxaf|4IdciV}lnM)0jZ&(+;T4O;6Hx&0Hjy@$Nk zv=^&~uRHyxqX#V2dcl*GWSv|8^2~2y7@j_74q0>k(Qtpo+yr4sg389Td>Wo~lD{&(O+oz3t5-a3$^w>-b2YixW_teRAvlA{?jJo_b?~^!>w*{GF z%I_F;^{|nlN1&vwoH%*ve3am#^Xfvct0iLMpJ$@k1zQ=bdW{{#FTV-)}Z diff --git a/CodeApp/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/CodeApp/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png deleted file mode 100644 index 88b0b7745aa38bf4d564aefa28973f6097ce025f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3044 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 N&`{M;sZz3u`Y)Ci{L}yd diff --git a/CodeApp/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png b/CodeApp/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png deleted file mode 100644 index 634d313c0c23d62875eae267cc21bf602d8fb83b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2508 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 CUXD8e diff --git a/CodeApp/Assets.xcassets/AppIcon.appiconset/ItunesArtwork@2x.png b/CodeApp/Assets.xcassets/AppIcon.appiconset/ItunesArtwork@2x.png deleted file mode 100644 index 58a2caa3873cbb423e8b8bdb074ceac924adfcd7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18883 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 + + diff --git a/CodeApp/Iconv2.icon/icon.json b/CodeApp/Iconv2.icon/icon.json new file mode 100644 index 000000000..76e5ececd --- /dev/null +++ b/CodeApp/Iconv2.icon/icon.json @@ -0,0 +1,37 @@ +{ + "fill" : { + "linear-gradient" : [ + "display-p3:0.29412,0.29412,0.29412,1.00000", + "srgb:0.11765,0.11765,0.11765,1.00000" + ] + }, + "groups" : [ + { + "blur-material" : null, + "layers" : [ + { + "glass" : true, + "hidden" : false, + "image-name" : "Rectangle 2-2.svg", + "name" : "Rectangle 2-2" + } + ], + "lighting" : "individual", + "shadow" : { + "kind" : "neutral", + "opacity" : 0.72 + }, + "specular" : false, + "translucency" : { + "enabled" : true, + "value" : 0.5 + } + } + ], + "supported-platforms" : { + "circles" : [ + "watchOS" + ], + "squares" : "shared" + } +} \ No newline at end of file From 851360eb1ee87993ac012c0e6aacbbd80ef60803 Mon Sep 17 00:00:00 2001 From: Chung Shing Hin Date: Sat, 20 Sep 2025 15:18:38 +0800 Subject: [PATCH 2/4] ci: Use Xcode 26.0 --- .github/workflows/build.yml | 2 +- .github/workflows/production.yml | 2 +- .github/workflows/test.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ce1692dd6..9a74395d3 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -39,7 +39,7 @@ jobs: JUDGE0_KEY: "" JUDGE0_ENDPOINT: "" DISTRIBUTE_EXTERNAL: "true" - XCODE_PATH: "/Applications/Xcode_16.4.app" + XCODE_PATH: "/Applications/Xcode_26.0.app" - name: Upload Artifact uses: actions/upload-artifact@v4 diff --git a/.github/workflows/production.yml b/.github/workflows/production.yml index f945fa074..6d17294dc 100644 --- a/.github/workflows/production.yml +++ b/.github/workflows/production.yml @@ -37,4 +37,4 @@ jobs: JUDGE0_KEY: "${{ secrets.JUDGE0_KEY }}" JUDGE0_ENDPOINT: "${{ secrets.JUDGE0_ENDPOINT }}" DISTRIBUTE_EXTERNAL: "false" - XCODE_PATH: "/Applications/Xcode_16.4.app" + XCODE_PATH: "/Applications/Xcode_26.0.app" diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index fc4cc9e45..30fe17da1 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -17,4 +17,4 @@ jobs: - name: Unit Tests run: fastlane tests env: - XCODE_PATH: "/Applications/Xcode_16.4.app" + XCODE_PATH: "/Applications/Xcode_26.0.app" From 543b6cdce32d2a1a5cb44a884ae0981d0f2f06dd Mon Sep 17 00:00:00 2001 From: Chung Shing Hin Date: Sat, 20 Sep 2025 16:32:33 +0800 Subject: [PATCH 3/4] ci: Fix format --- .../KeychainItemAccessibility.swift | 16 ++++++++-------- CodeApp/Utilities/node.swift | 3 ++- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/CodeApp/Utilities/KeychainWrapper/KeychainItemAccessibility.swift b/CodeApp/Utilities/KeychainWrapper/KeychainItemAccessibility.swift index 20b5391c0..015dd6210 100644 --- a/CodeApp/Utilities/KeychainWrapper/KeychainItemAccessibility.swift +++ b/CodeApp/Utilities/KeychainWrapper/KeychainItemAccessibility.swift @@ -34,7 +34,7 @@ protocol KeychainAttrRepresentable { public enum KeychainItemAccessibility { /** The data in the keychain item cannot be accessed after a restart until the device has been unlocked once by the user. - + After the first unlock, the data remains accessible until the next restart. This is recommended for items that need to be accessed by background applications. Items with this attribute migrate to a new device when using encrypted backups. */ @available(iOS 4, *) @@ -42,7 +42,7 @@ public enum KeychainItemAccessibility { /** The data in the keychain item cannot be accessed after a restart until the device has been unlocked once by the user. - + After the first unlock, the data remains accessible until the next restart. This is recommended for items that need to be accessed by background applications. Items with this attribute do not migrate to a new device. Thus, after restoring from a backup of a different device, these items will not be present. */ @available(iOS 4, *) @@ -50,7 +50,7 @@ public enum KeychainItemAccessibility { /** The data in the keychain item can always be accessed regardless of whether the device is locked. - + This is not recommended for application use. Items with this attribute migrate to a new device when using encrypted backups. */ @available(iOS 4, *) @@ -58,7 +58,7 @@ public enum KeychainItemAccessibility { /** The data in the keychain can only be accessed when the device is unlocked. Only available if a passcode is set on the device. - + This is recommended for items that only need to be accessible while the application is in the foreground. Items with this attribute never migrate to a new device. After a backup is restored to a new device, these items are missing. No items can be stored in this class on devices without a passcode. Disabling the device passcode causes all items in this class to be deleted. */ @available(iOS 8, *) @@ -66,7 +66,7 @@ public enum KeychainItemAccessibility { /** The data in the keychain item can always be accessed regardless of whether the device is locked. - + This is not recommended for application use. Items with this attribute do not migrate to a new device. Thus, after restoring from a backup of a different device, these items will not be present. */ @available(iOS 4, *) @@ -74,9 +74,9 @@ public enum KeychainItemAccessibility { /** The data in the keychain item can be accessed only while the device is unlocked by the user. - + This is recommended for items that need to be accessible only while the application is in the foreground. Items with this attribute migrate to a new device when using encrypted backups. - + This is the default value for keychain items added without explicitly setting an accessibility constant. */ @available(iOS 4, *) @@ -84,7 +84,7 @@ public enum KeychainItemAccessibility { /** The data in the keychain item can be accessed only while the device is unlocked by the user. - + This is recommended for items that need to be accessible only while the application is in the foreground. Items with this attribute do not migrate to a new device. Thus, after restoring from a backup of a different device, these items will not be present. */ @available(iOS 4, *) diff --git a/CodeApp/Utilities/node.swift b/CodeApp/Utilities/node.swift index 95ff95fc2..08d8662e8 100644 --- a/CodeApp/Utilities/node.swift +++ b/CodeApp/Utilities/node.swift @@ -13,7 +13,8 @@ import ios_system typealias RequestCancellationBlock = @convention(block) (_ uuid: UUID?, _ error: Error?) -> Void typealias RequestInterruptionBlock = @convention(block) (_ uuid: UUID?) -> Void -typealias RequestCompletionBlock = @convention(block) (_ uuid: UUID?, _ extensionItems: [Any]?) -> +typealias RequestCompletionBlock = + @convention(block) (_ uuid: UUID?, _ extensionItems: [Any]?) -> Void typealias RequestBeginBlock = @convention(block) (_ uuid: UUID?) -> Void From 5209fd27621bda7be2f734a2fa24bb18045af817 Mon Sep 17 00:00:00 2001 From: Chung Shing Hin Date: Sun, 21 Sep 2025 11:24:47 +0800 Subject: [PATCH 4/4] app: Set version as 1.11.0 --- Code.xcodeproj/project.pbxproj | 8 ++++---- CodeApp/Localization/de.lproj/Localizable.strings | 2 +- CodeApp/Localization/en.lproj/Localizable.strings | 2 +- CodeApp/Localization/ja.lproj/Localizable.strings | 2 +- CodeApp/Localization/ko.lproj/Localizable.strings | 2 +- CodeApp/Localization/ru.lproj/Localizable.strings | 2 +- CodeApp/Localization/zh-Hans.lproj/Localizable.strings | 2 +- 7 files changed, 10 insertions(+), 10 deletions(-) diff --git a/Code.xcodeproj/project.pbxproj b/Code.xcodeproj/project.pbxproj index 2d8d00d92..48a821d3e 100644 --- a/Code.xcodeproj/project.pbxproj +++ b/Code.xcodeproj/project.pbxproj @@ -4045,7 +4045,7 @@ "@executable_path/Frameworks", ); LIBRARY_SEARCH_PATHS = "$(inherited)"; - MARKETING_VERSION = 1.10.4; + MARKETING_VERSION = 1.11.0; OTHER_SWIFT_FLAGS = "-Xcc -Wno-incomplete-umbrella"; PRODUCT_BUNDLE_IDENTIFIER = "thebaselab.VS-Code"; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -4093,7 +4093,7 @@ "@executable_path/Frameworks", ); LIBRARY_SEARCH_PATHS = "$(inherited)"; - MARKETING_VERSION = 1.10.4; + MARKETING_VERSION = 1.11.0; OTHER_SWIFT_FLAGS = "-Xcc -Wno-incomplete-umbrella"; PRODUCT_BUNDLE_IDENTIFIER = "thebaselab.VS-Code"; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -4330,7 +4330,7 @@ "@executable_path/Frameworks", ); LIBRARY_SEARCH_PATHS = "$(inherited)"; - MARKETING_VERSION = 1.10.4; + MARKETING_VERSION = 1.11.0; OTHER_SWIFT_FLAGS = "-Xcc -Wno-incomplete-umbrella"; PRODUCT_BUNDLE_IDENTIFIER = "thebaselab.VS-Code"; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -4377,7 +4377,7 @@ "@executable_path/Frameworks", ); LIBRARY_SEARCH_PATHS = "$(inherited)"; - MARKETING_VERSION = 1.10.4; + MARKETING_VERSION = 1.11.0; OTHER_SWIFT_FLAGS = "-Xcc -Wno-incomplete-umbrella"; PRODUCT_BUNDLE_IDENTIFIER = "thebaselab.VS-Code"; PRODUCT_NAME = "$(TARGET_NAME)"; diff --git a/CodeApp/Localization/de.lproj/Localizable.strings b/CodeApp/Localization/de.lproj/Localizable.strings index 3938cfc1a..012d7d008 100644 --- a/CodeApp/Localization/de.lproj/Localizable.strings +++ b/CodeApp/Localization/de.lproj/Localizable.strings @@ -8,7 +8,7 @@ "Welcome Message" = "# Code App -##### **v1.10.4 (September 2025)** +##### **v1.11.0 (Oktober 2025)** #### Start [Neue Datei](https://thebaselab.com/code/newfile) [Datei öffnen](https://thebaselab.com/code/openfile) diff --git a/CodeApp/Localization/en.lproj/Localizable.strings b/CodeApp/Localization/en.lproj/Localizable.strings index fc3df78f1..df5f20f33 100644 --- a/CodeApp/Localization/en.lproj/Localizable.strings +++ b/CodeApp/Localization/en.lproj/Localizable.strings @@ -8,7 +8,7 @@ "Welcome Message" = "# Code App -##### **v1.10.4 (September 2025)** +##### **v1.11.0 (October 2025)** #### Start [New file](https://thebaselab.com/code/newfile) [Open file](https://thebaselab.com/code/openfile) diff --git a/CodeApp/Localization/ja.lproj/Localizable.strings b/CodeApp/Localization/ja.lproj/Localizable.strings index 4a159b47d..9e128b596 100644 --- a/CodeApp/Localization/ja.lproj/Localizable.strings +++ b/CodeApp/Localization/ja.lproj/Localizable.strings @@ -8,7 +8,7 @@ "Welcome Message" = "# Code App -##### **v1.10.4 (2025年9月)** +##### **v1.11.0 (2025年10月)** #### 開始 [新しいファイル](https://thebaselab.com/code/newfile) [ファイルを開く](https://thebaselab.com/code/openfile) diff --git a/CodeApp/Localization/ko.lproj/Localizable.strings b/CodeApp/Localization/ko.lproj/Localizable.strings index a9a1f02e1..36318b1b1 100644 --- a/CodeApp/Localization/ko.lproj/Localizable.strings +++ b/CodeApp/Localization/ko.lproj/Localizable.strings @@ -8,7 +8,7 @@ "Welcome Message" = "# Code App -##### **v1.10.4 (2025년 9월)** +##### **v1.11.0 (2025년 10월)** #### 시작 [새 파일...](https://thebaselab.com/code/newfile) [파일 열기...](https://thebaselab.com/code/openfile) diff --git a/CodeApp/Localization/ru.lproj/Localizable.strings b/CodeApp/Localization/ru.lproj/Localizable.strings index c1aea8cf7..c1c95882a 100644 --- a/CodeApp/Localization/ru.lproj/Localizable.strings +++ b/CodeApp/Localization/ru.lproj/Localizable.strings @@ -8,7 +8,7 @@ "Welcome Message" = "# Code App -##### **v1.10.4 (Сентябрь 2025)** +##### **v1.11.0 (Октябрь 2025)** #### Начало [Новый файл](https://thebaselab.com/code/newfile) [Открыть файл](https://thebaselab.com/code/openfile) diff --git a/CodeApp/Localization/zh-Hans.lproj/Localizable.strings b/CodeApp/Localization/zh-Hans.lproj/Localizable.strings index 307aead94..2b7b45c35 100644 --- a/CodeApp/Localization/zh-Hans.lproj/Localizable.strings +++ b/CodeApp/Localization/zh-Hans.lproj/Localizable.strings @@ -8,7 +8,7 @@ "Welcome Message" = "# Code App -##### **v1.10.4 (2025 年 9 月)** +##### **v1.11.0 (2025 年 10 月)** #### 开始 [新文件](https://thebaselab.com/code/newfile) [打开文件](https://thebaselab.com/code/openfile)