├── Screenshots
└── screenshot.png
├── FolderIconGenerator
├── Assets.xcassets
│ ├── Contents.json
│ ├── AppIcon.appiconset
│ │ ├── icon-16.png
│ │ ├── icon-32.png
│ │ ├── icon-64.png
│ │ ├── icon-1024.png
│ │ ├── icon-128.png
│ │ ├── icon-256 1.png
│ │ ├── icon-256.png
│ │ ├── icon-32 1.png
│ │ ├── icon-512 1.png
│ │ ├── icon-512.png
│ │ └── Contents.json
│ ├── folder16.imageset
│ │ ├── icon_16x16_Normal.png
│ │ ├── icon_16x16_Normal@2x.png
│ │ └── Contents.json
│ ├── folder32.imageset
│ │ ├── icon_32x32_Normal.png
│ │ ├── icon_32x32_Normal@2x.png
│ │ └── Contents.json
│ ├── folder128.imageset
│ │ ├── icon_128x128_Normal.png
│ │ ├── icon_128x128_Normal@2x.png
│ │ └── Contents.json
│ ├── folder256.imageset
│ │ ├── icon_256x256_Normal.png
│ │ ├── icon_256x256_Normal@2x.png
│ │ └── Contents.json
│ ├── folder512.imageset
│ │ ├── icon_512x512_Normal.png
│ │ ├── icon_512x512_Normal@2x.png
│ │ └── Contents.json
│ ├── custom.folder.fill.badge.sparkles.symbolset
│ │ ├── Contents.json
│ │ └── custom.folder.fill.badge.sparkles.svg
│ ├── AccentColor.colorset
│ │ └── Contents.json
│ └── FolderColor.colorset
│ │ └── Contents.json
├── Preview Content
│ └── Preview Assets.xcassets
│ │ └── Contents.json
├── FolderIconGenerator.entitlements
├── FolderIconGeneratorApp.swift
└── ContentView.swift
├── README.md
├── .gitignore
└── FolderIconGenerator.xcodeproj
└── project.pbxproj
/Screenshots/screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robb/FolderIconGenerator/HEAD/Screenshots/screenshot.png
--------------------------------------------------------------------------------
/FolderIconGenerator/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/FolderIconGenerator/Preview Content/Preview Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Folder Icon Generator
2 |
3 |
4 |
5 | A tool to generate custom folder icons for macOS Sequoia.
--------------------------------------------------------------------------------
/FolderIconGenerator/Assets.xcassets/AppIcon.appiconset/icon-16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robb/FolderIconGenerator/HEAD/FolderIconGenerator/Assets.xcassets/AppIcon.appiconset/icon-16.png
--------------------------------------------------------------------------------
/FolderIconGenerator/Assets.xcassets/AppIcon.appiconset/icon-32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robb/FolderIconGenerator/HEAD/FolderIconGenerator/Assets.xcassets/AppIcon.appiconset/icon-32.png
--------------------------------------------------------------------------------
/FolderIconGenerator/Assets.xcassets/AppIcon.appiconset/icon-64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robb/FolderIconGenerator/HEAD/FolderIconGenerator/Assets.xcassets/AppIcon.appiconset/icon-64.png
--------------------------------------------------------------------------------
/FolderIconGenerator/Assets.xcassets/AppIcon.appiconset/icon-1024.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robb/FolderIconGenerator/HEAD/FolderIconGenerator/Assets.xcassets/AppIcon.appiconset/icon-1024.png
--------------------------------------------------------------------------------
/FolderIconGenerator/Assets.xcassets/AppIcon.appiconset/icon-128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robb/FolderIconGenerator/HEAD/FolderIconGenerator/Assets.xcassets/AppIcon.appiconset/icon-128.png
--------------------------------------------------------------------------------
/FolderIconGenerator/Assets.xcassets/AppIcon.appiconset/icon-256 1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robb/FolderIconGenerator/HEAD/FolderIconGenerator/Assets.xcassets/AppIcon.appiconset/icon-256 1.png
--------------------------------------------------------------------------------
/FolderIconGenerator/Assets.xcassets/AppIcon.appiconset/icon-256.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robb/FolderIconGenerator/HEAD/FolderIconGenerator/Assets.xcassets/AppIcon.appiconset/icon-256.png
--------------------------------------------------------------------------------
/FolderIconGenerator/Assets.xcassets/AppIcon.appiconset/icon-32 1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robb/FolderIconGenerator/HEAD/FolderIconGenerator/Assets.xcassets/AppIcon.appiconset/icon-32 1.png
--------------------------------------------------------------------------------
/FolderIconGenerator/Assets.xcassets/AppIcon.appiconset/icon-512 1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robb/FolderIconGenerator/HEAD/FolderIconGenerator/Assets.xcassets/AppIcon.appiconset/icon-512 1.png
--------------------------------------------------------------------------------
/FolderIconGenerator/Assets.xcassets/AppIcon.appiconset/icon-512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robb/FolderIconGenerator/HEAD/FolderIconGenerator/Assets.xcassets/AppIcon.appiconset/icon-512.png
--------------------------------------------------------------------------------
/FolderIconGenerator/Assets.xcassets/folder16.imageset/icon_16x16_Normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robb/FolderIconGenerator/HEAD/FolderIconGenerator/Assets.xcassets/folder16.imageset/icon_16x16_Normal.png
--------------------------------------------------------------------------------
/FolderIconGenerator/Assets.xcassets/folder32.imageset/icon_32x32_Normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robb/FolderIconGenerator/HEAD/FolderIconGenerator/Assets.xcassets/folder32.imageset/icon_32x32_Normal.png
--------------------------------------------------------------------------------
/FolderIconGenerator/Assets.xcassets/folder128.imageset/icon_128x128_Normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robb/FolderIconGenerator/HEAD/FolderIconGenerator/Assets.xcassets/folder128.imageset/icon_128x128_Normal.png
--------------------------------------------------------------------------------
/FolderIconGenerator/Assets.xcassets/folder16.imageset/icon_16x16_Normal@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robb/FolderIconGenerator/HEAD/FolderIconGenerator/Assets.xcassets/folder16.imageset/icon_16x16_Normal@2x.png
--------------------------------------------------------------------------------
/FolderIconGenerator/Assets.xcassets/folder256.imageset/icon_256x256_Normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robb/FolderIconGenerator/HEAD/FolderIconGenerator/Assets.xcassets/folder256.imageset/icon_256x256_Normal.png
--------------------------------------------------------------------------------
/FolderIconGenerator/Assets.xcassets/folder32.imageset/icon_32x32_Normal@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robb/FolderIconGenerator/HEAD/FolderIconGenerator/Assets.xcassets/folder32.imageset/icon_32x32_Normal@2x.png
--------------------------------------------------------------------------------
/FolderIconGenerator/Assets.xcassets/folder512.imageset/icon_512x512_Normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robb/FolderIconGenerator/HEAD/FolderIconGenerator/Assets.xcassets/folder512.imageset/icon_512x512_Normal.png
--------------------------------------------------------------------------------
/FolderIconGenerator/Assets.xcassets/folder128.imageset/icon_128x128_Normal@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robb/FolderIconGenerator/HEAD/FolderIconGenerator/Assets.xcassets/folder128.imageset/icon_128x128_Normal@2x.png
--------------------------------------------------------------------------------
/FolderIconGenerator/Assets.xcassets/folder256.imageset/icon_256x256_Normal@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robb/FolderIconGenerator/HEAD/FolderIconGenerator/Assets.xcassets/folder256.imageset/icon_256x256_Normal@2x.png
--------------------------------------------------------------------------------
/FolderIconGenerator/Assets.xcassets/folder512.imageset/icon_512x512_Normal@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robb/FolderIconGenerator/HEAD/FolderIconGenerator/Assets.xcassets/folder512.imageset/icon_512x512_Normal@2x.png
--------------------------------------------------------------------------------
/FolderIconGenerator/Assets.xcassets/custom.folder.fill.badge.sparkles.symbolset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | },
6 | "symbols" : [
7 | {
8 | "filename" : "custom.folder.fill.badge.sparkles.svg",
9 | "idiom" : "universal"
10 | }
11 | ]
12 | }
13 |
--------------------------------------------------------------------------------
/FolderIconGenerator/FolderIconGenerator.entitlements:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | com.apple.security.app-sandbox
6 |
7 | com.apple.security.files.user-selected.read-only
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/FolderIconGenerator/Assets.xcassets/folder16.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "icon_16x16_Normal.png",
5 | "idiom" : "mac",
6 | "scale" : "1x"
7 | },
8 | {
9 | "filename" : "icon_16x16_Normal@2x.png",
10 | "idiom" : "mac",
11 | "scale" : "2x"
12 | }
13 | ],
14 | "info" : {
15 | "author" : "xcode",
16 | "version" : 1
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/FolderIconGenerator/Assets.xcassets/folder32.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "icon_32x32_Normal.png",
5 | "idiom" : "mac",
6 | "scale" : "1x"
7 | },
8 | {
9 | "filename" : "icon_32x32_Normal@2x.png",
10 | "idiom" : "mac",
11 | "scale" : "2x"
12 | }
13 | ],
14 | "info" : {
15 | "author" : "xcode",
16 | "version" : 1
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/FolderIconGenerator/Assets.xcassets/folder128.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "icon_128x128_Normal.png",
5 | "idiom" : "mac",
6 | "scale" : "1x"
7 | },
8 | {
9 | "filename" : "icon_128x128_Normal@2x.png",
10 | "idiom" : "mac",
11 | "scale" : "2x"
12 | }
13 | ],
14 | "info" : {
15 | "author" : "xcode",
16 | "version" : 1
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/FolderIconGenerator/Assets.xcassets/folder256.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "icon_256x256_Normal.png",
5 | "idiom" : "mac",
6 | "scale" : "1x"
7 | },
8 | {
9 | "filename" : "icon_256x256_Normal@2x.png",
10 | "idiom" : "mac",
11 | "scale" : "2x"
12 | }
13 | ],
14 | "info" : {
15 | "author" : "xcode",
16 | "version" : 1
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/FolderIconGenerator/Assets.xcassets/folder512.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "icon_512x512_Normal.png",
5 | "idiom" : "mac",
6 | "scale" : "1x"
7 | },
8 | {
9 | "filename" : "icon_512x512_Normal@2x.png",
10 | "idiom" : "mac",
11 | "scale" : "2x"
12 | }
13 | ],
14 | "info" : {
15 | "author" : "xcode",
16 | "version" : 1
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/FolderIconGenerator/Assets.xcassets/AccentColor.colorset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "colors" : [
3 | {
4 | "color" : {
5 | "color-space" : "srgb",
6 | "components" : {
7 | "alpha" : "1.000",
8 | "blue" : "0.880",
9 | "green" : "0.620",
10 | "red" : "0.210"
11 | }
12 | },
13 | "idiom" : "universal"
14 | }
15 | ],
16 | "info" : {
17 | "author" : "xcode",
18 | "version" : 1
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/FolderIconGenerator/Assets.xcassets/FolderColor.colorset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "colors" : [
3 | {
4 | "color" : {
5 | "color-space" : "srgb",
6 | "components" : {
7 | "alpha" : "1.000",
8 | "blue" : "0.880",
9 | "green" : "0.620",
10 | "red" : "0.210"
11 | }
12 | },
13 | "idiom" : "universal"
14 | }
15 | ],
16 | "info" : {
17 | "author" : "xcode",
18 | "version" : 1
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/FolderIconGenerator/FolderIconGeneratorApp.swift:
--------------------------------------------------------------------------------
1 | import SwiftUI
2 |
3 | @main
4 | struct FolderIconGeneratorApp: App {
5 | var body: some Scene {
6 | WindowGroup {
7 | ContentView()
8 | .onAppear {
9 | NSWindow.allowsAutomaticWindowTabbing = false
10 | }
11 | }
12 | .windowResizability(.contentSize)
13 | .commands {
14 | CommandGroup(replacing: CommandGroupPlacement.newItem) {
15 | EmptyView()
16 | }
17 | }
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Finder
2 | .DS_Store
3 |
4 | # Xcode - User files
5 | xcuserdata/
6 |
7 | **/*.xcodeproj/project.xcworkspace/*
8 | !**/*.xcodeproj/project.xcworkspace/xcshareddata
9 |
10 | **/*.xcodeproj/project.xcworkspace/xcshareddata/*
11 | !**/*.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings
12 |
13 | **/*.playground/playground.xcworkspace/*
14 | !**/*.playground/playground.xcworkspace/xcshareddata
15 |
16 | **/*.playground/playground.xcworkspace/xcshareddata/*
17 | !**/*.playground/playground.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings
18 |
--------------------------------------------------------------------------------
/FolderIconGenerator/Assets.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "icon-16.png",
5 | "idiom" : "mac",
6 | "scale" : "1x",
7 | "size" : "16x16"
8 | },
9 | {
10 | "filename" : "icon-32 1.png",
11 | "idiom" : "mac",
12 | "scale" : "2x",
13 | "size" : "16x16"
14 | },
15 | {
16 | "filename" : "icon-32.png",
17 | "idiom" : "mac",
18 | "scale" : "1x",
19 | "size" : "32x32"
20 | },
21 | {
22 | "filename" : "icon-64.png",
23 | "idiom" : "mac",
24 | "scale" : "2x",
25 | "size" : "32x32"
26 | },
27 | {
28 | "filename" : "icon-128.png",
29 | "idiom" : "mac",
30 | "scale" : "1x",
31 | "size" : "128x128"
32 | },
33 | {
34 | "filename" : "icon-256 1.png",
35 | "idiom" : "mac",
36 | "scale" : "2x",
37 | "size" : "128x128"
38 | },
39 | {
40 | "filename" : "icon-256.png",
41 | "idiom" : "mac",
42 | "scale" : "1x",
43 | "size" : "256x256"
44 | },
45 | {
46 | "filename" : "icon-512 1.png",
47 | "idiom" : "mac",
48 | "scale" : "2x",
49 | "size" : "256x256"
50 | },
51 | {
52 | "filename" : "icon-512.png",
53 | "idiom" : "mac",
54 | "scale" : "1x",
55 | "size" : "512x512"
56 | },
57 | {
58 | "filename" : "icon-1024.png",
59 | "idiom" : "mac",
60 | "scale" : "2x",
61 | "size" : "512x512"
62 | }
63 | ],
64 | "info" : {
65 | "author" : "xcode",
66 | "version" : 1
67 | }
68 | }
69 |
--------------------------------------------------------------------------------
/FolderIconGenerator/ContentView.swift:
--------------------------------------------------------------------------------
1 | import AppKit
2 | import SwiftUI
3 |
4 | struct ContentView: View {
5 | @AppStorage("symbolName") var symbolName = "custom.folder.fill.badge.sparkles"
6 |
7 | @AppStorage("luminanceToAlpha") var luminanceToAlpha = true
8 |
9 | @State var customIcon: Image?
10 |
11 | private var isCustomIcon: Bool {
12 | customIcon != nil
13 | }
14 |
15 | var body: some View {
16 | VStack(spacing: 16) {
17 | let content = Image(ImageResource.folder512)
18 | .alignmentGuide(.firstTextBaseline) { d in
19 | d[.bottom] - d.height * 0.375
20 | }
21 | .overlay(alignment: .centerFirstTextBaseline) {
22 | let cgImage: CGImage? = customIcon.flatMap { icon in
23 | let content = icon
24 | .resizable()
25 | .aspectRatio(contentMode: .fit)
26 |
27 | return if luminanceToAlpha {
28 | ImageRenderer(content: content
29 | .background(.white)
30 | .colorInvert()
31 | .drawingGroup()
32 | .luminanceToAlpha()
33 | ).cgImage
34 | } else {
35 | ImageRenderer(content: content).cgImage
36 | }
37 | }
38 |
39 | ZStack {
40 | if let cgImage {
41 | Image(systemName: "circle")
42 | .hidden()
43 | .overlay {
44 | let image = Image(decorative: cgImage, scale: 1)
45 |
46 | image
47 | .renderingMode(.template)
48 | .resizable()
49 | .aspectRatio(contentMode: .fill)
50 | .scaleEffect(0.85)
51 | }
52 | } else {
53 | Image(_internalSystemName: symbolName)
54 | Image(symbolName)
55 | }
56 | }
57 | .font(.system(size: 180))
58 | .offset(y: 25)
59 | .foregroundStyle(
60 | Color.folder
61 | .shadow(.inner(color: .black.opacity(0.1), radius: 0.5, y: 0.5))
62 | .shadow(.drop(color: .white.opacity(0.4), radius: 1, y: 1))
63 | )
64 | }
65 |
66 | let renderer: ImageRenderer = {
67 | let r = ImageRenderer(content: content)
68 | r.proposedSize = .init(width: 512, height: 512)
69 | r.scale = 2
70 |
71 | return r
72 | }()
73 |
74 | GroupBox {
75 | if let cgImage = renderer.cgImage {
76 | let image = Image(decorative: cgImage, scale: 1)
77 |
78 | image
79 | .resizable()
80 | .aspectRatio(contentMode: .fit)
81 | .draggable(image)
82 | .padding(8)
83 | .frame(maxWidth: .infinity)
84 | .contextMenu {
85 | Button("Copy") {
86 | NSPasteboard.general.clearContents()
87 | NSPasteboard.general.writeObjects([NSImage(cgImage: cgImage, size: .init(width: 1024, height: 1024))])
88 | }
89 |
90 | Section {
91 | Toggle("Use Luminance as Alpha Channel", isOn: $luminanceToAlpha)
92 |
93 | Button("Clear Custom Icon") {
94 | customIcon = nil
95 | }
96 | }
97 | .disabled(!isCustomIcon)
98 | }
99 | }
100 | }
101 | .dropDestination(for: URL.self) { urls, _ in
102 | guard let url = urls.first,
103 | let nsImage = NSImage(contentsOf: url) else { return false }
104 |
105 | customIcon = Image(nsImage: nsImage)
106 |
107 | return true
108 | }
109 |
110 | GroupBox {
111 | LabeledContent("Symbol Name:") {
112 | TextField("person.fill", text: $symbolName)
113 | .textFieldStyle(.roundedBorder)
114 | }
115 | .padding(8)
116 | }
117 | .disabled(isCustomIcon)
118 |
119 | HStack {
120 | Label("[How to change icons for folders on macOS](https://support.apple.com/guide/mac-help/change-icons-for-files-or-folders-on-mac-mchlp2313/mac)", systemImage: "info.circle.fill")
121 |
122 | Spacer()
123 |
124 | Text("by [Robb Böhnke](https://robb.is)")
125 | }
126 | .labelStyle(InlineLabelStyle())
127 | .foregroundStyle(.secondary)
128 | .font(.caption)
129 | .tracking(0.3)
130 | .imageScale(.large)
131 | }
132 | .padding()
133 | .frame(width: 512, height: 512)
134 | .navigationTitle("Folder Icon Generator")
135 | }
136 | }
137 |
138 | struct InlineLabelStyle: LabelStyle {
139 | func makeBody(configuration: Configuration) -> some View {
140 | HStack(alignment: .firstTextBaseline, spacing: 6) {
141 | Color.clear
142 | .frame(width: 13, height: 8)
143 | .overlay(alignment: .centerFirstTextBaseline) {
144 | configuration.icon
145 | }
146 |
147 | configuration.title
148 | }
149 | }
150 | }
151 |
152 | extension Image {
153 | @_silgen_name("$s7SwiftUI5ImageV19_internalSystemNameACSS_tcfC")
154 | init(_internalSystemName: String)
155 | }
156 |
157 | #Preview {
158 | ContentView()
159 | }
160 |
--------------------------------------------------------------------------------
/FolderIconGenerator.xcodeproj/project.pbxproj:
--------------------------------------------------------------------------------
1 | // !$*UTF8*$!
2 | {
3 | archiveVersion = 1;
4 | classes = {
5 | };
6 | objectVersion = 77;
7 | objects = {
8 |
9 | /* Begin PBXFileReference section */
10 | 540BACD42DE9007B00415BE6 /* Folder Icon Generator.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Folder Icon Generator.app"; sourceTree = BUILT_PRODUCTS_DIR; };
11 | /* End PBXFileReference section */
12 |
13 | /* Begin PBXFileSystemSynchronizedRootGroup section */
14 | 540BACD62DE9007B00415BE6 /* FolderIconGenerator */ = {
15 | isa = PBXFileSystemSynchronizedRootGroup;
16 | path = FolderIconGenerator;
17 | sourceTree = "";
18 | };
19 | /* End PBXFileSystemSynchronizedRootGroup section */
20 |
21 | /* Begin PBXFrameworksBuildPhase section */
22 | 540BACD12DE9007B00415BE6 /* Frameworks */ = {
23 | isa = PBXFrameworksBuildPhase;
24 | buildActionMask = 2147483647;
25 | files = (
26 | );
27 | runOnlyForDeploymentPostprocessing = 0;
28 | };
29 | /* End PBXFrameworksBuildPhase section */
30 |
31 | /* Begin PBXGroup section */
32 | 540BACCB2DE9007B00415BE6 = {
33 | isa = PBXGroup;
34 | children = (
35 | 540BACD62DE9007B00415BE6 /* FolderIconGenerator */,
36 | 540BACD52DE9007B00415BE6 /* Products */,
37 | );
38 | sourceTree = "";
39 | };
40 | 540BACD52DE9007B00415BE6 /* Products */ = {
41 | isa = PBXGroup;
42 | children = (
43 | 540BACD42DE9007B00415BE6 /* Folder Icon Generator.app */,
44 | );
45 | name = Products;
46 | sourceTree = "";
47 | };
48 | /* End PBXGroup section */
49 |
50 | /* Begin PBXNativeTarget section */
51 | 540BACD32DE9007B00415BE6 /* FolderIconGenerator */ = {
52 | isa = PBXNativeTarget;
53 | buildConfigurationList = 540BACE32DE9007C00415BE6 /* Build configuration list for PBXNativeTarget "FolderIconGenerator" */;
54 | buildPhases = (
55 | 540BACD02DE9007B00415BE6 /* Sources */,
56 | 540BACD12DE9007B00415BE6 /* Frameworks */,
57 | 540BACD22DE9007B00415BE6 /* Resources */,
58 | );
59 | buildRules = (
60 | );
61 | dependencies = (
62 | );
63 | fileSystemSynchronizedGroups = (
64 | 540BACD62DE9007B00415BE6 /* FolderIconGenerator */,
65 | );
66 | name = FolderIconGenerator;
67 | packageProductDependencies = (
68 | );
69 | productName = FolderIconGenerator;
70 | productReference = 540BACD42DE9007B00415BE6 /* Folder Icon Generator.app */;
71 | productType = "com.apple.product-type.application";
72 | };
73 | /* End PBXNativeTarget section */
74 |
75 | /* Begin PBXProject section */
76 | 540BACCC2DE9007B00415BE6 /* Project object */ = {
77 | isa = PBXProject;
78 | attributes = {
79 | BuildIndependentTargetsInParallel = 1;
80 | LastSwiftUpdateCheck = 1620;
81 | LastUpgradeCheck = 1630;
82 | TargetAttributes = {
83 | 540BACD32DE9007B00415BE6 = {
84 | CreatedOnToolsVersion = 16.2;
85 | };
86 | };
87 | };
88 | buildConfigurationList = 540BACCF2DE9007B00415BE6 /* Build configuration list for PBXProject "FolderIconGenerator" */;
89 | developmentRegion = en;
90 | hasScannedForEncodings = 0;
91 | knownRegions = (
92 | en,
93 | Base,
94 | );
95 | mainGroup = 540BACCB2DE9007B00415BE6;
96 | minimizedProjectReferenceProxies = 1;
97 | preferredProjectObjectVersion = 77;
98 | productRefGroup = 540BACD52DE9007B00415BE6 /* Products */;
99 | projectDirPath = "";
100 | projectRoot = "";
101 | targets = (
102 | 540BACD32DE9007B00415BE6 /* FolderIconGenerator */,
103 | );
104 | };
105 | /* End PBXProject section */
106 |
107 | /* Begin PBXResourcesBuildPhase section */
108 | 540BACD22DE9007B00415BE6 /* Resources */ = {
109 | isa = PBXResourcesBuildPhase;
110 | buildActionMask = 2147483647;
111 | files = (
112 | );
113 | runOnlyForDeploymentPostprocessing = 0;
114 | };
115 | /* End PBXResourcesBuildPhase section */
116 |
117 | /* Begin PBXSourcesBuildPhase section */
118 | 540BACD02DE9007B00415BE6 /* Sources */ = {
119 | isa = PBXSourcesBuildPhase;
120 | buildActionMask = 2147483647;
121 | files = (
122 | );
123 | runOnlyForDeploymentPostprocessing = 0;
124 | };
125 | /* End PBXSourcesBuildPhase section */
126 |
127 | /* Begin XCBuildConfiguration section */
128 | 540BACE12DE9007C00415BE6 /* Debug */ = {
129 | isa = XCBuildConfiguration;
130 | buildSettings = {
131 | ALWAYS_SEARCH_USER_PATHS = NO;
132 | ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
133 | CLANG_ANALYZER_NONNULL = YES;
134 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
135 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
136 | CLANG_ENABLE_MODULES = YES;
137 | CLANG_ENABLE_OBJC_ARC = YES;
138 | CLANG_ENABLE_OBJC_WEAK = YES;
139 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
140 | CLANG_WARN_BOOL_CONVERSION = YES;
141 | CLANG_WARN_COMMA = YES;
142 | CLANG_WARN_CONSTANT_CONVERSION = YES;
143 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
144 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
145 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
146 | CLANG_WARN_EMPTY_BODY = YES;
147 | CLANG_WARN_ENUM_CONVERSION = YES;
148 | CLANG_WARN_INFINITE_RECURSION = YES;
149 | CLANG_WARN_INT_CONVERSION = YES;
150 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
151 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
152 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
153 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
154 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
155 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
156 | CLANG_WARN_STRICT_PROTOTYPES = YES;
157 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
158 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
159 | CLANG_WARN_UNREACHABLE_CODE = YES;
160 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
161 | COPY_PHASE_STRIP = NO;
162 | DEAD_CODE_STRIPPING = YES;
163 | DEBUG_INFORMATION_FORMAT = dwarf;
164 | ENABLE_STRICT_OBJC_MSGSEND = YES;
165 | ENABLE_TESTABILITY = YES;
166 | ENABLE_USER_SCRIPT_SANDBOXING = YES;
167 | GCC_C_LANGUAGE_STANDARD = gnu17;
168 | GCC_DYNAMIC_NO_PIC = NO;
169 | GCC_NO_COMMON_BLOCKS = YES;
170 | GCC_OPTIMIZATION_LEVEL = 0;
171 | GCC_PREPROCESSOR_DEFINITIONS = (
172 | "DEBUG=1",
173 | "$(inherited)",
174 | );
175 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
176 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
177 | GCC_WARN_UNDECLARED_SELECTOR = YES;
178 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
179 | GCC_WARN_UNUSED_FUNCTION = YES;
180 | GCC_WARN_UNUSED_VARIABLE = YES;
181 | LOCALIZATION_PREFERS_STRING_CATALOGS = YES;
182 | MACOSX_DEPLOYMENT_TARGET = 15.2;
183 | MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
184 | MTL_FAST_MATH = YES;
185 | ONLY_ACTIVE_ARCH = YES;
186 | SDKROOT = macosx;
187 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)";
188 | SWIFT_OPTIMIZATION_LEVEL = "-Onone";
189 | };
190 | name = Debug;
191 | };
192 | 540BACE22DE9007C00415BE6 /* Release */ = {
193 | isa = XCBuildConfiguration;
194 | buildSettings = {
195 | ALWAYS_SEARCH_USER_PATHS = NO;
196 | ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
197 | CLANG_ANALYZER_NONNULL = YES;
198 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
199 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
200 | CLANG_ENABLE_MODULES = YES;
201 | CLANG_ENABLE_OBJC_ARC = YES;
202 | CLANG_ENABLE_OBJC_WEAK = YES;
203 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
204 | CLANG_WARN_BOOL_CONVERSION = YES;
205 | CLANG_WARN_COMMA = YES;
206 | CLANG_WARN_CONSTANT_CONVERSION = YES;
207 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
208 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
209 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
210 | CLANG_WARN_EMPTY_BODY = YES;
211 | CLANG_WARN_ENUM_CONVERSION = YES;
212 | CLANG_WARN_INFINITE_RECURSION = YES;
213 | CLANG_WARN_INT_CONVERSION = YES;
214 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
215 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
216 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
217 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
218 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
219 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
220 | CLANG_WARN_STRICT_PROTOTYPES = YES;
221 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
222 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
223 | CLANG_WARN_UNREACHABLE_CODE = YES;
224 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
225 | COPY_PHASE_STRIP = NO;
226 | DEAD_CODE_STRIPPING = YES;
227 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
228 | ENABLE_NS_ASSERTIONS = NO;
229 | ENABLE_STRICT_OBJC_MSGSEND = YES;
230 | ENABLE_USER_SCRIPT_SANDBOXING = YES;
231 | GCC_C_LANGUAGE_STANDARD = gnu17;
232 | GCC_NO_COMMON_BLOCKS = YES;
233 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
234 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
235 | GCC_WARN_UNDECLARED_SELECTOR = YES;
236 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
237 | GCC_WARN_UNUSED_FUNCTION = YES;
238 | GCC_WARN_UNUSED_VARIABLE = YES;
239 | LOCALIZATION_PREFERS_STRING_CATALOGS = YES;
240 | MACOSX_DEPLOYMENT_TARGET = 15.2;
241 | MTL_ENABLE_DEBUG_INFO = NO;
242 | MTL_FAST_MATH = YES;
243 | SDKROOT = macosx;
244 | SWIFT_COMPILATION_MODE = wholemodule;
245 | };
246 | name = Release;
247 | };
248 | 540BACE42DE9007C00415BE6 /* Debug */ = {
249 | isa = XCBuildConfiguration;
250 | buildSettings = {
251 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
252 | ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
253 | CODE_SIGN_ENTITLEMENTS = FolderIconGenerator/FolderIconGenerator.entitlements;
254 | CODE_SIGN_STYLE = Automatic;
255 | COMBINE_HIDPI_IMAGES = YES;
256 | CURRENT_PROJECT_VERSION = 1;
257 | DEAD_CODE_STRIPPING = YES;
258 | DEVELOPMENT_ASSET_PATHS = "\"FolderIconGenerator/Preview Content\"";
259 | ENABLE_PREVIEWS = YES;
260 | GENERATE_INFOPLIST_FILE = YES;
261 | INFOPLIST_KEY_CFBundleDisplayName = "Folder Icon Generator";
262 | INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.utilities";
263 | INFOPLIST_KEY_NSHumanReadableCopyright = "";
264 | LD_RUNPATH_SEARCH_PATHS = (
265 | "$(inherited)",
266 | "@executable_path/../Frameworks",
267 | );
268 | MACOSX_DEPLOYMENT_TARGET = 15.0;
269 | MARKETING_VERSION = 1.0;
270 | PRODUCT_BUNDLE_IDENTIFIER = com.robertboehnke.FolderIconGenerator;
271 | PRODUCT_NAME = "Folder Icon Generator";
272 | SWIFT_EMIT_LOC_STRINGS = YES;
273 | SWIFT_VERSION = 5.0;
274 | };
275 | name = Debug;
276 | };
277 | 540BACE52DE9007C00415BE6 /* Release */ = {
278 | isa = XCBuildConfiguration;
279 | buildSettings = {
280 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
281 | ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
282 | CODE_SIGN_ENTITLEMENTS = FolderIconGenerator/FolderIconGenerator.entitlements;
283 | CODE_SIGN_STYLE = Automatic;
284 | COMBINE_HIDPI_IMAGES = YES;
285 | CURRENT_PROJECT_VERSION = 1;
286 | DEAD_CODE_STRIPPING = YES;
287 | DEVELOPMENT_ASSET_PATHS = "\"FolderIconGenerator/Preview Content\"";
288 | ENABLE_PREVIEWS = YES;
289 | GENERATE_INFOPLIST_FILE = YES;
290 | INFOPLIST_KEY_CFBundleDisplayName = "Folder Icon Generator";
291 | INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.utilities";
292 | INFOPLIST_KEY_NSHumanReadableCopyright = "";
293 | LD_RUNPATH_SEARCH_PATHS = (
294 | "$(inherited)",
295 | "@executable_path/../Frameworks",
296 | );
297 | MACOSX_DEPLOYMENT_TARGET = 15.0;
298 | MARKETING_VERSION = 1.0;
299 | PRODUCT_BUNDLE_IDENTIFIER = com.robertboehnke.FolderIconGenerator;
300 | PRODUCT_NAME = "Folder Icon Generator";
301 | SWIFT_EMIT_LOC_STRINGS = YES;
302 | SWIFT_VERSION = 5.0;
303 | };
304 | name = Release;
305 | };
306 | /* End XCBuildConfiguration section */
307 |
308 | /* Begin XCConfigurationList section */
309 | 540BACCF2DE9007B00415BE6 /* Build configuration list for PBXProject "FolderIconGenerator" */ = {
310 | isa = XCConfigurationList;
311 | buildConfigurations = (
312 | 540BACE12DE9007C00415BE6 /* Debug */,
313 | 540BACE22DE9007C00415BE6 /* Release */,
314 | );
315 | defaultConfigurationIsVisible = 0;
316 | defaultConfigurationName = Release;
317 | };
318 | 540BACE32DE9007C00415BE6 /* Build configuration list for PBXNativeTarget "FolderIconGenerator" */ = {
319 | isa = XCConfigurationList;
320 | buildConfigurations = (
321 | 540BACE42DE9007C00415BE6 /* Debug */,
322 | 540BACE52DE9007C00415BE6 /* Release */,
323 | );
324 | defaultConfigurationIsVisible = 0;
325 | defaultConfigurationName = Release;
326 | };
327 | /* End XCConfigurationList section */
328 | };
329 | rootObject = 540BACCC2DE9007B00415BE6 /* Project object */;
330 | }
331 |
--------------------------------------------------------------------------------
/FolderIconGenerator/Assets.xcassets/custom.folder.fill.badge.sparkles.symbolset/custom.folder.fill.badge.sparkles.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
114 |
--------------------------------------------------------------------------------