├── macOSLucidaGrande
├── latestBuild.txt
├── text.png
├── preview_lg.jpg
├── preview_sf.jpg
├── Assets.xcassets
│ ├── Contents.json
│ └── AppIcon.appiconset
│ │ └── Contents.json
├── applyButton.png
├── preview_lg@2x.jpg
├── preview_sf@2x.jpg
├── NSData+MD5.h
├── applyDiff_10_10.patch
├── applyDiff_10_11.patch
├── applyDiff_10_12.patch
├── applyDiff_modern.patch
├── macOSLucidaGrande.icns
├── preview_modern_lg_dark.jpg
├── preview_modern_lg_light.jpg
├── preview_modern_sf_dark.jpg
├── preview_modern_sf_light.jpg
├── preview_modern_lg_dark@2x.jpg
├── preview_modern_sf_dark@2x.jpg
├── preview_modern_lg_light@2x.jpg
├── preview_modern_sf_light@2x.jpg
├── main.m
├── macOSLucidaGrande.entitlements
├── MainWindowController.h
├── AppDelegate.h
├── NSData+MD5.m
├── MainWindowController.m
├── Info.plist
├── updateAvailable.xib
├── Base.lproj
│ └── MainMenu.xib
└── AppDelegate.m
├── .gitignore
├── Screenshot
├── Screenshot.png
├── guide-alert.png
├── guide-open1.png
└── guide-open2.png
├── macOSLucidaGrande.xcodeproj
├── xcuserdata
│ ├── blue.xcuserdatad
│ │ ├── xcdebugger
│ │ │ └── Breakpoints_v2.xcbkptlist
│ │ └── xcschemes
│ │ │ └── xcschememanagement.plist
│ ├── bright.xcuserdatad
│ │ ├── xcdebugger
│ │ │ └── Breakpoints_v2.xcbkptlist
│ │ └── xcschemes
│ │ │ ├── xcschememanagement.plist
│ │ │ └── LucidaGrandeSierra.xcscheme
│ ├── numeric.xcuserdatad
│ │ ├── xcdebugger
│ │ │ └── Breakpoints_v2.xcbkptlist
│ │ └── xcschemes
│ │ │ └── xcschememanagement.plist
│ └── kay.yin.xcuserdatad
│ │ └── xcschemes
│ │ ├── xcschememanagement.plist
│ │ └── macOSLucidaGrande.xcscheme
├── project.xcworkspace
│ ├── xcuserdata
│ │ ├── blue.xcuserdatad
│ │ │ └── UserInterfaceState.xcuserstate
│ │ ├── bright.xcuserdatad
│ │ │ ├── UserInterfaceState.xcuserstate
│ │ │ └── WorkspaceSettings.xcsettings
│ │ ├── kay.yin.xcuserdatad
│ │ │ └── UserInterfaceState.xcuserstate
│ │ └── numeric.xcuserdatad
│ │ │ └── UserInterfaceState.xcuserstate
│ ├── contents.xcworkspacedata
│ └── xcshareddata
│ │ └── IDEWorkspaceChecks.plist
└── project.pbxproj
├── FAQ.md
├── LICENSE
└── README.md
/macOSLucidaGrande/latestBuild.txt:
--------------------------------------------------------------------------------
1 | 2018.10.09
2 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 |
2 | macOSLucidaGrande/.DS_Store
3 |
4 | .DS_Store
5 |
--------------------------------------------------------------------------------
/Screenshot/Screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LumingYin/macOSLucidaGrande/HEAD/Screenshot/Screenshot.png
--------------------------------------------------------------------------------
/Screenshot/guide-alert.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LumingYin/macOSLucidaGrande/HEAD/Screenshot/guide-alert.png
--------------------------------------------------------------------------------
/Screenshot/guide-open1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LumingYin/macOSLucidaGrande/HEAD/Screenshot/guide-open1.png
--------------------------------------------------------------------------------
/Screenshot/guide-open2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LumingYin/macOSLucidaGrande/HEAD/Screenshot/guide-open2.png
--------------------------------------------------------------------------------
/macOSLucidaGrande/text.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LumingYin/macOSLucidaGrande/HEAD/macOSLucidaGrande/text.png
--------------------------------------------------------------------------------
/macOSLucidaGrande/preview_lg.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LumingYin/macOSLucidaGrande/HEAD/macOSLucidaGrande/preview_lg.jpg
--------------------------------------------------------------------------------
/macOSLucidaGrande/preview_sf.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LumingYin/macOSLucidaGrande/HEAD/macOSLucidaGrande/preview_sf.jpg
--------------------------------------------------------------------------------
/macOSLucidaGrande/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | }
6 | }
--------------------------------------------------------------------------------
/macOSLucidaGrande/applyButton.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LumingYin/macOSLucidaGrande/HEAD/macOSLucidaGrande/applyButton.png
--------------------------------------------------------------------------------
/macOSLucidaGrande/preview_lg@2x.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LumingYin/macOSLucidaGrande/HEAD/macOSLucidaGrande/preview_lg@2x.jpg
--------------------------------------------------------------------------------
/macOSLucidaGrande/preview_sf@2x.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LumingYin/macOSLucidaGrande/HEAD/macOSLucidaGrande/preview_sf@2x.jpg
--------------------------------------------------------------------------------
/macOSLucidaGrande/NSData+MD5.h:
--------------------------------------------------------------------------------
1 | #import "NSData+MD5.h"
2 |
3 | @interface NSData(MD5)
4 |
5 | - (NSString *)MD5;
6 |
7 | @end
8 |
--------------------------------------------------------------------------------
/macOSLucidaGrande/applyDiff_10_10.patch:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LumingYin/macOSLucidaGrande/HEAD/macOSLucidaGrande/applyDiff_10_10.patch
--------------------------------------------------------------------------------
/macOSLucidaGrande/applyDiff_10_11.patch:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LumingYin/macOSLucidaGrande/HEAD/macOSLucidaGrande/applyDiff_10_11.patch
--------------------------------------------------------------------------------
/macOSLucidaGrande/applyDiff_10_12.patch:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LumingYin/macOSLucidaGrande/HEAD/macOSLucidaGrande/applyDiff_10_12.patch
--------------------------------------------------------------------------------
/macOSLucidaGrande/applyDiff_modern.patch:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LumingYin/macOSLucidaGrande/HEAD/macOSLucidaGrande/applyDiff_modern.patch
--------------------------------------------------------------------------------
/macOSLucidaGrande/macOSLucidaGrande.icns:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LumingYin/macOSLucidaGrande/HEAD/macOSLucidaGrande/macOSLucidaGrande.icns
--------------------------------------------------------------------------------
/macOSLucidaGrande/preview_modern_lg_dark.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LumingYin/macOSLucidaGrande/HEAD/macOSLucidaGrande/preview_modern_lg_dark.jpg
--------------------------------------------------------------------------------
/macOSLucidaGrande/preview_modern_lg_light.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LumingYin/macOSLucidaGrande/HEAD/macOSLucidaGrande/preview_modern_lg_light.jpg
--------------------------------------------------------------------------------
/macOSLucidaGrande/preview_modern_sf_dark.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LumingYin/macOSLucidaGrande/HEAD/macOSLucidaGrande/preview_modern_sf_dark.jpg
--------------------------------------------------------------------------------
/macOSLucidaGrande/preview_modern_sf_light.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LumingYin/macOSLucidaGrande/HEAD/macOSLucidaGrande/preview_modern_sf_light.jpg
--------------------------------------------------------------------------------
/macOSLucidaGrande/preview_modern_lg_dark@2x.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LumingYin/macOSLucidaGrande/HEAD/macOSLucidaGrande/preview_modern_lg_dark@2x.jpg
--------------------------------------------------------------------------------
/macOSLucidaGrande/preview_modern_sf_dark@2x.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LumingYin/macOSLucidaGrande/HEAD/macOSLucidaGrande/preview_modern_sf_dark@2x.jpg
--------------------------------------------------------------------------------
/macOSLucidaGrande/preview_modern_lg_light@2x.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LumingYin/macOSLucidaGrande/HEAD/macOSLucidaGrande/preview_modern_lg_light@2x.jpg
--------------------------------------------------------------------------------
/macOSLucidaGrande/preview_modern_sf_light@2x.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LumingYin/macOSLucidaGrande/HEAD/macOSLucidaGrande/preview_modern_sf_light@2x.jpg
--------------------------------------------------------------------------------
/macOSLucidaGrande.xcodeproj/xcuserdata/blue.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
--------------------------------------------------------------------------------
/macOSLucidaGrande.xcodeproj/xcuserdata/bright.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
--------------------------------------------------------------------------------
/macOSLucidaGrande.xcodeproj/xcuserdata/numeric.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
--------------------------------------------------------------------------------
/macOSLucidaGrande.xcodeproj/project.xcworkspace/xcuserdata/blue.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LumingYin/macOSLucidaGrande/HEAD/macOSLucidaGrande.xcodeproj/project.xcworkspace/xcuserdata/blue.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/macOSLucidaGrande.xcodeproj/project.xcworkspace/xcuserdata/bright.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LumingYin/macOSLucidaGrande/HEAD/macOSLucidaGrande.xcodeproj/project.xcworkspace/xcuserdata/bright.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/macOSLucidaGrande.xcodeproj/project.xcworkspace/xcuserdata/kay.yin.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LumingYin/macOSLucidaGrande/HEAD/macOSLucidaGrande.xcodeproj/project.xcworkspace/xcuserdata/kay.yin.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/macOSLucidaGrande.xcodeproj/project.xcworkspace/xcuserdata/numeric.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LumingYin/macOSLucidaGrande/HEAD/macOSLucidaGrande.xcodeproj/project.xcworkspace/xcuserdata/numeric.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/macOSLucidaGrande.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/macOSLucidaGrande/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // LucidaGrandeSierra
4 | //
5 | // Created by Bright on 9/10/16.
6 | // Copyright © 2016 Kay. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | int main(int argc, const char * argv[]) {
12 | return NSApplicationMain(argc, argv);
13 | }
14 |
--------------------------------------------------------------------------------
/macOSLucidaGrande/macOSLucidaGrande.entitlements:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | com.apple.security.automation.apple-events
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/macOSLucidaGrande/MainWindowController.h:
--------------------------------------------------------------------------------
1 | //
2 | // MainWindowController.h
3 | // rClickrmacOS
4 | //
5 | // Created by Numeric on 10/29/17.
6 | // Copyright © 2017 cocappathon. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface MainWindowController : NSWindowController
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/macOSLucidaGrande.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/macOSLucidaGrande/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // macOSLucidaGrande
4 | //
5 | // Created by Bright on 9/10/16.
6 | // Copyright © 2016 Kay. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 |
12 | @interface AppDelegate : NSObject {
13 | __unsafe_unretained NSWindow *window;
14 | }
15 |
16 | @property (assign) IBOutlet NSWindow *window;
17 |
18 |
19 | @end
20 |
21 |
--------------------------------------------------------------------------------
/macOSLucidaGrande.xcodeproj/xcuserdata/blue.xcuserdatad/xcschemes/xcschememanagement.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SchemeUserState
6 |
7 | macOSLucidaGrande.xcscheme
8 |
9 | orderHint
10 | 0
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/macOSLucidaGrande.xcodeproj/xcuserdata/numeric.xcuserdatad/xcschemes/xcschememanagement.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SchemeUserState
6 |
7 | macOSLucidaGrande.xcscheme
8 |
9 | orderHint
10 | 0
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/FAQ.md:
--------------------------------------------------------------------------------
1 | ## If you're unable to open macOSLucidaGrande
2 |
3 | If you see the following alert:
4 | 
5 |
6 | Right click on the downloaded macOSLucidaGrande app and click "Open".
7 | 
8 |
9 | Then click "Open" again.
10 | 
11 |
--------------------------------------------------------------------------------
/macOSLucidaGrande.xcodeproj/xcuserdata/bright.xcuserdatad/xcschemes/xcschememanagement.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SchemeUserState
6 |
7 | LucidaGrandeSierra.xcscheme
8 |
9 | orderHint
10 | 0
11 |
12 |
13 | SuppressBuildableAutocreation
14 |
15 | 56939B401D84BEDA003D8A05
16 |
17 | primary
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/macOSLucidaGrande.xcodeproj/xcuserdata/kay.yin.xcuserdatad/xcschemes/xcschememanagement.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SchemeUserState
6 |
7 | macOSLucidaGrande.xcscheme
8 |
9 | orderHint
10 | 0
11 |
12 |
13 | SuppressBuildableAutocreation
14 |
15 | 56939B401D84BEDA003D8A05
16 |
17 | primary
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/macOSLucidaGrande.xcodeproj/project.xcworkspace/xcuserdata/bright.xcuserdatad/WorkspaceSettings.xcsettings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | BuildLocationStyle
6 | UseAppPreferences
7 | CustomBuildLocationType
8 | RelativeToDerivedData
9 | DerivedDataLocationStyle
10 | Default
11 | IssueFilterStyle
12 | ShowActiveSchemeOnly
13 | LiveSourceIssuesEnabled
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/macOSLucidaGrande/NSData+MD5.m:
--------------------------------------------------------------------------------
1 | #import
2 | #import
3 |
4 | @implementation NSData(MD5)
5 |
6 | - (NSString*)MD5
7 | {
8 | // Create byte array of unsigned chars
9 | unsigned char md5Buffer[CC_MD5_DIGEST_LENGTH];
10 |
11 | // Create 16 byte MD5 hash value, store in buffer
12 | CC_MD5(self.bytes, self.length, md5Buffer);
13 |
14 | // Convert unsigned char buffer to NSString of hex values
15 | NSMutableString *output = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH * 2];
16 | for(int i = 0; i < CC_MD5_DIGEST_LENGTH; i++)
17 | [output appendFormat:@"%02x",md5Buffer[i]];
18 |
19 | return output;
20 | }
21 |
22 | @end
23 |
--------------------------------------------------------------------------------
/macOSLucidaGrande/MainWindowController.m:
--------------------------------------------------------------------------------
1 | //
2 | // MainWindowController.m
3 | // rClickrmacOS
4 | //
5 | // Created by Numeric on 10/29/17.
6 | // Copyright © 2017 cocappathon. All rights reserved.
7 | //
8 |
9 | #import "MainWindowController.h"
10 |
11 | @interface MainWindowController ()
12 |
13 | @end
14 |
15 | @implementation MainWindowController
16 |
17 | - (void)windowDidLoad {
18 | [super windowDidLoad];
19 | self.window.titlebarAppearsTransparent = YES;
20 | self.window.titleVisibility = NSWindowTitleHidden;
21 | self.window.styleMask |= NSWindowStyleMaskFullSizeContentView;
22 |
23 | // Implement this method to handle any initialization after your window controller's window has been loaded from its nib file.
24 | }
25 |
26 |
27 | @end
28 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2019 Luming Yin
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/macOSLucidaGrande/Assets.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "mac",
5 | "size" : "16x16",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "mac",
10 | "size" : "16x16",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "mac",
15 | "size" : "32x32",
16 | "scale" : "1x"
17 | },
18 | {
19 | "idiom" : "mac",
20 | "size" : "32x32",
21 | "scale" : "2x"
22 | },
23 | {
24 | "idiom" : "mac",
25 | "size" : "128x128",
26 | "scale" : "1x"
27 | },
28 | {
29 | "idiom" : "mac",
30 | "size" : "128x128",
31 | "scale" : "2x"
32 | },
33 | {
34 | "idiom" : "mac",
35 | "size" : "256x256",
36 | "scale" : "1x"
37 | },
38 | {
39 | "idiom" : "mac",
40 | "size" : "256x256",
41 | "scale" : "2x"
42 | },
43 | {
44 | "idiom" : "mac",
45 | "size" : "512x512",
46 | "scale" : "1x"
47 | },
48 | {
49 | "idiom" : "mac",
50 | "size" : "512x512",
51 | "scale" : "2x"
52 | }
53 | ],
54 | "info" : {
55 | "version" : 1,
56 | "author" : "xcode"
57 | }
58 | }
--------------------------------------------------------------------------------
/macOSLucidaGrande/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIconFile
10 | macOSLucidaGrande.icns
11 | CFBundleIdentifier
12 | $(PRODUCT_BUNDLE_IDENTIFIER)
13 | CFBundleInfoDictionaryVersion
14 | 6.0
15 | CFBundleName
16 | $(PRODUCT_NAME)
17 | CFBundlePackageType
18 | APPL
19 | CFBundleShortVersionString
20 | 2018.10.09
21 | CFBundleVersion
22 | 20181009
23 | LSMinimumSystemVersion
24 | $(MACOSX_DEPLOYMENT_TARGET)
25 | NSAppTransportSecurity
26 |
27 | NSAllowsArbitraryLoads
28 |
29 |
30 | NSHumanReadableCopyright
31 | Developed by Luming Yin.
32 | NSMainNibFile
33 | MainMenu
34 | NSPrincipalClass
35 | NSApplication
36 |
37 |
38 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # macOSLucidaGrande
2 | As the name suggests, this is a small utility to set Lucida Grande as your Mac's system font.
3 | - Easily switch between Lucida Grande and San Francisco as your Mac's system font on macOS Mojave (10.14), macOS High Sierra (10.13), macOS Sierra (10.12) and OS X El Capitan (10.11)
4 | - Easily switch between Lucida Grande and Helvetica Neue as your Mac's system font on OS X Yosemite (10.10)
5 | - Switches between system fonts without modifying system files, making it simple and safe
6 |
7 | **[Download macOSLucidaGrande](https://github.com/LumingYin/macOSLucidaGrande/releases/download/2018.10.09/macOSLucidaGrande-2018.10.09.dmg)**
8 |
9 | 
10 |
11 | ### Known issues:
12 | - Truncated text may overlap in Safari and Firefox in macOS Mojave (10.14), macOS High Sierra (10.13), macOS Sierra (10.12) and OS X El Capitan (10.11)
13 | - When typing in a password input field in the OS, like iTunes account, there is no * sign appearing when typing a character. The password is typed completely and it is accepted, but password field appears blank before submission (Issue #2).
14 |
15 | ### Special Thanks:
16 | - **[Alexander Schreiber](https://github.com/schreiberstein)** for creating the amazing original [LucidaGrandeYosemite](https://github.com/schreiberstein/lucidagrandeyosemite) and [LucidaGrandeElCapitan](https://github.com/schreiberstein/lucidagrandeelcapitan). Without his origonal project and his great take on creating diff'ed font patches, this project wouldn't have been possible
17 |
18 |
--------------------------------------------------------------------------------
/macOSLucidaGrande/updateAvailable.xib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
22 |
23 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/macOSLucidaGrande.xcodeproj/xcuserdata/bright.xcuserdatad/xcschemes/LucidaGrandeSierra.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
9 |
15 |
21 |
22 |
23 |
24 |
25 |
30 |
31 |
32 |
33 |
39 |
40 |
41 |
42 |
43 |
44 |
54 |
56 |
62 |
63 |
64 |
65 |
66 |
67 |
73 |
75 |
81 |
82 |
83 |
84 |
86 |
87 |
90 |
91 |
92 |
--------------------------------------------------------------------------------
/macOSLucidaGrande.xcodeproj/xcuserdata/kay.yin.xcuserdatad/xcschemes/macOSLucidaGrande.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
9 |
15 |
21 |
22 |
23 |
24 |
25 |
30 |
31 |
32 |
33 |
39 |
40 |
41 |
42 |
43 |
44 |
54 |
56 |
62 |
63 |
64 |
65 |
66 |
67 |
73 |
75 |
81 |
82 |
83 |
84 |
86 |
87 |
90 |
91 |
92 |
--------------------------------------------------------------------------------
/macOSLucidaGrande/Base.lproj/MainMenu.xib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
152 |
153 |
154 |
155 |
156 |
157 |
158 |
159 |
160 |
161 |
162 |
163 |
164 |
165 |
166 |
167 |
168 |
169 |
170 |
171 |
172 |
173 |
174 |
175 |
176 |
177 |
178 |
179 |
180 |
181 |
182 |
183 |
184 |
185 |
186 |
187 |
188 |
189 |
200 |
201 |
202 |
203 |
204 |
205 |
206 |
207 |
208 |
209 |
210 |
211 |
--------------------------------------------------------------------------------
/macOSLucidaGrande/AppDelegate.m:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.m
3 | // macOSLucidaGrande
4 | //
5 | // Created by Bright on 9/10/16.
6 | // Copyright © 2016 Kay. All rights reserved.
7 | //
8 |
9 | #import "AppDelegate.h"
10 | #import "NSData+MD5.h"
11 |
12 | typedef NS_ENUM(NSUInteger, FontType) {
13 | FontTypeLucidaGrande,
14 | FontTypeSF,
15 | };
16 |
17 | @interface AppDelegate () {
18 | int versionNumber;
19 | BOOL latestPatchPresent;
20 | NSString *latestKnownMacOSPatchPath;
21 | NSString *sierraPatchPath;
22 | NSString *elCapitanPatchPath;
23 | NSString *yosemitePatchPath;
24 | NSString *hashSum;
25 | NSString *knownLatestPatchableLGFontHashSum;
26 | NSString *knownSystemWideLGFontPath;
27 | BOOL alreadyCheckedUpdate;
28 | }
29 | @property (weak) IBOutlet NSView *_mainView;
30 | @property (weak) IBOutlet NSButton *callToActionBtn;
31 | @property (weak) IBOutlet NSBox *systemFontChangedLabel;
32 | @property (weak) IBOutlet NSSegmentedControl *fontSelector;
33 | @property (weak) IBOutlet NSImageView *previewImage;
34 | @property (weak) IBOutlet NSTextField *fontChangedTypeLabel;
35 | @end
36 |
37 | @implementation AppDelegate
38 | @synthesize window;
39 |
40 | - (void)applicationWillFinishLaunching:(NSNotification *)notification {
41 | latestKnownMacOSPatchPath = @"/Library/Fonts/LucidaGrande_modsysfonths.ttc";
42 | sierraPatchPath = @"/Library/Fonts/LGUI_Regular_mod.TTF";
43 | elCapitanPatchPath = @"/Library/Fonts/LucidaGrande_modsysfontelc.ttc";
44 | yosemitePatchPath = @"/Library/Fonts/LucidaGrande_modsysfontyos.ttc";
45 | knownSystemWideLGFontPath = @"/System/Library/Fonts/LucidaGrande.ttc";
46 | knownLatestPatchableLGFontHashSum = @"8fd8b90cfab02bae6f905d2cea334962";
47 |
48 | [self.window.contentView setWantsLayer:YES];
49 | self.window.titlebarAppearsTransparent = YES;
50 |
51 | NSData *nsData = [NSData dataWithContentsOfFile:sierraPatchPath];
52 | hashSum = [nsData MD5];
53 |
54 | NSString *calculatedLGFontHashSum = [[NSData dataWithContentsOfFile:knownSystemWideLGFontPath] MD5];
55 |
56 | // Checks if system version is newer than macOS 10.14. If not, alerts the user about incompatibility and exits.
57 | NSOperatingSystemVersion version = [[NSProcessInfo processInfo] operatingSystemVersion];
58 | NSString* minor = [NSString stringWithFormat:@"%ld", (long)version.minorVersion];
59 | versionNumber = [minor intValue];
60 | if (versionNumber == 10) {
61 | [self.fontSelector setLabel:@"Helvetica Neue" forSegment:0];
62 | }
63 | if (versionNumber > 10) {
64 | [_fontChangedTypeLabel setFont:[NSFont systemFontOfSize:11 weight:NSFontWeightMedium]];
65 | }
66 | if (versionNumber > 14 && ![calculatedLGFontHashSum isEqualToString:knownLatestPatchableLGFontHashSum]) {
67 | // Alerts user about incompatibility
68 | self.fontSelector.enabled = NO;
69 | self.callToActionBtn.enabled = NO;
70 | NSAlert *alert = [[NSAlert alloc] init];
71 | [alert addButtonWithTitle:@"Check for Updates"];
72 | [alert setMessageText:@"Incompatible with your macOS installation."];
73 | [alert setInformativeText:@"This version of LucidaGrandeSierra only supports macOS Mojave, macOS High Sierra, macOS Sierra, OS X El Capitan and OS X Yosemite."];
74 | [alert setAlertStyle:NSAlertStyleWarning];
75 | [alert runModal];
76 | // Checks for update
77 | [[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString: @"https://github.com/LumingYin/macOSLucidaGrande/releases"]];
78 | [NSApp performSelector:@selector(terminate:) withObject:nil afterDelay:0.5];
79 | } else {
80 | [self refreshStatus];
81 | }
82 | }
83 |
84 | - (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
85 | [self checkForUpdates];
86 | alreadyCheckedUpdate = YES;
87 | [self.window addObserver:self forKeyPath:@"effectiveAppearance" options:NSKeyValueObservingOptionNew context:nil];
88 | }
89 |
90 | - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {
91 | if ([keyPath isEqualToString:@"effectiveAppearance"] && _fontSelector != nil) {
92 | [self segmentedControlChanged:_fontSelector];
93 | }
94 | }
95 |
96 |
97 | - (void)showLGPreview {
98 | [_fontSelector setSelected:NO forSegment:0];
99 | [_fontSelector setSelected:YES forSegment:1];
100 | [self updatePreviewImage:FontTypeLucidaGrande];
101 | }
102 |
103 | - (void)showSFPreview {
104 | [_fontSelector setSelected:NO forSegment:1];
105 | [_fontSelector setSelected:YES forSegment:0];
106 | [self updatePreviewImage:FontTypeSF];
107 | }
108 |
109 | - (void)updatePreviewImage:(FontType)fontType {
110 | if (@available(macOS 10.14, *)) {
111 | NSAppearanceName name = [self.window.effectiveAppearance bestMatchFromAppearancesWithNames:@[NSAppearanceNameAqua, NSAppearanceNameDarkAqua]];
112 | if (name == NSAppearanceNameDarkAqua) {
113 | if (fontType == FontTypeLucidaGrande) {
114 | _previewImage.image = [NSImage imageNamed:@"preview_modern_lg_dark"];
115 | } else if (fontType == FontTypeSF) {
116 | _previewImage.image = [NSImage imageNamed:@"preview_modern_sf_dark"];
117 | }
118 | } else {
119 | if (fontType == FontTypeLucidaGrande) {
120 | _previewImage.image = [NSImage imageNamed:@"preview_modern_lg_light"];
121 | } else if (fontType == FontTypeSF) {
122 | _previewImage.image = [NSImage imageNamed:@"preview_modern_sf_light"];
123 | }
124 | }
125 | } else {
126 | if (fontType == FontTypeLucidaGrande) {
127 | _previewImage.image = [NSImage imageNamed:@"preview_lg"];
128 | } else if (fontType == FontTypeSF) {
129 | _previewImage.image = [NSImage imageNamed:@"preview_sf"];
130 | }
131 | }
132 | }
133 |
134 | - (void)refreshStatus{
135 | [self cleanOldPatch];
136 |
137 | if (versionNumber >= 13) {
138 | latestPatchPresent = [[NSFileManager defaultManager] fileExistsAtPath:latestKnownMacOSPatchPath];
139 | } else if (versionNumber == 12) {
140 | latestPatchPresent = [[NSFileManager defaultManager] fileExistsAtPath:sierraPatchPath];
141 | } else if (versionNumber == 11) {
142 | latestPatchPresent = [[NSFileManager defaultManager] fileExistsAtPath:elCapitanPatchPath];
143 | } else if (versionNumber == 10) {
144 | latestPatchPresent = [[NSFileManager defaultManager] fileExistsAtPath:yosemitePatchPath];
145 | }
146 |
147 | if (latestPatchPresent) {
148 | [self showLGPreview];
149 | } else {
150 | [self showSFPreview];
151 | }
152 | _callToActionBtn.enabled = YES;
153 | }
154 |
155 | - (IBAction)segmentedControlChanged:(NSSegmentedControl *)sender {
156 | if (latestPatchPresent && sender.selectedSegment == 0) {
157 | [self updatePreviewImage:FontTypeSF];
158 | _callToActionBtn.hidden = NO;
159 | } else if (latestPatchPresent && sender.selectedSegment == 1) {
160 | [self updatePreviewImage:FontTypeLucidaGrande];
161 | _callToActionBtn.hidden = YES;
162 | } else if (!latestPatchPresent && sender.selectedSegment == 0) {
163 | [self updatePreviewImage:FontTypeSF];
164 | _callToActionBtn.hidden = YES;
165 | } else if (!latestPatchPresent && sender.selectedSegment == 1) {
166 | [self updatePreviewImage:FontTypeLucidaGrande];
167 | _callToActionBtn.hidden = NO;
168 | }
169 | }
170 |
171 |
172 | - (void)cleanOldPatch{
173 | BOOL highSierraPatchPresent = [[NSFileManager defaultManager] fileExistsAtPath:latestKnownMacOSPatchPath];
174 | BOOL sierraPatchPresent = [[NSFileManager defaultManager] fileExistsAtPath:sierraPatchPath];
175 | BOOL elCapitanPatchPresent = [[NSFileManager defaultManager] fileExistsAtPath:elCapitanPatchPath];
176 | BOOL yosemitePatchPresent = [[NSFileManager defaultManager] fileExistsAtPath:yosemitePatchPath];
177 | if (versionNumber >= 13){
178 | if (sierraPatchPresent) {
179 | [[NSFileManager defaultManager] removeItemAtPath:sierraPatchPath error:nil];
180 | }
181 | if (elCapitanPatchPresent) {
182 | [[NSFileManager defaultManager] removeItemAtPath:elCapitanPatchPath error:nil];
183 | }
184 | if (yosemitePatchPresent) {
185 | [[NSFileManager defaultManager] removeItemAtPath:yosemitePatchPath error:nil];
186 | }
187 | } else if (versionNumber == 12){
188 | if (sierraPatchPresent && ![hashSum isEqual: @"aeb6c59d1c4847f1bea4172fe5f93f14"]) {
189 | [[NSFileManager defaultManager] removeItemAtPath:sierraPatchPath error:nil];
190 | NSString *nameOfPatchFile = [NSString stringWithFormat:@"applyDiff_10_%d", versionNumber];
191 | NSString *diffPath = [[NSBundle mainBundle] pathForResource:nameOfPatchFile ofType:@"patch"];
192 | // Copies the Lucida Grande font over to the desired installation location
193 | NSTask *task = [[NSTask alloc] init];
194 | task.launchPath = @"/usr/bin/bspatch";
195 | task.arguments = @[@"/System/Library/Fonts/LucidaGrande.ttc", sierraPatchPath, diffPath];
196 | [task launch];
197 | NSAlert *alert = [[NSAlert alloc] init];
198 | [alert addButtonWithTitle:@"OK"];
199 | [alert setMessageText:@"A newer version of Lucida Grande has been applied."];
200 | [alert setInformativeText:@"A newer version of Lucida Grande has been applied to your Mac. Bold system font should also be in Lucida Grande now."];
201 | [alert setAlertStyle:NSAlertStyleWarning];
202 | [alert runModal];
203 |
204 | }
205 | if (highSierraPatchPresent) {
206 | [[NSFileManager defaultManager] removeItemAtPath:latestKnownMacOSPatchPath error:nil];
207 | }
208 | if (elCapitanPatchPresent) {
209 | [[NSFileManager defaultManager] removeItemAtPath:elCapitanPatchPath error:nil];
210 | }
211 | if (yosemitePatchPresent) {
212 | [[NSFileManager defaultManager] removeItemAtPath:yosemitePatchPath error:nil];
213 | }
214 | } else if (versionNumber == 11) {
215 | if (highSierraPatchPresent) {
216 | [[NSFileManager defaultManager] removeItemAtPath:latestKnownMacOSPatchPath error:nil];
217 | }
218 | if (sierraPatchPresent) {
219 | [[NSFileManager defaultManager] removeItemAtPath:sierraPatchPath error:nil];
220 | }
221 | if (yosemitePatchPresent) {
222 | [[NSFileManager defaultManager] removeItemAtPath:yosemitePatchPath error:nil];
223 | }
224 | } else if (versionNumber == 10) {
225 | if (highSierraPatchPresent) {
226 | [[NSFileManager defaultManager] removeItemAtPath:latestKnownMacOSPatchPath error:nil];
227 | }
228 | if (sierraPatchPresent) {
229 | [[NSFileManager defaultManager] removeItemAtPath:sierraPatchPath error:nil];
230 | }
231 | if (elCapitanPatchPresent) {
232 | [[NSFileManager defaultManager] removeItemAtPath:elCapitanPatchPath error:nil];
233 | }
234 | }
235 | }
236 |
237 | - (void)applicationWillTerminate:(NSNotification *)aNotification {
238 | }
239 |
240 | - (BOOL) applicationShouldTerminateAfterLastWindowClosed:(NSApplication *)application
241 | {
242 | return YES;
243 | }
244 |
245 |
246 | - (IBAction)useFont:(id)sender {
247 | if (latestPatchPresent) {
248 | NSString *messageText = @"System font set to San Francisco.";
249 | NSString *informativeText = @"San Francisco will appear as the UI font in newly-opened applications. For San Francisco to be used system-wide, please restart your Mac.";
250 |
251 | if (versionNumber >= 13) {
252 | [[NSFileManager defaultManager] removeItemAtPath:latestKnownMacOSPatchPath error:nil];
253 | } else if (versionNumber == 12) {
254 | [[NSFileManager defaultManager] removeItemAtPath:sierraPatchPath error:nil];
255 | } else if (versionNumber == 11) {
256 | [[NSFileManager defaultManager] removeItemAtPath:elCapitanPatchPath error:nil];
257 | } else if (versionNumber == 10) {
258 | [[NSFileManager defaultManager] removeItemAtPath:yosemitePatchPath error:nil];
259 | messageText = @"System font set to Helvetica Neue.";
260 | informativeText = @"Helvetica Neue will appear as the UI font in newly-opened applications. For Helvetica Neue to be used system-wide, please restart your Mac.";
261 | }
262 |
263 | // Refresh main UI to reflect current system typeface setting
264 | [self refreshStatus];
265 | _systemFontChangedLabel.hidden = NO;
266 | _callToActionBtn.hidden = YES;
267 | _fontSelector.enabled = NO;
268 | _callToActionBtn.enabled = NO;
269 |
270 | // Present an alert informing user to log off their Mac
271 | NSAlert *alert = [[NSAlert alloc] init];
272 | [alert addButtonWithTitle:@"OK"];
273 | [alert setMessageText:messageText];
274 | [alert setInformativeText:informativeText];
275 | [alert setAlertStyle:NSAlertStyleWarning];
276 | [alert runModal];
277 |
278 | }
279 |
280 | else {
281 | // Fetches the URL of Lucida Grande font that poses San Francisco
282 | NSString *nameOfPatchFile;
283 | if (versionNumber > 13) {
284 | nameOfPatchFile = @"applyDiff_modern";
285 | } else {
286 | nameOfPatchFile = [NSString stringWithFormat:@"applyDiff_10_%d", versionNumber];
287 | }
288 | NSString *diffPath = [[NSBundle mainBundle] pathForResource:nameOfPatchFile ofType:@"patch"];
289 | // Copies the Lucida Grande font over to the desired installation location
290 | NSTask *task = [[NSTask alloc] init];
291 | task.launchPath = @"/usr/bin/bspatch";
292 | if (versionNumber >= 13) {
293 | task.arguments = @[@"/System/Library/Fonts/LucidaGrande.ttc", latestKnownMacOSPatchPath, diffPath];
294 | } else if (versionNumber == 12) {
295 | task.arguments = @[@"/System/Library/Fonts/LucidaGrande.ttc", sierraPatchPath, diffPath];
296 | } else if (versionNumber == 11) {
297 | task.arguments = @[@"/System/Library/Fonts/LucidaGrande.ttc", elCapitanPatchPath, diffPath];
298 | } else if (versionNumber == 10) {
299 | task.arguments = @[@"/System/Library/Fonts/LucidaGrande.ttc", yosemitePatchPath, diffPath];
300 | }
301 | [task launch];
302 |
303 | // Refresh main UI to reflect current system typeface setting
304 | // We do not use [self refreshStatus]; in this case because unless sleep is used, [self refreshStatus]; executes before the bash task completes, meaning the status won't be correctly refreshed
305 |
306 | _systemFontChangedLabel.hidden = NO;
307 | _callToActionBtn.hidden = YES;
308 | _fontSelector.enabled = NO;
309 | _callToActionBtn.enabled = NO;
310 |
311 | // Present an alert informing user to restart their Mac
312 | NSAlert *alert = [[NSAlert alloc] init];
313 | [alert addButtonWithTitle:@"OK"];
314 | [alert setMessageText:@"System font is set to Lucida Grande."];
315 | [alert setInformativeText:@"Lucida Grande will appear as the UI font in newly-opened applications. For Lucida Grande to be used system-wide, please restart your Mac."];
316 | [alert setAlertStyle:NSAlertStyleWarning];
317 | [alert runModal];
318 |
319 | }
320 | }
321 |
322 | - (IBAction)checkForUpdates:(id)sender {
323 | [self checkForUpdates];
324 | }
325 | - (IBAction)menuCheckForUpdates:(id)sender {
326 | [self checkForUpdates];
327 | }
328 |
329 | - (void)checkForUpdates {
330 | [[NSURLCache sharedURLCache] removeAllCachedResponses];
331 | NSURL *URL = [NSURL URLWithString:@"https://raw.githubusercontent.com/LumingYin/macOSLucidaGrande/master/macOSLucidaGrande/latestBuild.txt"];
332 | NSError *error;
333 | NSString *latestBuildNumberRaw = [[NSString alloc]
334 | initWithContentsOfURL:URL
335 | encoding:NSUTF8StringEncoding
336 | error:&error];
337 | NSString *latestBuildNumber = [latestBuildNumberRaw stringByReplacingOccurrencesOfString:@"\n" withString:@""];
338 | NSString *currentBuildNumber = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"];
339 |
340 | if ([latestBuildNumber compare:currentBuildNumber options:NSNumericSearch] == NSOrderedDescending) {
341 | if (!alreadyCheckedUpdate) {
342 | NSButton *button = [[NSButton alloc] initWithFrame:NSMakeRect(360, 328, 115, 20)];
343 | [button setBezelStyle:NSBezelStyleRoundRect];
344 |
345 | button.title = @"Update Available";
346 | [button setAction:@selector(checkForUpdates:)];
347 |
348 | [self._mainView addSubview:button];
349 | }
350 |
351 | NSAlert *alert = [[NSAlert alloc] init];
352 | [alert addButtonWithTitle:@"Download Update"];
353 | [alert setMessageText:@"Update Available"];
354 | NSString *messageText = [NSString stringWithFormat:@"You are currently running macOSLucidaGrande Version %@, and the latest version is Version %@.", currentBuildNumber, latestBuildNumber];
355 | [alert setInformativeText:messageText];
356 | [alert setAlertStyle:NSAlertStyleWarning];
357 | [alert runModal];
358 | [[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString: @"https://github.com/LumingYin/macOSLucidaGrande/releases"]];
359 | } else if (alreadyCheckedUpdate) {
360 | NSAlert *alert = [[NSAlert alloc] init];
361 | [alert addButtonWithTitle:@"OK"];
362 | [alert setMessageText:@"No Update Available"];
363 | NSString *messageText = [NSString stringWithFormat:@"macOSLucidaGrande Version %@ is the latest version.", currentBuildNumber];
364 | [alert setInformativeText:messageText];
365 | [alert setAlertStyle:NSAlertStyleWarning];
366 | [alert runModal];
367 |
368 | }
369 | }
370 |
371 | @end
372 |
--------------------------------------------------------------------------------
/macOSLucidaGrande.xcodeproj/project.pbxproj:
--------------------------------------------------------------------------------
1 | // !$*UTF8*$!
2 | {
3 | archiveVersion = 1;
4 | classes = {
5 | };
6 | objectVersion = 46;
7 | objects = {
8 |
9 | /* Begin PBXBuildFile section */
10 | 32B7BA6F216C6EC100C75E48 /* applyDiff_modern.patch in Resources */ = {isa = PBXBuildFile; fileRef = 32B7BA6E216C6EC100C75E48 /* applyDiff_modern.patch */; };
11 | 32B7BA78216C72A800C75E48 /* preview_modern_lg_light.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 32B7BA70216C72A800C75E48 /* preview_modern_lg_light.jpg */; };
12 | 32B7BA79216C72A800C75E48 /* preview_modern_sf_light@2x.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 32B7BA71216C72A800C75E48 /* preview_modern_sf_light@2x.jpg */; };
13 | 32B7BA7A216C72A800C75E48 /* preview_modern_lg_light@2x.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 32B7BA72216C72A800C75E48 /* preview_modern_lg_light@2x.jpg */; };
14 | 32B7BA7B216C72A800C75E48 /* preview_modern_sf_light.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 32B7BA73216C72A800C75E48 /* preview_modern_sf_light.jpg */; };
15 | 32B7BA7C216C72A800C75E48 /* preview_modern_lg_dark.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 32B7BA74216C72A800C75E48 /* preview_modern_lg_dark.jpg */; };
16 | 32B7BA7D216C72A800C75E48 /* preview_modern_sf_dark@2x.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 32B7BA75216C72A800C75E48 /* preview_modern_sf_dark@2x.jpg */; };
17 | 32B7BA7E216C72A800C75E48 /* preview_modern_sf_dark.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 32B7BA76216C72A800C75E48 /* preview_modern_sf_dark.jpg */; };
18 | 32B7BA7F216C72A800C75E48 /* preview_modern_lg_dark@2x.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 32B7BA77216C72A800C75E48 /* preview_modern_lg_dark@2x.jpg */; };
19 | 3C23D0D71FB6278D0065B863 /* MainWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C23D0D61FB6278C0065B863 /* MainWindowController.m */; };
20 | 3C23D0DD1FB633870065B863 /* applyButton.png in Resources */ = {isa = PBXBuildFile; fileRef = 3C23D0DC1FB633870065B863 /* applyButton.png */; };
21 | 3C23D0E11FB639440065B863 /* text.png in Resources */ = {isa = PBXBuildFile; fileRef = 3C23D0E01FB639440065B863 /* text.png */; };
22 | 3C23D0E41FB6416B0065B863 /* preview_sf.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 3C23D0E21FB6416B0065B863 /* preview_sf.jpg */; };
23 | 3C23D0E51FB6416B0065B863 /* preview_lg.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 3C23D0E31FB6416B0065B863 /* preview_lg.jpg */; };
24 | 3C23D0E81FB6416E0065B863 /* preview_sf@2x.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 3C23D0E61FB6416E0065B863 /* preview_sf@2x.jpg */; };
25 | 3C23D0E91FB6416E0065B863 /* preview_lg@2x.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 3C23D0E71FB6416E0065B863 /* preview_lg@2x.jpg */; };
26 | 560E941A1D84F29C0073B846 /* applyDiff_10_10.patch in Resources */ = {isa = PBXBuildFile; fileRef = 560E94171D84ECD40073B846 /* applyDiff_10_10.patch */; };
27 | 560E941B1D84F29C0073B846 /* applyDiff_10_11.patch in Resources */ = {isa = PBXBuildFile; fileRef = 560E94181D84ECD40073B846 /* applyDiff_10_11.patch */; };
28 | 560E941C1D84F29C0073B846 /* applyDiff_10_12.patch in Resources */ = {isa = PBXBuildFile; fileRef = 560E94191D84ECD40073B846 /* applyDiff_10_12.patch */; };
29 | 562A09FE1D85C1D500A98087 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 562A09FD1D85C1D500A98087 /* AppKit.framework */; };
30 | 56939B461D84BEDA003D8A05 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 56939B451D84BEDA003D8A05 /* AppDelegate.m */; };
31 | 56939B491D84BEDA003D8A05 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 56939B481D84BEDA003D8A05 /* main.m */; };
32 | 56939B4B1D84BEDA003D8A05 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 56939B4A1D84BEDA003D8A05 /* Assets.xcassets */; };
33 | 56939B4E1D84BEDA003D8A05 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 56939B4C1D84BEDA003D8A05 /* MainMenu.xib */; };
34 | 56BB4A591D84DE2100B4A7CE /* macOSLucidaGrande.icns in Resources */ = {isa = PBXBuildFile; fileRef = 56BB4A581D84DE2100B4A7CE /* macOSLucidaGrande.icns */; };
35 | 56DEB66B1E0973180049D950 /* NSData+MD5.m in Sources */ = {isa = PBXBuildFile; fileRef = 56DEB66A1E0973180049D950 /* NSData+MD5.m */; };
36 | /* End PBXBuildFile section */
37 |
38 | /* Begin PBXFileReference section */
39 | 32B7BA6E216C6EC100C75E48 /* applyDiff_modern.patch */ = {isa = PBXFileReference; lastKnownFileType = file; path = applyDiff_modern.patch; sourceTree = ""; };
40 | 32B7BA70216C72A800C75E48 /* preview_modern_lg_light.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = preview_modern_lg_light.jpg; sourceTree = ""; };
41 | 32B7BA71216C72A800C75E48 /* preview_modern_sf_light@2x.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = "preview_modern_sf_light@2x.jpg"; sourceTree = ""; };
42 | 32B7BA72216C72A800C75E48 /* preview_modern_lg_light@2x.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = "preview_modern_lg_light@2x.jpg"; sourceTree = ""; };
43 | 32B7BA73216C72A800C75E48 /* preview_modern_sf_light.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = preview_modern_sf_light.jpg; sourceTree = ""; };
44 | 32B7BA74216C72A800C75E48 /* preview_modern_lg_dark.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = preview_modern_lg_dark.jpg; sourceTree = ""; };
45 | 32B7BA75216C72A800C75E48 /* preview_modern_sf_dark@2x.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = "preview_modern_sf_dark@2x.jpg"; sourceTree = ""; };
46 | 32B7BA76216C72A800C75E48 /* preview_modern_sf_dark.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = preview_modern_sf_dark.jpg; sourceTree = ""; };
47 | 32B7BA77216C72A800C75E48 /* preview_modern_lg_dark@2x.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = "preview_modern_lg_dark@2x.jpg"; sourceTree = ""; };
48 | 32B7BA80216C760D00C75E48 /* macOSLucidaGrande.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = macOSLucidaGrande.entitlements; sourceTree = ""; };
49 | 3C23D0D51FB6278C0065B863 /* MainWindowController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MainWindowController.h; sourceTree = ""; };
50 | 3C23D0D61FB6278C0065B863 /* MainWindowController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MainWindowController.m; sourceTree = ""; };
51 | 3C23D0DC1FB633870065B863 /* applyButton.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = applyButton.png; sourceTree = ""; };
52 | 3C23D0E01FB639440065B863 /* text.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = text.png; sourceTree = ""; };
53 | 3C23D0E21FB6416B0065B863 /* preview_sf.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = preview_sf.jpg; sourceTree = ""; };
54 | 3C23D0E31FB6416B0065B863 /* preview_lg.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = preview_lg.jpg; sourceTree = ""; };
55 | 3C23D0E61FB6416E0065B863 /* preview_sf@2x.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = "preview_sf@2x.jpg"; sourceTree = ""; };
56 | 3C23D0E71FB6416E0065B863 /* preview_lg@2x.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = "preview_lg@2x.jpg"; sourceTree = ""; };
57 | 560E94171D84ECD40073B846 /* applyDiff_10_10.patch */ = {isa = PBXFileReference; lastKnownFileType = file; path = applyDiff_10_10.patch; sourceTree = ""; };
58 | 560E94181D84ECD40073B846 /* applyDiff_10_11.patch */ = {isa = PBXFileReference; lastKnownFileType = file; path = applyDiff_10_11.patch; sourceTree = ""; };
59 | 560E94191D84ECD40073B846 /* applyDiff_10_12.patch */ = {isa = PBXFileReference; lastKnownFileType = file; path = applyDiff_10_12.patch; sourceTree = ""; };
60 | 562A09FD1D85C1D500A98087 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; };
61 | 56939B411D84BEDA003D8A05 /* macOSLucidaGrande.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = macOSLucidaGrande.app; sourceTree = BUILT_PRODUCTS_DIR; };
62 | 56939B441D84BEDA003D8A05 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; };
63 | 56939B451D84BEDA003D8A05 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; };
64 | 56939B481D84BEDA003D8A05 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; };
65 | 56939B4A1D84BEDA003D8A05 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; };
66 | 56939B4D1D84BEDA003D8A05 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = ""; };
67 | 56939B4F1D84BEDA003D8A05 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
68 | 56BB4A581D84DE2100B4A7CE /* macOSLucidaGrande.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = macOSLucidaGrande.icns; sourceTree = ""; };
69 | 56DEB6671E0972D50049D950 /* libcommonCrypto.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libcommonCrypto.tbd; path = usr/lib/system/libcommonCrypto.tbd; sourceTree = SDKROOT; };
70 | 56DEB6691E0973180049D950 /* NSData+MD5.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSData+MD5.h"; sourceTree = ""; };
71 | 56DEB66A1E0973180049D950 /* NSData+MD5.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSData+MD5.m"; sourceTree = ""; };
72 | 56DEB66C1E0973340049D950 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = System/Library/Frameworks/CoreData.framework; sourceTree = SDKROOT; };
73 | /* End PBXFileReference section */
74 |
75 | /* Begin PBXFrameworksBuildPhase section */
76 | 56939B3E1D84BEDA003D8A05 /* Frameworks */ = {
77 | isa = PBXFrameworksBuildPhase;
78 | buildActionMask = 2147483647;
79 | files = (
80 | 562A09FE1D85C1D500A98087 /* AppKit.framework in Frameworks */,
81 | );
82 | runOnlyForDeploymentPostprocessing = 0;
83 | };
84 | /* End PBXFrameworksBuildPhase section */
85 |
86 | /* Begin PBXGroup section */
87 | 562A09FC1D85C1D500A98087 /* Frameworks */ = {
88 | isa = PBXGroup;
89 | children = (
90 | 56DEB66C1E0973340049D950 /* CoreData.framework */,
91 | 56DEB6671E0972D50049D950 /* libcommonCrypto.tbd */,
92 | 562A09FD1D85C1D500A98087 /* AppKit.framework */,
93 | );
94 | name = Frameworks;
95 | sourceTree = "";
96 | };
97 | 56939B381D84BEDA003D8A05 = {
98 | isa = PBXGroup;
99 | children = (
100 | 56939B431D84BEDA003D8A05 /* macOSLucidaGrande */,
101 | 56939B421D84BEDA003D8A05 /* Products */,
102 | 562A09FC1D85C1D500A98087 /* Frameworks */,
103 | );
104 | sourceTree = "";
105 | };
106 | 56939B421D84BEDA003D8A05 /* Products */ = {
107 | isa = PBXGroup;
108 | children = (
109 | 56939B411D84BEDA003D8A05 /* macOSLucidaGrande.app */,
110 | );
111 | name = Products;
112 | sourceTree = "";
113 | };
114 | 56939B431D84BEDA003D8A05 /* macOSLucidaGrande */ = {
115 | isa = PBXGroup;
116 | children = (
117 | 32B7BA80216C760D00C75E48 /* macOSLucidaGrande.entitlements */,
118 | 3C23D0E31FB6416B0065B863 /* preview_lg.jpg */,
119 | 3C23D0E21FB6416B0065B863 /* preview_sf.jpg */,
120 | 3C23D0E71FB6416E0065B863 /* preview_lg@2x.jpg */,
121 | 3C23D0E61FB6416E0065B863 /* preview_sf@2x.jpg */,
122 | 32B7BA74216C72A800C75E48 /* preview_modern_lg_dark.jpg */,
123 | 32B7BA77216C72A800C75E48 /* preview_modern_lg_dark@2x.jpg */,
124 | 32B7BA70216C72A800C75E48 /* preview_modern_lg_light.jpg */,
125 | 32B7BA72216C72A800C75E48 /* preview_modern_lg_light@2x.jpg */,
126 | 32B7BA76216C72A800C75E48 /* preview_modern_sf_dark.jpg */,
127 | 32B7BA73216C72A800C75E48 /* preview_modern_sf_light.jpg */,
128 | 32B7BA71216C72A800C75E48 /* preview_modern_sf_light@2x.jpg */,
129 | 32B7BA75216C72A800C75E48 /* preview_modern_sf_dark@2x.jpg */,
130 | 3C23D0E01FB639440065B863 /* text.png */,
131 | 3C23D0DC1FB633870065B863 /* applyButton.png */,
132 | 560E94171D84ECD40073B846 /* applyDiff_10_10.patch */,
133 | 560E94181D84ECD40073B846 /* applyDiff_10_11.patch */,
134 | 560E94191D84ECD40073B846 /* applyDiff_10_12.patch */,
135 | 32B7BA6E216C6EC100C75E48 /* applyDiff_modern.patch */,
136 | 56BB4A581D84DE2100B4A7CE /* macOSLucidaGrande.icns */,
137 | 56939B441D84BEDA003D8A05 /* AppDelegate.h */,
138 | 56939B451D84BEDA003D8A05 /* AppDelegate.m */,
139 | 56DEB6691E0973180049D950 /* NSData+MD5.h */,
140 | 56DEB66A1E0973180049D950 /* NSData+MD5.m */,
141 | 3C23D0D51FB6278C0065B863 /* MainWindowController.h */,
142 | 3C23D0D61FB6278C0065B863 /* MainWindowController.m */,
143 | 56939B4A1D84BEDA003D8A05 /* Assets.xcassets */,
144 | 56939B4C1D84BEDA003D8A05 /* MainMenu.xib */,
145 | 56939B4F1D84BEDA003D8A05 /* Info.plist */,
146 | 56939B471D84BEDA003D8A05 /* Supporting Files */,
147 | );
148 | path = macOSLucidaGrande;
149 | sourceTree = "";
150 | };
151 | 56939B471D84BEDA003D8A05 /* Supporting Files */ = {
152 | isa = PBXGroup;
153 | children = (
154 | 56939B481D84BEDA003D8A05 /* main.m */,
155 | );
156 | name = "Supporting Files";
157 | sourceTree = "";
158 | };
159 | /* End PBXGroup section */
160 |
161 | /* Begin PBXNativeTarget section */
162 | 56939B401D84BEDA003D8A05 /* macOSLucidaGrande */ = {
163 | isa = PBXNativeTarget;
164 | buildConfigurationList = 56939B521D84BEDA003D8A05 /* Build configuration list for PBXNativeTarget "macOSLucidaGrande" */;
165 | buildPhases = (
166 | 56939B3D1D84BEDA003D8A05 /* Sources */,
167 | 56939B3E1D84BEDA003D8A05 /* Frameworks */,
168 | 56939B3F1D84BEDA003D8A05 /* Resources */,
169 | );
170 | buildRules = (
171 | );
172 | dependencies = (
173 | );
174 | name = macOSLucidaGrande;
175 | productName = macOSLucidaGrande;
176 | productReference = 56939B411D84BEDA003D8A05 /* macOSLucidaGrande.app */;
177 | productType = "com.apple.product-type.application";
178 | };
179 | /* End PBXNativeTarget section */
180 |
181 | /* Begin PBXProject section */
182 | 56939B391D84BEDA003D8A05 /* Project object */ = {
183 | isa = PBXProject;
184 | attributes = {
185 | LastUpgradeCheck = 0800;
186 | ORGANIZATIONNAME = Kay;
187 | TargetAttributes = {
188 | 56939B401D84BEDA003D8A05 = {
189 | CreatedOnToolsVersion = 8.0;
190 | DevelopmentTeam = 3Q7XKEDZ36;
191 | ProvisioningStyle = Automatic;
192 | SystemCapabilities = {
193 | com.apple.HardenedRuntime = {
194 | enabled = 1;
195 | };
196 | };
197 | };
198 | };
199 | };
200 | buildConfigurationList = 56939B3C1D84BEDA003D8A05 /* Build configuration list for PBXProject "macOSLucidaGrande" */;
201 | compatibilityVersion = "Xcode 3.2";
202 | developmentRegion = English;
203 | hasScannedForEncodings = 0;
204 | knownRegions = (
205 | en,
206 | Base,
207 | );
208 | mainGroup = 56939B381D84BEDA003D8A05;
209 | productRefGroup = 56939B421D84BEDA003D8A05 /* Products */;
210 | projectDirPath = "";
211 | projectRoot = "";
212 | targets = (
213 | 56939B401D84BEDA003D8A05 /* macOSLucidaGrande */,
214 | );
215 | };
216 | /* End PBXProject section */
217 |
218 | /* Begin PBXResourcesBuildPhase section */
219 | 56939B3F1D84BEDA003D8A05 /* Resources */ = {
220 | isa = PBXResourcesBuildPhase;
221 | buildActionMask = 2147483647;
222 | files = (
223 | 3C23D0E81FB6416E0065B863 /* preview_sf@2x.jpg in Resources */,
224 | 32B7BA7D216C72A800C75E48 /* preview_modern_sf_dark@2x.jpg in Resources */,
225 | 32B7BA78216C72A800C75E48 /* preview_modern_lg_light.jpg in Resources */,
226 | 560E941A1D84F29C0073B846 /* applyDiff_10_10.patch in Resources */,
227 | 32B7BA7F216C72A800C75E48 /* preview_modern_lg_dark@2x.jpg in Resources */,
228 | 560E941B1D84F29C0073B846 /* applyDiff_10_11.patch in Resources */,
229 | 3C23D0DD1FB633870065B863 /* applyButton.png in Resources */,
230 | 3C23D0E51FB6416B0065B863 /* preview_lg.jpg in Resources */,
231 | 32B7BA7C216C72A800C75E48 /* preview_modern_lg_dark.jpg in Resources */,
232 | 3C23D0E41FB6416B0065B863 /* preview_sf.jpg in Resources */,
233 | 560E941C1D84F29C0073B846 /* applyDiff_10_12.patch in Resources */,
234 | 3C23D0E91FB6416E0065B863 /* preview_lg@2x.jpg in Resources */,
235 | 56939B4B1D84BEDA003D8A05 /* Assets.xcassets in Resources */,
236 | 32B7BA7B216C72A800C75E48 /* preview_modern_sf_light.jpg in Resources */,
237 | 3C23D0E11FB639440065B863 /* text.png in Resources */,
238 | 32B7BA6F216C6EC100C75E48 /* applyDiff_modern.patch in Resources */,
239 | 32B7BA7E216C72A800C75E48 /* preview_modern_sf_dark.jpg in Resources */,
240 | 32B7BA7A216C72A800C75E48 /* preview_modern_lg_light@2x.jpg in Resources */,
241 | 56939B4E1D84BEDA003D8A05 /* MainMenu.xib in Resources */,
242 | 56BB4A591D84DE2100B4A7CE /* macOSLucidaGrande.icns in Resources */,
243 | 32B7BA79216C72A800C75E48 /* preview_modern_sf_light@2x.jpg in Resources */,
244 | );
245 | runOnlyForDeploymentPostprocessing = 0;
246 | };
247 | /* End PBXResourcesBuildPhase section */
248 |
249 | /* Begin PBXSourcesBuildPhase section */
250 | 56939B3D1D84BEDA003D8A05 /* Sources */ = {
251 | isa = PBXSourcesBuildPhase;
252 | buildActionMask = 2147483647;
253 | files = (
254 | 3C23D0D71FB6278D0065B863 /* MainWindowController.m in Sources */,
255 | 56939B491D84BEDA003D8A05 /* main.m in Sources */,
256 | 56939B461D84BEDA003D8A05 /* AppDelegate.m in Sources */,
257 | 56DEB66B1E0973180049D950 /* NSData+MD5.m in Sources */,
258 | );
259 | runOnlyForDeploymentPostprocessing = 0;
260 | };
261 | /* End PBXSourcesBuildPhase section */
262 |
263 | /* Begin PBXVariantGroup section */
264 | 56939B4C1D84BEDA003D8A05 /* MainMenu.xib */ = {
265 | isa = PBXVariantGroup;
266 | children = (
267 | 56939B4D1D84BEDA003D8A05 /* Base */,
268 | );
269 | name = MainMenu.xib;
270 | sourceTree = "";
271 | };
272 | /* End PBXVariantGroup section */
273 |
274 | /* Begin XCBuildConfiguration section */
275 | 56939B501D84BEDA003D8A05 /* Debug */ = {
276 | isa = XCBuildConfiguration;
277 | buildSettings = {
278 | ALWAYS_SEARCH_USER_PATHS = NO;
279 | CLANG_ANALYZER_NONNULL = YES;
280 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
281 | CLANG_CXX_LIBRARY = "libc++";
282 | CLANG_ENABLE_MODULES = YES;
283 | CLANG_ENABLE_OBJC_ARC = YES;
284 | CLANG_WARN_BOOL_CONVERSION = YES;
285 | CLANG_WARN_CONSTANT_CONVERSION = YES;
286 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
287 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
288 | CLANG_WARN_EMPTY_BODY = YES;
289 | CLANG_WARN_ENUM_CONVERSION = YES;
290 | CLANG_WARN_INFINITE_RECURSION = YES;
291 | CLANG_WARN_INT_CONVERSION = YES;
292 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
293 | CLANG_WARN_SUSPICIOUS_MOVES = YES;
294 | CLANG_WARN_UNREACHABLE_CODE = YES;
295 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
296 | CODE_SIGN_IDENTITY = "-";
297 | COPY_PHASE_STRIP = NO;
298 | DEBUG_INFORMATION_FORMAT = dwarf;
299 | ENABLE_STRICT_OBJC_MSGSEND = YES;
300 | ENABLE_TESTABILITY = YES;
301 | GCC_C_LANGUAGE_STANDARD = gnu99;
302 | GCC_DYNAMIC_NO_PIC = NO;
303 | GCC_NO_COMMON_BLOCKS = YES;
304 | GCC_OPTIMIZATION_LEVEL = 0;
305 | GCC_PREPROCESSOR_DEFINITIONS = (
306 | "DEBUG=1",
307 | "$(inherited)",
308 | );
309 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
310 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
311 | GCC_WARN_UNDECLARED_SELECTOR = YES;
312 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
313 | GCC_WARN_UNUSED_FUNCTION = YES;
314 | GCC_WARN_UNUSED_VARIABLE = YES;
315 | MACOSX_DEPLOYMENT_TARGET = 10.12;
316 | MTL_ENABLE_DEBUG_INFO = YES;
317 | ONLY_ACTIVE_ARCH = YES;
318 | SDKROOT = macosx;
319 | };
320 | name = Debug;
321 | };
322 | 56939B511D84BEDA003D8A05 /* Release */ = {
323 | isa = XCBuildConfiguration;
324 | buildSettings = {
325 | ALWAYS_SEARCH_USER_PATHS = NO;
326 | CLANG_ANALYZER_NONNULL = YES;
327 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
328 | CLANG_CXX_LIBRARY = "libc++";
329 | CLANG_ENABLE_MODULES = YES;
330 | CLANG_ENABLE_OBJC_ARC = YES;
331 | CLANG_WARN_BOOL_CONVERSION = YES;
332 | CLANG_WARN_CONSTANT_CONVERSION = YES;
333 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
334 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
335 | CLANG_WARN_EMPTY_BODY = YES;
336 | CLANG_WARN_ENUM_CONVERSION = YES;
337 | CLANG_WARN_INFINITE_RECURSION = YES;
338 | CLANG_WARN_INT_CONVERSION = YES;
339 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
340 | CLANG_WARN_SUSPICIOUS_MOVES = YES;
341 | CLANG_WARN_UNREACHABLE_CODE = YES;
342 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
343 | CODE_SIGN_IDENTITY = "-";
344 | COPY_PHASE_STRIP = NO;
345 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
346 | ENABLE_NS_ASSERTIONS = NO;
347 | ENABLE_STRICT_OBJC_MSGSEND = YES;
348 | GCC_C_LANGUAGE_STANDARD = gnu99;
349 | GCC_NO_COMMON_BLOCKS = YES;
350 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
351 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
352 | GCC_WARN_UNDECLARED_SELECTOR = YES;
353 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
354 | GCC_WARN_UNUSED_FUNCTION = YES;
355 | GCC_WARN_UNUSED_VARIABLE = YES;
356 | MACOSX_DEPLOYMENT_TARGET = 10.12;
357 | MTL_ENABLE_DEBUG_INFO = NO;
358 | SDKROOT = macosx;
359 | };
360 | name = Release;
361 | };
362 | 56939B531D84BEDA003D8A05 /* Debug */ = {
363 | isa = XCBuildConfiguration;
364 | buildSettings = {
365 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
366 | CODE_SIGN_ENTITLEMENTS = macOSLucidaGrande/macOSLucidaGrande.entitlements;
367 | CODE_SIGN_IDENTITY = "Mac Developer";
368 | COMBINE_HIDPI_IMAGES = YES;
369 | DEVELOPMENT_TEAM = 3Q7XKEDZ36;
370 | ENABLE_HARDENED_RUNTIME = YES;
371 | INFOPLIST_FILE = macOSLucidaGrande/Info.plist;
372 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks";
373 | LIBRARY_SEARCH_PATHS = (
374 | "$(inherited)",
375 | "$(SDKROOT)/usr/lib/system",
376 | );
377 | MACOSX_DEPLOYMENT_TARGET = 10.10;
378 | MTL_ENABLE_DEBUG_INFO = NO;
379 | PRODUCT_BUNDLE_IDENTIFIER = com.hikay.macOSLucidaGrande;
380 | PRODUCT_NAME = "$(TARGET_NAME)";
381 | PROVISIONING_PROFILE_SPECIFIER = "";
382 | };
383 | name = Debug;
384 | };
385 | 56939B541D84BEDA003D8A05 /* Release */ = {
386 | isa = XCBuildConfiguration;
387 | buildSettings = {
388 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
389 | CODE_SIGN_ENTITLEMENTS = macOSLucidaGrande/macOSLucidaGrande.entitlements;
390 | CODE_SIGN_IDENTITY = "Mac Developer";
391 | COMBINE_HIDPI_IMAGES = YES;
392 | DEVELOPMENT_TEAM = 3Q7XKEDZ36;
393 | ENABLE_HARDENED_RUNTIME = YES;
394 | INFOPLIST_FILE = macOSLucidaGrande/Info.plist;
395 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks";
396 | LIBRARY_SEARCH_PATHS = (
397 | "$(inherited)",
398 | "$(SDKROOT)/usr/lib/system",
399 | );
400 | MACOSX_DEPLOYMENT_TARGET = 10.10;
401 | MTL_ENABLE_DEBUG_INFO = YES;
402 | PRODUCT_BUNDLE_IDENTIFIER = com.hikay.macOSLucidaGrande;
403 | PRODUCT_NAME = "$(TARGET_NAME)";
404 | PROVISIONING_PROFILE_SPECIFIER = "";
405 | };
406 | name = Release;
407 | };
408 | /* End XCBuildConfiguration section */
409 |
410 | /* Begin XCConfigurationList section */
411 | 56939B3C1D84BEDA003D8A05 /* Build configuration list for PBXProject "macOSLucidaGrande" */ = {
412 | isa = XCConfigurationList;
413 | buildConfigurations = (
414 | 56939B501D84BEDA003D8A05 /* Debug */,
415 | 56939B511D84BEDA003D8A05 /* Release */,
416 | );
417 | defaultConfigurationIsVisible = 0;
418 | defaultConfigurationName = Release;
419 | };
420 | 56939B521D84BEDA003D8A05 /* Build configuration list for PBXNativeTarget "macOSLucidaGrande" */ = {
421 | isa = XCConfigurationList;
422 | buildConfigurations = (
423 | 56939B531D84BEDA003D8A05 /* Debug */,
424 | 56939B541D84BEDA003D8A05 /* Release */,
425 | );
426 | defaultConfigurationIsVisible = 0;
427 | defaultConfigurationName = Release;
428 | };
429 | /* End XCConfigurationList section */
430 | };
431 | rootObject = 56939B391D84BEDA003D8A05 /* Project object */;
432 | }
433 |
--------------------------------------------------------------------------------