Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
263b685b45 | ||
|
|
fee4221691 | ||
|
|
d2bc612822 | ||
|
|
bf24907941 | ||
|
|
286390aef0 | ||
|
|
5e3c0eeae6 | ||
|
|
b1c7df2e50 | ||
|
|
c5f0078aa7 | ||
|
|
b1584ba5fe | ||
|
|
8e66dde290 | ||
|
|
733478d23c | ||
|
|
bc6439cdec | ||
|
|
5efc0184cb | ||
|
|
ff4310315a | ||
|
|
51dd274be0 | ||
|
|
0fa057b4cd | ||
|
|
b6e73d0db0 | ||
|
|
fb11f5481d |
+1
-1
@@ -2,4 +2,4 @@
|
||||
/.build
|
||||
/SwiftDefaultApps.xcodeproj/xcuserdata/Koji.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist
|
||||
/SwiftDefaultApps CLI.xcodeproj/xcuserdata
|
||||
/AppDoesNothing/AppDoesNothing.xcodeproj/xcuserdata
|
||||
/AppDoesNothing.xcodeproj/xcuserdata
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 46;
|
||||
objectVersion = 50;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
@@ -74,17 +74,18 @@
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
LastSwiftUpdateCheck = 0820;
|
||||
LastUpgradeCheck = 0820;
|
||||
LastUpgradeCheck = 0930;
|
||||
ORGANIZATIONNAME = "Gregorio Litenstein Goldzweig";
|
||||
TargetAttributes = {
|
||||
EBA7F0911E856279009EE061 = {
|
||||
CreatedOnToolsVersion = 8.2.1;
|
||||
LastSwiftMigration = 1000;
|
||||
ProvisioningStyle = Automatic;
|
||||
};
|
||||
};
|
||||
};
|
||||
buildConfigurationList = EBA7F08D1E856279009EE061 /* Build configuration list for PBXProject "AppDoesNothing" */;
|
||||
compatibilityVersion = "Xcode 3.2";
|
||||
compatibilityVersion = "Xcode 9.3";
|
||||
developmentRegion = English;
|
||||
hasScannedForEncodings = 0;
|
||||
knownRegions = (
|
||||
@@ -127,25 +128,33 @@
|
||||
EBA7F09D1E856279009EE061 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
|
||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||
CLANG_WARN_COMMA = YES;
|
||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
|
||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
|
||||
CLANG_WARN_EMPTY_BODY = YES;
|
||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||
CLANG_WARN_INFINITE_RECURSION = YES;
|
||||
CLANG_WARN_INT_CONVERSION = YES;
|
||||
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
|
||||
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
|
||||
CLANG_WARN_STRICT_PROTOTYPES = YES;
|
||||
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
CODE_SIGN_IDENTITY = "-";
|
||||
COPY_PHASE_STRIP = NO;
|
||||
DEBUG_INFORMATION_FORMAT = dwarf;
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
@@ -164,38 +173,53 @@
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.11;
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
"@loader_path/../Frameworks",
|
||||
"@executable_path/../Frameworks",
|
||||
);
|
||||
MACH_O_TYPE = mh_execute;
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.12;
|
||||
MTL_ENABLE_DEBUG_INFO = YES;
|
||||
ONLY_ACTIVE_ARCH = YES;
|
||||
SDKROOT = macosx;
|
||||
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
|
||||
SWIFT_COMPILATION_MODE = singlefile;
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
||||
SWIFT_SWIFT3_OBJC_INFERENCE = Off;
|
||||
SWIFT_VERSION = 4.2;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
EBA7F09E1E856279009EE061 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
|
||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||
CLANG_WARN_COMMA = YES;
|
||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
|
||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
|
||||
CLANG_WARN_EMPTY_BODY = YES;
|
||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||
CLANG_WARN_INFINITE_RECURSION = YES;
|
||||
CLANG_WARN_INT_CONVERSION = YES;
|
||||
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
|
||||
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
|
||||
CLANG_WARN_STRICT_PROTOTYPES = YES;
|
||||
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
CODE_SIGN_IDENTITY = "-";
|
||||
COPY_PHASE_STRIP = NO;
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
ENABLE_NS_ASSERTIONS = NO;
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
@@ -207,34 +231,42 @@
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.11;
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
"@loader_path/../Frameworks",
|
||||
"@executable_path/../Frameworks",
|
||||
);
|
||||
MACH_O_TYPE = mh_execute;
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.12;
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
SDKROOT = macosx;
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
|
||||
SWIFT_COMPILATION_MODE = wholemodule;
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-O";
|
||||
SWIFT_SWIFT3_OBJC_INFERENCE = Off;
|
||||
SWIFT_VERSION = 4.2;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
EBA7F0A01E856279009EE061 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
||||
COMBINE_HIDPI_IMAGES = YES;
|
||||
INFOPLIST_FILE = AppDoesNothing/Info.plist;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks";
|
||||
INFOPLIST_FILE = "$(SRCROOT)/Resources/DummyApp_Info.plist";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = cl.fail.lordkamina.ThisAppDoesNothing;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SWIFT_VERSION = 3.0;
|
||||
SWIFT_VERSION = 4.2;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
EBA7F0A11E856279009EE061 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
||||
COMBINE_HIDPI_IMAGES = YES;
|
||||
INFOPLIST_FILE = AppDoesNothing/Info.plist;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks";
|
||||
INFOPLIST_FILE = "$(SRCROOT)/Resources/DummyApp_Info.plist";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = cl.fail.lordkamina.ThisAppDoesNothing;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SWIFT_VERSION = 3.0;
|
||||
SWIFT_VERSION = 4.2;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Workspace
|
||||
version = "1.0">
|
||||
<FileRef
|
||||
location = "self:">
|
||||
</FileRef>
|
||||
</Workspace>
|
||||
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>BuildSystemType</key>
|
||||
<string>Latest</string>
|
||||
</dict>
|
||||
</plist>
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>BuildLocationStyle</key>
|
||||
<string>UseAppPreferences</string>
|
||||
<key>BuildSystemType</key>
|
||||
<string>Latest</string>
|
||||
<key>CustomBuildLocationType</key>
|
||||
<string>RelativeToDerivedData</string>
|
||||
<key>DerivedDataLocationStyle</key>
|
||||
<string>Default</string>
|
||||
<key>EnabledFullIndexStoreVisibility</key>
|
||||
<false/>
|
||||
<key>IssueFilterStyle</key>
|
||||
<string>ShowActiveSchemeOnly</string>
|
||||
<key>LiveSourceIssuesEnabled</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "0820"
|
||||
LastUpgradeVersion = "1000"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
||||
-22
@@ -1,22 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>SchemeUserState</key>
|
||||
<dict>
|
||||
<key>AppDoesNothing.xcscheme_^#shared#^_</key>
|
||||
<dict>
|
||||
<key>orderHint</key>
|
||||
<integer>2</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>SuppressBuildableAutocreation</key>
|
||||
<dict>
|
||||
<key>EBA7F0911E856279009EE061</key>
|
||||
<dict>
|
||||
<key>primary</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</plist>
|
||||
+1
-1
Submodule Packages/SwiftCLI-2.0.3 updated: 6a68c92756...03f5a19693
@@ -34,8 +34,8 @@ The user-interface should be pretty self-explanatory; but, there are some things
|
||||
- Gears designed by Freepik (http://www.freepik.com/free-vector/gray-background-of-gear_956712.htm)
|
||||
|
||||
## Current Version
|
||||
- Version: 1.0.0
|
||||
- Date: 2017-05-01
|
||||
- Version: 1.1.2
|
||||
- Date: 2018-10-07
|
||||
|
||||
## Known Issues
|
||||
-
|
||||
@@ -45,10 +45,27 @@ The user-interface should be pretty self-explanatory; but, there are some things
|
||||
|
||||
# Release Notes
|
||||
|
||||
## [1.0.0] - 2017-MM-DD
|
||||
## [1.1.2] - 2018-10-07
|
||||
+ ### Changed
|
||||
+ Migrated to Swift 4.2
|
||||
+ Force Static linking of standard library, which should fix issues running on Mojave.
|
||||
|
||||
## [1.1.1] - 2018-04-15
|
||||
+ ### Changed
|
||||
+ Small changes for Swift 4.1.
|
||||
|
||||
## [1.1.0] - 2017-09-27
|
||||
+ ### Changed
|
||||
+ Migrated code to Swift 4.
|
||||
+ ### Fixed
|
||||
+ Fixed an unwrapped Optional when changing associations in the "Applications" tab.
|
||||
+ Fixed CLI tool.
|
||||
+ Some other cleanups.
|
||||
|
||||
## [1.0.0] - 2017-05-01
|
||||
+ ### Added
|
||||
+ Initial release!
|
||||
+ ### Changed
|
||||
+ ### Fixed
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -58,8 +58,6 @@
|
||||
<array>
|
||||
<string>*</string>
|
||||
</array>
|
||||
<key>de</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>CFBundleVersion</key>
|
||||
|
||||
@@ -15,9 +15,9 @@
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>BNDL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.0.0</string>
|
||||
<string>1.1.2</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>156</string>
|
||||
<string>224</string>
|
||||
<key>NSHumanReadableCopyright</key>
|
||||
<string>Copyright © 2017 Gregorio Litenstein Goldzweig. All rights reserved.</string>
|
||||
<key>NSMainNibFile</key>
|
||||
|
||||
@@ -13,6 +13,9 @@
|
||||
EB14B8991E4B614D008AB27B /* DryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EB6ED4281E4A309C00703063 /* DryView.swift */; };
|
||||
EB14B8A01E4B63E7008AB27B /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EB14B89F1E4B63E7008AB27B /* Cocoa.framework */; };
|
||||
EB5BFC661E946ED600253EC3 /* SynchronizedArray.swift in Sources */ = {isa = PBXBuildFile; fileRef = EB5BFC651E946ED600253EC3 /* SynchronizedArray.swift */; };
|
||||
EBA6B0981EB6E5EB0080A783 /* ThisAppDoesNothing.app in Resources */ = {isa = PBXBuildFile; fileRef = EBE2B0A01EB4155000BD157C /* ThisAppDoesNothing.app */; };
|
||||
EBA6B0A71EB6EB470080A783 /* LICENSE in CopyFiles */ = {isa = PBXBuildFile; fileRef = EBA6B0A31EB6EB300080A783 /* LICENSE */; };
|
||||
EBA6B0A81EB6EB4A0080A783 /* README.md in CopyFiles */ = {isa = PBXBuildFile; fileRef = EBA6B0A41EB6EB300080A783 /* README.md */; };
|
||||
EBC487A21E49073400A9A125 /* PreferencePanes.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EBC487A11E49073400A9A125 /* PreferencePanes.framework */; };
|
||||
EBC487C01E490FDE00A9A125 /* SWDAMainPrefPane.swift in Sources */ = {isa = PBXBuildFile; fileRef = EBC487BF1E490FDE00A9A125 /* SWDAMainPrefPane.swift */; };
|
||||
EBE2B0991EB409F800BD157C /* Main Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = EBE2B0981EB409F800BD157C /* Main Assets.xcassets */; };
|
||||
@@ -28,6 +31,27 @@
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXContainerItemProxy section */
|
||||
EBA6B0951EB6E5B10080A783 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = EBB1976F1E85D26E0072AF70 /* AppDoesNothing.xcodeproj */;
|
||||
proxyType = 1;
|
||||
remoteGlobalIDString = EBA7F0911E856279009EE061;
|
||||
remoteInfo = ThisAppDoesNothing;
|
||||
};
|
||||
EBA6B09E1EB6E6150080A783 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = EBA6B0991EB6E6140080A783 /* SwiftDefaultApps CLI.xcodeproj */;
|
||||
proxyType = 2;
|
||||
remoteGlobalIDString = OBJ_32;
|
||||
remoteInfo = SwiftDefaultApps;
|
||||
};
|
||||
EBA6B0A01EB6E6150080A783 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = EBA6B0991EB6E6140080A783 /* SwiftDefaultApps CLI.xcodeproj */;
|
||||
proxyType = 2;
|
||||
remoteGlobalIDString = OBJ_31;
|
||||
remoteInfo = SwiftCLI;
|
||||
};
|
||||
EBE2B09F1EB4155000BD157C /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = EBB1976F1E85D26E0072AF70 /* AppDoesNothing.xcodeproj */;
|
||||
@@ -37,11 +61,28 @@
|
||||
};
|
||||
/* End PBXContainerItemProxy section */
|
||||
|
||||
/* Begin PBXCopyFilesBuildPhase section */
|
||||
EBA6B0A21EB6EB000080A783 /* CopyFiles */ = {
|
||||
isa = PBXCopyFilesBuildPhase;
|
||||
buildActionMask = 8;
|
||||
dstPath = ..;
|
||||
dstSubfolderSpec = 1;
|
||||
files = (
|
||||
EBA6B0A71EB6EB470080A783 /* LICENSE in CopyFiles */,
|
||||
EBA6B0A81EB6EB4A0080A783 /* README.md in CopyFiles */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 1;
|
||||
};
|
||||
/* End PBXCopyFilesBuildPhase section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
EB14B89F1E4B63E7008AB27B /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; };
|
||||
EB164E011E4B3B73005CF473 /* SWDASchemesUTIsContent.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SWDASchemesUTIsContent.xib; sourceTree = "<group>"; };
|
||||
EB5BFC651E946ED600253EC3 /* SynchronizedArray.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SynchronizedArray.swift; sourceTree = "<group>"; };
|
||||
EB6ED4281E4A309C00703063 /* DryView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = DryView.swift; path = "View Controllers/DryView.swift"; sourceTree = "<group>"; };
|
||||
EBA6B0991EB6E6140080A783 /* SwiftDefaultApps CLI.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; path = "SwiftDefaultApps CLI.xcodeproj"; sourceTree = "<group>"; };
|
||||
EBA6B0A31EB6EB300080A783 /* LICENSE */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = LICENSE; sourceTree = "<group>"; };
|
||||
EBA6B0A41EB6EB300080A783 /* README.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = "<group>"; };
|
||||
EBB1976F1E85D26E0072AF70 /* AppDoesNothing.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; path = AppDoesNothing.xcodeproj; sourceTree = "<group>"; };
|
||||
EBC487A11E49073400A9A125 /* PreferencePanes.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = PreferencePanes.framework; path = System/Library/Frameworks/PreferencePanes.framework; sourceTree = SDKROOT; };
|
||||
EBC487BF1E490FDE00A9A125 /* SWDAMainPrefPane.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SWDAMainPrefPane.swift; sourceTree = "<group>"; };
|
||||
@@ -107,6 +148,15 @@
|
||||
path = Model;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
EBA6B09A1EB6E6140080A783 /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
EBA6B09F1EB6E6150080A783 /* lsreg */,
|
||||
EBA6B0A11EB6E6150080A783 /* SwiftCLI.framework */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
EBC487A01E49073400A9A125 /* Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
@@ -119,7 +169,10 @@
|
||||
EBD61FCF1E47EC3C00549EE8 = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
EBA6B0A31EB6EB300080A783 /* LICENSE */,
|
||||
EBA6B0A41EB6EB300080A783 /* README.md */,
|
||||
EBE2B0981EB409F800BD157C /* Main Assets.xcassets */,
|
||||
EBA6B0991EB6E6140080A783 /* SwiftDefaultApps CLI.xcodeproj */,
|
||||
EBB1976F1E85D26E0072AF70 /* AppDoesNothing.xcodeproj */,
|
||||
EBFE66031E688A980056E549 /* Common Sources */,
|
||||
EBD61FDB1E47EC3C00549EE8 /* Prefpane Sources */,
|
||||
@@ -187,12 +240,14 @@
|
||||
EBD61FD41E47EC3C00549EE8 /* Sources */,
|
||||
EBD61FD51E47EC3C00549EE8 /* Frameworks */,
|
||||
EBD61FD61E47EC3C00549EE8 /* Headers */,
|
||||
EBA6B0A21EB6EB000080A783 /* CopyFiles */,
|
||||
EBD61FD71E47EC3C00549EE8 /* Resources */,
|
||||
EBF28D7D1EB50E030027935E /* ShellScript */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
EBA6B0961EB6E5B10080A783 /* PBXTargetDependency */,
|
||||
);
|
||||
name = SwiftDefaultApps;
|
||||
productName = SwiftDefaultApps;
|
||||
@@ -208,12 +263,12 @@
|
||||
KnownAssetTags = (
|
||||
Icon,
|
||||
);
|
||||
LastUpgradeCheck = 0820;
|
||||
LastUpgradeCheck = 0930;
|
||||
ORGANIZATIONNAME = "Gregorio Litenstein Goldzweig";
|
||||
TargetAttributes = {
|
||||
EBD61FD81E47EC3C00549EE8 = {
|
||||
CreatedOnToolsVersion = 8.2.1;
|
||||
LastSwiftMigration = 0820;
|
||||
LastSwiftMigration = 1000;
|
||||
ProvisioningStyle = Automatic;
|
||||
};
|
||||
};
|
||||
@@ -234,6 +289,10 @@
|
||||
ProductGroup = EBE2B09C1EB4155000BD157C /* Products */;
|
||||
ProjectRef = EBB1976F1E85D26E0072AF70 /* AppDoesNothing.xcodeproj */;
|
||||
},
|
||||
{
|
||||
ProductGroup = EBA6B09A1EB6E6140080A783 /* Products */;
|
||||
ProjectRef = EBA6B0991EB6E6140080A783 /* SwiftDefaultApps CLI.xcodeproj */;
|
||||
},
|
||||
);
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
@@ -243,6 +302,20 @@
|
||||
/* End PBXProject section */
|
||||
|
||||
/* Begin PBXReferenceProxy section */
|
||||
EBA6B09F1EB6E6150080A783 /* lsreg */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = "compiled.mach-o.executable";
|
||||
path = lsreg;
|
||||
remoteRef = EBA6B09E1EB6E6150080A783 /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
EBA6B0A11EB6E6150080A783 /* SwiftCLI.framework */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = wrapper.framework;
|
||||
path = SwiftCLI.framework;
|
||||
remoteRef = EBA6B0A01EB6E6150080A783 /* PBXContainerItemProxy */;
|
||||
sourceTree = BUILT_PRODUCTS_DIR;
|
||||
};
|
||||
EBE2B0A01EB4155000BD157C /* ThisAppDoesNothing.app */ = {
|
||||
isa = PBXReferenceProxy;
|
||||
fileType = wrapper.application;
|
||||
@@ -260,6 +333,7 @@
|
||||
EB0F5A271E6894DF004BAA85 /* SWDAPrefpaneMain.xib in Resources */,
|
||||
EB0F5A2A1E6894DF004BAA85 /* SWDASchemesUTIsContent.xib in Resources */,
|
||||
EB0F5A2B1E6894DF004BAA85 /* SWDAPrefpaneTabTemplate.xib in Resources */,
|
||||
EBA6B0981EB6E5EB0080A783 /* ThisAppDoesNothing.app in Resources */,
|
||||
EBE2B0991EB409F800BD157C /* Main Assets.xcassets in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
@@ -269,16 +343,16 @@
|
||||
/* Begin PBXShellScriptBuildPhase section */
|
||||
EBF28D7D1EB50E030027935E /* ShellScript */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
buildActionMask = 8;
|
||||
files = (
|
||||
);
|
||||
inputPaths = (
|
||||
);
|
||||
outputPaths = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
runOnlyForDeploymentPostprocessing = 1;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "#!/bin/bash\nbuildNumber=$(/usr/libexec/PlistBuddy -c \"Print CFBundleVersion\" \"$INFOPLIST_FILE\")\nbuildNumber=$(($buildNumber + 1))\n/usr/libexec/PlistBuddy -c \"Set :CFBundleVersion $buildNumber\" \"$INFOPLIST_FILE\"";
|
||||
shellScript = "#!/bin/bash\nbuildNumber=$(/usr/libexec/PlistBuddy -c \"Print CFBundleVersion\" \"$INFOPLIST_FILE\")\nbuildNumber=$(($buildNumber + 1))\n/usr/libexec/PlistBuddy -c \"Set :CFBundleVersion $buildNumber\" \"$INFOPLIST_FILE\"\n";
|
||||
};
|
||||
/* End PBXShellScriptBuildPhase section */
|
||||
|
||||
@@ -304,6 +378,14 @@
|
||||
};
|
||||
/* End PBXSourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXTargetDependency section */
|
||||
EBA6B0961EB6E5B10080A783 /* PBXTargetDependency */ = {
|
||||
isa = PBXTargetDependency;
|
||||
name = ThisAppDoesNothing;
|
||||
targetProxy = EBA6B0951EB6E5B10080A783 /* PBXContainerItemProxy */;
|
||||
};
|
||||
/* End PBXTargetDependency section */
|
||||
|
||||
/* Begin XCBuildConfiguration section */
|
||||
EBD61FE61E47EC3C00549EE8 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
@@ -316,26 +398,31 @@
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
|
||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||
CLANG_WARN_COMMA = YES;
|
||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
|
||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
|
||||
CLANG_WARN_EMPTY_BODY = YES;
|
||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||
CLANG_WARN_INFINITE_RECURSION = YES;
|
||||
CLANG_WARN_INT_CONVERSION = YES;
|
||||
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
|
||||
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
|
||||
CLANG_WARN_STRICT_PROTOTYPES = YES;
|
||||
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
CODE_SIGN_IDENTITY = "-";
|
||||
COPY_PHASE_STRIP = NO;
|
||||
DEBUG_INFORMATION_FORMAT = dwarf;
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
ENABLE_TESTABILITY = YES;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||
GCC_DYNAMIC_NO_PIC = NO;
|
||||
GCC_NO_COMMON_BLOCKS = YES;
|
||||
GCC_OPTIMIZATION_LEVEL = 0;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"DEBUG=1",
|
||||
@@ -348,11 +435,12 @@
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IBC_FLATTEN_NIBS = NO;
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.11;
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.12;
|
||||
MTL_ENABLE_DEBUG_INFO = YES;
|
||||
ONLY_ACTIVE_ARCH = YES;
|
||||
OTHER_SWIFT_FLAGS = "-D Prefpane";
|
||||
SDKROOT = macosx;
|
||||
SWIFT_VERSION = 4.2;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
@@ -367,25 +455,30 @@
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
|
||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||
CLANG_WARN_COMMA = YES;
|
||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
|
||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
|
||||
CLANG_WARN_EMPTY_BODY = YES;
|
||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||
CLANG_WARN_INFINITE_RECURSION = YES;
|
||||
CLANG_WARN_INT_CONVERSION = YES;
|
||||
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
|
||||
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
|
||||
CLANG_WARN_STRICT_PROTOTYPES = YES;
|
||||
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
CODE_SIGN_IDENTITY = "-";
|
||||
COPY_PHASE_STRIP = NO;
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
ENABLE_NS_ASSERTIONS = NO;
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||
GCC_NO_COMMON_BLOCKS = YES;
|
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
||||
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||
@@ -393,26 +486,33 @@
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IBC_FLATTEN_NIBS = NO;
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.11;
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.12;
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
OTHER_SWIFT_FLAGS = "-D Prefpane";
|
||||
SDKROOT = macosx;
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
|
||||
SWIFT_VERSION = 4.2;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
EBD61FE91E47EC3C00549EE8 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = YES;
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
COMBINE_HIDPI_IMAGES = YES;
|
||||
CURRENT_PROJECT_VERSION = 1.1.0;
|
||||
DEVELOPMENT_TEAM = 33JDJVTQZT;
|
||||
INFOPLIST_FILE = "$(SRCROOT)/Resources/Prefpane_Info.plist";
|
||||
INSTALL_PATH = "$(HOME)/Library/PreferencePanes";
|
||||
LD_RUNPATH_SEARCH_PATHS = "@loader_path/../Frameworks";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = cl.fail.lordkamina.SwiftDefaultApps;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SWIFT_FORCE_DYNAMIC_LINK_STDLIB = NO;
|
||||
SWIFT_FORCE_STATIC_LINK_STDLIB = YES;
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
||||
SWIFT_VERSION = 3.0;
|
||||
SWIFT_VERSION = 4.2;
|
||||
VERSIONING_SYSTEM = "apple-generic";
|
||||
VERSION_INFO_EXPORT_DECL = "";
|
||||
WRAPPER_EXTENSION = prefPane;
|
||||
};
|
||||
name = Debug;
|
||||
@@ -420,15 +520,20 @@
|
||||
EBD61FEA1E47EC3C00549EE8 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = YES;
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
COMBINE_HIDPI_IMAGES = YES;
|
||||
CURRENT_PROJECT_VERSION = 1.1.0;
|
||||
DEVELOPMENT_TEAM = 33JDJVTQZT;
|
||||
INFOPLIST_FILE = "$(SRCROOT)/Resources/Prefpane_Info.plist";
|
||||
INSTALL_PATH = "$(HOME)/Library/PreferencePanes";
|
||||
LD_RUNPATH_SEARCH_PATHS = "@loader_path/../Frameworks";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = cl.fail.lordkamina.SwiftDefaultApps;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SWIFT_VERSION = 3.0;
|
||||
SWIFT_FORCE_DYNAMIC_LINK_STDLIB = NO;
|
||||
SWIFT_FORCE_STATIC_LINK_STDLIB = YES;
|
||||
SWIFT_VERSION = 4.2;
|
||||
VERSIONING_SYSTEM = "apple-generic";
|
||||
VERSION_INFO_EXPORT_DECL = "";
|
||||
WRAPPER_EXTENSION = prefPane;
|
||||
};
|
||||
name = Release;
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Workspace
|
||||
version = "1.0">
|
||||
<FileRef
|
||||
location = "self:">
|
||||
</FileRef>
|
||||
</Workspace>
|
||||
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>BuildSystemType</key>
|
||||
<string>Latest</string>
|
||||
</dict>
|
||||
</plist>
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>BuildLocationStyle</key>
|
||||
<string>UseAppPreferences</string>
|
||||
<key>BuildSystemType</key>
|
||||
<string>Latest</string>
|
||||
<key>CustomBuildLocationType</key>
|
||||
<string>RelativeToDerivedData</string>
|
||||
<key>DerivedDataLocationStyle</key>
|
||||
<string>Default</string>
|
||||
<key>EnabledFullIndexStoreVisibility</key>
|
||||
<false/>
|
||||
<key>IssueFilterStyle</key>
|
||||
<string>ShowActiveSchemeOnly</string>
|
||||
<key>LiveSourceIssuesEnabled</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "0820"
|
||||
LastUpgradeVersion = "1000"
|
||||
version = "1.7">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
@@ -27,6 +27,24 @@
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES">
|
||||
<PreActions>
|
||||
<ExecutionAction
|
||||
ActionType = "Xcode.IDEStandardExecutionActionsCore.ExecutionActionType.ShellScriptAction">
|
||||
<ActionContent
|
||||
title = "Run Script"
|
||||
scriptText = "[ -d ~/Library/PreferencePanes/SwiftDefaultApps.prefpane ] && rm -Rv ~/Library/PreferencePanes/SwiftDefaultApps.prefpane cp -Rf "${CONFIGURATION_BUILD_DIR}/SwiftDefaultApps.prefpane" ~/Library/PreferencePanes/ [ -d "${CONFIGURATION_BUILD_DIR}/ThisAppDoesNothing.app" ] && rm -Rv "${CONFIGURATION_BUILD_DIR}/ThisAppDoesNothing.app"">
|
||||
<EnvironmentBuildable>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "EBD61FD81E47EC3C00549EE8"
|
||||
BuildableName = "SwiftDefaultApps.prefPane"
|
||||
BlueprintName = "SwiftDefaultApps"
|
||||
ReferencedContainer = "container:SWDA Prefpane.xcodeproj">
|
||||
</BuildableReference>
|
||||
</EnvironmentBuildable>
|
||||
</ActionContent>
|
||||
</ExecutionAction>
|
||||
</PreActions>
|
||||
<Testables>
|
||||
</Testables>
|
||||
<MacroExpansion>
|
||||
@@ -89,11 +107,6 @@
|
||||
value = "YES"
|
||||
isEnabled = "YES">
|
||||
</EnvironmentVariable>
|
||||
<EnvironmentVariable
|
||||
key = "CA_DEBUG_TRANSACTIONS"
|
||||
value = "1"
|
||||
isEnabled = "YES">
|
||||
</EnvironmentVariable>
|
||||
</EnvironmentVariables>
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
|
||||
@@ -0,0 +1,161 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1000"
|
||||
version = "1.7">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
buildImplicitDependencies = "YES">
|
||||
<BuildActionEntries>
|
||||
<BuildActionEntry
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "YES"
|
||||
buildForArchiving = "YES"
|
||||
buildForAnalyzing = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "EBD61FD81E47EC3C00549EE8"
|
||||
BuildableName = "SwiftDefaultApps.prefPane"
|
||||
BlueprintName = "SwiftDefaultApps"
|
||||
ReferencedContainer = "container:SWDA Prefpane.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
</BuildActionEntries>
|
||||
</BuildAction>
|
||||
<TestAction
|
||||
buildConfiguration = "Debug"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES">
|
||||
<PreActions>
|
||||
<ExecutionAction
|
||||
ActionType = "Xcode.IDEStandardExecutionActionsCore.ExecutionActionType.ShellScriptAction">
|
||||
<ActionContent
|
||||
title = "Run Script"
|
||||
scriptText = "[ -d ~/Library/PreferencePanes/SwiftDefaultApps.prefpane ] && rm -Rv ~/Library/PreferencePanes/SwiftDefaultApps.prefpane cp -Rf "${CONFIGURATION_BUILD_DIR}/SwiftDefaultApps.prefpane" ~/Library/PreferencePanes/ [ -d "${CONFIGURATION_BUILD_DIR}/ThisAppDoesNothing.app" ] && rm -Rv "${CONFIGURATION_BUILD_DIR}/ThisAppDoesNothing.app"">
|
||||
<EnvironmentBuildable>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "EBD61FD81E47EC3C00549EE8"
|
||||
BuildableName = "SwiftDefaultApps.prefPane"
|
||||
BlueprintName = "SwiftDefaultApps"
|
||||
ReferencedContainer = "container:SWDA Prefpane.xcodeproj">
|
||||
</BuildableReference>
|
||||
</EnvironmentBuildable>
|
||||
</ActionContent>
|
||||
</ExecutionAction>
|
||||
</PreActions>
|
||||
<Testables>
|
||||
</Testables>
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "EBD61FD81E47EC3C00549EE8"
|
||||
BuildableName = "SwiftDefaultApps.prefPane"
|
||||
BlueprintName = "SwiftDefaultApps"
|
||||
ReferencedContainer = "container:SWDA Prefpane.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
</TestAction>
|
||||
<LaunchAction
|
||||
buildConfiguration = "Debug"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
launchStyle = "0"
|
||||
useCustomWorkingDirectory = "NO"
|
||||
ignoresPersistentStateOnLaunch = "NO"
|
||||
debugDocumentVersioning = "YES"
|
||||
debugServiceExtension = "internal"
|
||||
allowLocationSimulation = "YES">
|
||||
<PreActions>
|
||||
<ExecutionAction
|
||||
ActionType = "Xcode.IDEStandardExecutionActionsCore.ExecutionActionType.ShellScriptAction">
|
||||
<ActionContent
|
||||
title = "Run Script"
|
||||
scriptText = "[ -d ~/Library/PreferencePanes/SwiftDefaultApps.prefpane ] && rm -Rv ~/Library/PreferencePanes/SwiftDefaultApps.prefpane cp -Rf "${CONFIGURATION_BUILD_DIR}/SwiftDefaultApps.prefpane" ~/Library/PreferencePanes/ [ -d "${CONFIGURATION_BUILD_DIR}/ThisAppDoesNothing.app" ] && rm -Rv "${CONFIGURATION_BUILD_DIR}/ThisAppDoesNothing.app"">
|
||||
<EnvironmentBuildable>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "EBD61FD81E47EC3C00549EE8"
|
||||
BuildableName = "SwiftDefaultApps.prefPane"
|
||||
BlueprintName = "SwiftDefaultApps"
|
||||
ReferencedContainer = "container:SWDA Prefpane.xcodeproj">
|
||||
</BuildableReference>
|
||||
</EnvironmentBuildable>
|
||||
</ActionContent>
|
||||
</ExecutionAction>
|
||||
</PreActions>
|
||||
<PathRunnable
|
||||
runnableDebuggingMode = "0"
|
||||
BundleIdentifier = "com.apple.systempreferences"
|
||||
FilePath = "/Applications/System Preferences.app">
|
||||
</PathRunnable>
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "EBD61FD81E47EC3C00549EE8"
|
||||
BuildableName = "SwiftDefaultApps.prefPane"
|
||||
BlueprintName = "SwiftDefaultApps"
|
||||
ReferencedContainer = "container:SWDA Prefpane.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
<EnvironmentVariables>
|
||||
<EnvironmentVariable
|
||||
key = "OBJC_DISABLE_GC"
|
||||
value = "YES"
|
||||
isEnabled = "YES">
|
||||
</EnvironmentVariable>
|
||||
</EnvironmentVariables>
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
buildConfiguration = "Debug"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
savedToolIdentifier = ""
|
||||
useCustomWorkingDirectory = "NO"
|
||||
debugDocumentVersioning = "YES">
|
||||
<PreActions>
|
||||
<ExecutionAction
|
||||
ActionType = "Xcode.IDEStandardExecutionActionsCore.ExecutionActionType.ShellScriptAction">
|
||||
<ActionContent
|
||||
title = "Run Script"
|
||||
scriptText = "[ -d ~/Library/PreferencePanes/SwiftDefaultApps.prefpane ] && rm -Rv ~/Library/PreferencePanes/SwiftDefaultApps.prefpane cp -Rf "${CONFIGURATION_BUILD_DIR}/SwiftDefaultApps.prefpane" ~/Library/PreferencePanes/">
|
||||
<EnvironmentBuildable>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "EBD61FD81E47EC3C00549EE8"
|
||||
BuildableName = "SwiftDefaultApps.prefPane"
|
||||
BlueprintName = "SwiftDefaultApps"
|
||||
ReferencedContainer = "container:SWDA Prefpane.xcodeproj">
|
||||
</BuildableReference>
|
||||
</EnvironmentBuildable>
|
||||
</ActionContent>
|
||||
</ExecutionAction>
|
||||
</PreActions>
|
||||
<PathRunnable
|
||||
runnableDebuggingMode = "0"
|
||||
BundleIdentifier = "com.apple.systempreferences"
|
||||
FilePath = "/Applications/System Preferences.app">
|
||||
</PathRunnable>
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "EBD61FD81E47EC3C00549EE8"
|
||||
BuildableName = "SwiftDefaultApps.prefPane"
|
||||
BlueprintName = "SwiftDefaultApps"
|
||||
ReferencedContainer = "container:SWDA Prefpane.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
</ProfileAction>
|
||||
<AnalyzeAction
|
||||
buildConfiguration = "Debug">
|
||||
</AnalyzeAction>
|
||||
<ArchiveAction
|
||||
buildConfiguration = "Release"
|
||||
customArchiveName = "SwiftDefaultApps"
|
||||
revealArchiveInOrganizer = "YES">
|
||||
</ArchiveAction>
|
||||
</Scheme>
|
||||
@@ -11,3 +11,5 @@ import Foundation
|
||||
import SwiftCLI
|
||||
CLI.setup(name:"lsreg", version:"1.0", description:"Utility to retrieve and manipulate default applications in macOS.")
|
||||
CLI.register(commands: [ ReadCommand(), GetApps(), GetSchemes(), GetUTIs(), SetCommand() ])
|
||||
|
||||
exit(CLI.go())
|
||||
|
||||
@@ -88,7 +88,7 @@ class LSWrappers {
|
||||
- Returns: An array of strings corresponding to file-extensions for that UTI, or nil.
|
||||
*/
|
||||
static func copyExtensionsFor(_ inUTI: String) -> [String]? {
|
||||
if let result = (UTTypeCopyAllTagsWithClass(inUTI as CFString, kUTTagClassFilenameExtension)?.takeRetainedValue() as? NSArray) {
|
||||
if let result = (UTTypeCopyAllTagsWithClass(inUTI as CFString, kUTTagClassFilenameExtension)?.takeRetainedValue()) {
|
||||
if let extensions = result as? [String] {
|
||||
return extensions
|
||||
}
|
||||
@@ -106,7 +106,7 @@ class LSWrappers {
|
||||
if let value = LSCopyDefaultRoleHandlerForContentType(inUTI as CFString, inRoles) {
|
||||
let handlerID = value.takeRetainedValue() as String
|
||||
if (asPath == true) {
|
||||
if let handlerURL = NSWorkspace.shared().urlForApplication(withBundleIdentifier: handlerID) {
|
||||
if let handlerURL = NSWorkspace.shared.urlForApplication(withBundleIdentifier: handlerID) {
|
||||
return handlerURL.path
|
||||
}
|
||||
else { return nil }
|
||||
@@ -127,7 +127,7 @@ class LSWrappers {
|
||||
let handlerIDs = (value.takeRetainedValue() as! Array<String>)
|
||||
if (asPath == true) {
|
||||
for handlerID in handlerIDs {
|
||||
if let handlerURL = NSWorkspace.shared().urlForApplication(withBundleIdentifier: handlerID) {
|
||||
if let handlerURL = NSWorkspace.shared.urlForApplication(withBundleIdentifier: handlerID) {
|
||||
handlers.append(handlerURL.path)
|
||||
}
|
||||
}
|
||||
@@ -238,7 +238,7 @@ class LSWrappers {
|
||||
if let value = LSCopyDefaultHandlerForURLScheme(inScheme as CFString) {
|
||||
let handlerID = value.takeRetainedValue() as String
|
||||
if (asPath == true) {
|
||||
if let handlerURL = NSWorkspace.shared().urlForApplication(withBundleIdentifier: handlerID) {
|
||||
if let handlerURL = NSWorkspace.shared.urlForApplication(withBundleIdentifier: handlerID) {
|
||||
return handlerURL.path
|
||||
}
|
||||
else { return nil }
|
||||
@@ -259,7 +259,7 @@ class LSWrappers {
|
||||
let handlerIDs = (value.takeRetainedValue() as! Array<String>)
|
||||
if (asPath == true) {
|
||||
for handlerID in handlerIDs {
|
||||
if let handlerURL = NSWorkspace.shared().urlForApplication(withBundleIdentifier: handlerID) {
|
||||
if let handlerURL = NSWorkspace.shared.urlForApplication(withBundleIdentifier: handlerID) {
|
||||
handlers.append(handlerURL.path)
|
||||
}
|
||||
}
|
||||
@@ -342,11 +342,11 @@ class LSWrappers {
|
||||
outBundleID = "cl.fail.lordkamina.ThisAppDoesNothing"
|
||||
return 0
|
||||
}
|
||||
if NSWorkspace.shared().absolutePathForApplication(withBundleIdentifier: inParam) != nil { // Check whether we have a valid Bundle ID for an application.
|
||||
if NSWorkspace.shared.absolutePathForApplication(withBundleIdentifier: inParam) != nil { // Check whether we have a valid Bundle ID for an application.
|
||||
outBundleID = inParam
|
||||
return 0
|
||||
}
|
||||
else if let appPath = NSWorkspace.shared().fullPath(forApplication: inParam) { // Or an application designed by name
|
||||
else if let appPath = NSWorkspace.shared.fullPath(forApplication: inParam) { // Or an application designed by name
|
||||
if let bundle = Bundle(path:appPath) {
|
||||
if let type = bundle.getType(outError: &errCode) {
|
||||
if (type == "APPL" || type == "FNDR") {
|
||||
@@ -443,7 +443,7 @@ class LSWrappers {
|
||||
}
|
||||
else if let fileExtArray = (utiDict["CFBundleTypeExtensions"] as? [String]) {
|
||||
for fileExt in fileExtArray {
|
||||
if let newUTI = (UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, fileExt as CFString, "public.content" as CFString)?.takeRetainedValue() as? String) {
|
||||
if let newUTI = (UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, fileExt as CFString, "public.content" as CFString)?.takeRetainedValue() as String?) {
|
||||
|
||||
if ((!UTTypeIsDynamic(newUTI as CFString)) && (handledUTIs[typeRole]!.index(of:newUTI) == nil)) {
|
||||
utiArray.append(newUTI)
|
||||
|
||||
@@ -64,7 +64,7 @@ prefix operator /
|
||||
func =~ (string: String, regex: NSRegularExpression?) -> Bool? {
|
||||
guard let matches = regex?.numberOfMatches(in:string,
|
||||
options: [],
|
||||
range: NSMakeRange(0, string.characters.count))
|
||||
range: NSMakeRange(0, string.count))
|
||||
else { return nil }
|
||||
return matches > 0
|
||||
}
|
||||
@@ -172,13 +172,13 @@ extension Dictionary
|
||||
extension NSFont {
|
||||
/** Returns a SmallCaps version of the font it is invoked on. */
|
||||
func smallCaps() -> NSFont? {
|
||||
let settings = [[NSFontFeatureTypeIdentifierKey: kLowerCaseType, NSFontFeatureSelectorIdentifierKey: kLowerCaseSmallCapsSelector]]
|
||||
let attributes: [String: AnyObject] = [NSFontFeatureSettingsAttribute: settings as AnyObject, NSFontNameAttribute: fontName as AnyObject]
|
||||
let settings = [[NSFontDescriptor.FeatureKey.typeIdentifier: kLowerCaseType, NSFontDescriptor.FeatureKey.selectorIdentifier: kLowerCaseSmallCapsSelector]]
|
||||
let attributes: [NSFontDescriptor.AttributeName: AnyObject] = [NSFontDescriptor.AttributeName.featureSettings: settings as AnyObject, NSFontDescriptor.AttributeName.name: fontName as AnyObject]
|
||||
return NSFont(descriptor: NSFontDescriptor(fontAttributes: attributes), size: pointSize)
|
||||
}
|
||||
/** Returns a **Bold** version of the font it is invoked on. */
|
||||
func bold() -> NSFont? {
|
||||
let fontManager = NSFontManager.shared()
|
||||
let fontManager = NSFontManager.shared
|
||||
return fontManager.convert(self, toHaveTrait: .boldFontMask)
|
||||
}
|
||||
/**
|
||||
@@ -186,7 +186,7 @@ extension NSFont {
|
||||
- Note: Not currently used.
|
||||
*/
|
||||
func italic() -> NSFont? {
|
||||
let fontManager = NSFontManager.shared()
|
||||
let fontManager = NSFontManager.shared
|
||||
return fontManager.convert(self, toHaveTrait: .italicFontMask)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,14 +14,14 @@ class AppDelegate: NSObject, NSApplicationDelegate {
|
||||
|
||||
@IBOutlet weak var window: NSWindow!
|
||||
|
||||
func handleGetURLEvent(_ event: NSAppleEventDescriptor!, withReplyEvent: NSAppleEventDescriptor!) {
|
||||
@objc func handleGetURLEvent(_ event: NSAppleEventDescriptor!, withReplyEvent: NSAppleEventDescriptor!) {
|
||||
let urlPassed = event.paramDescriptor(forKeyword: AEKeyword(keyDirectObject))!.stringValue!
|
||||
NSLog("Dummy application launched in response to URL: \(urlPassed), will now exit.")
|
||||
}
|
||||
|
||||
func handleOpenEvent(_ event: NSAppleEventDescriptor!, withReplyEvent: NSAppleEventDescriptor!) {
|
||||
@objc func handleOpenEvent(_ event: NSAppleEventDescriptor!, withReplyEvent: NSAppleEventDescriptor!) {
|
||||
let documentPassed = event.paramDescriptor(forKeyword: AEKeyword(keyDirectObject))!.stringValue!
|
||||
guard let documentType = try? NSWorkspace.shared().type(ofFile: URL(string:documentPassed)!.path) else {
|
||||
guard let documentType = try? NSWorkspace.shared.type(ofFile: URL(string:documentPassed)!.path) else {
|
||||
NSLog("Dummy application launched in response to file with unknown type, will now exit.")
|
||||
return
|
||||
}
|
||||
@@ -34,7 +34,7 @@ class AppDelegate: NSObject, NSApplicationDelegate {
|
||||
}
|
||||
|
||||
func applicationDidFinishLaunching(_ aNotification: Notification) {
|
||||
NSApplication.shared().terminate(self)
|
||||
NSApplication.shared.terminate(self)
|
||||
}
|
||||
|
||||
func applicationWillTerminate(_ aNotification: Notification) {
|
||||
|
||||
@@ -85,7 +85,7 @@ class SWDAApplicationInfo: NSObject {
|
||||
default:
|
||||
let result = LSWrappers.getBundleID(inParam, outBundleID: &bundleID)
|
||||
if (result == 0) {
|
||||
let appURL = NSWorkspace.shared().urlForApplication(withBundleIdentifier: bundleID!)
|
||||
let appURL = NSWorkspace.shared.urlForApplication(withBundleIdentifier: bundleID!)
|
||||
guard appURL != nil else { return nil }
|
||||
if let bundle = Bundle(url: appURL!) {
|
||||
self.appBundleID = bundle.bundleIdentifier!
|
||||
@@ -112,7 +112,7 @@ class SWDAApplicationInfo: NSObject {
|
||||
}
|
||||
else { self.appVersion = nil }
|
||||
self.appPath = bundle.bundlePath
|
||||
self.appIcon = NSWorkspace.shared().icon(forFile: bundle.bundlePath)
|
||||
self.appIcon = NSWorkspace.shared.icon(forFile: bundle.bundlePath)
|
||||
}
|
||||
else {
|
||||
NSLog(LSWrappers.LSErrors.init(value:result).print(argument: (app: inParam, content:"")))
|
||||
|
||||
@@ -25,7 +25,7 @@ internal protocol SWDAContentProtocol: class {
|
||||
class SWDAContentItem: NSObject, SWDAContentProtocol {
|
||||
|
||||
/** Generates the NSTreeView displaying all the handlers associated to this content type. Results are sorted alphabetically, with the exception of the special "Other..." and "Do Nothing" entries. */
|
||||
lazy var contentHandlers: [SWDATreeRow] = {
|
||||
@objc lazy var contentHandlers: [SWDATreeRow] = {
|
||||
var roles: [SWDATreeRow] = []
|
||||
var rolesArray: [SourceListRoleTypes] = []
|
||||
switch self.contentType {
|
||||
@@ -67,8 +67,8 @@ class SWDAContentItem: NSObject, SWDAContentProtocol {
|
||||
}
|
||||
return roles
|
||||
}()
|
||||
var contentDescription: String = ""
|
||||
var contentName: String = ""
|
||||
@objc var contentDescription: String = ""
|
||||
@objc var contentName: String = ""
|
||||
var contentType: SWDAContentType
|
||||
|
||||
/** Initializer. contentDescription is only really used for the "Internet" Tab. */
|
||||
@@ -84,10 +84,10 @@ class SWDAContentItem: NSObject, SWDAContentProtocol {
|
||||
}
|
||||
}
|
||||
|
||||
lazy var displayName: String = {
|
||||
@objc lazy var displayName: String = {
|
||||
return self.value(forKey:ControllersRef.TabData.displayNameKeyPath) as! String
|
||||
}()
|
||||
lazy var getExtensions: String = {
|
||||
@objc lazy var getExtensions: String = {
|
||||
guard self.contentType == .UTI else { return "" }
|
||||
if let extensions = copyStringArrayAsString(LSWrappers.UTType.copyExtensionsFor(self.contentName), separator:", ") {
|
||||
return "Extensions: \(extensions)"
|
||||
@@ -103,20 +103,20 @@ class SWDAContentItem: NSObject, SWDAContentProtocol {
|
||||
return self.contentDescription
|
||||
}
|
||||
else { return "" }
|
||||
case .UTI: if let desc = (UTTypeCopyDescription(self.contentName as CFString)?.takeRetainedValue() as? String) {
|
||||
case .UTI: if let desc = (UTTypeCopyDescription(self.contentName as CFString)?.takeRetainedValue() as String?) {
|
||||
return desc
|
||||
}
|
||||
else { return "" }
|
||||
case .Application: return ""
|
||||
}
|
||||
}
|
||||
lazy var appPath: String = { return "" }()
|
||||
var appIcon: NSImage? = nil
|
||||
@objc lazy var appPath: String = { return "" }()
|
||||
@objc var appIcon: NSImage? = nil
|
||||
}
|
||||
|
||||
/** Our other NSObject subclass adopting the SWDAContentProtocol, represents an Application and all of its associated URL Schemes and UTIs. If an application declares no UTIs, it looks for File Extensions and displays the UTI preferred to represent that extension. */
|
||||
class SWDAApplicationItem: NSObject, SWDAContentProtocol {
|
||||
lazy var contentHandlers: [SWDATreeRow] = {
|
||||
@objc lazy var contentHandlers: [SWDATreeRow] = {
|
||||
var allHandlers: [SWDATreeRow] = []
|
||||
if let bundle = self.appBundleInfo {
|
||||
let handledContent = bundle.handledContent
|
||||
@@ -153,13 +153,13 @@ class SWDAApplicationItem: NSObject, SWDAContentProtocol {
|
||||
}
|
||||
return allHandlers
|
||||
}()
|
||||
var contentDescription: String = ""
|
||||
var contentName: String = ""
|
||||
@objc var contentDescription: String = ""
|
||||
@objc var contentName: String = ""
|
||||
var contentType: SWDAContentType
|
||||
var appBundleInfo: SWDAApplicationInfo?
|
||||
@objc var appBundleInfo: SWDAApplicationInfo?
|
||||
|
||||
/** Determine a hashValue from the Bundle ID to prevent duplicate Applications, since in practice Launch Services will not allow us to choose a specific version of an Application but rather choose the best according to its own set of criteria outlined in the Launch Services Programming Guide. */
|
||||
override var hashValue: Int { return (self.appBundleInfo?.appBundleID)?.hashValue ?? -1 }
|
||||
override var hash: Int { return (self.appBundleInfo?.appBundleID)?.hash ?? -1 }
|
||||
|
||||
init? (_ app: String) {
|
||||
self.contentType = .Application
|
||||
@@ -172,24 +172,24 @@ class SWDAApplicationItem: NSObject, SWDAContentProtocol {
|
||||
self.setValue(self.appBundleInfo?.displayName, forKey: "contentName")
|
||||
self.setValue(self.getDescription(), forKey: "contentDescription")
|
||||
}
|
||||
lazy var displayName: String = {
|
||||
@objc lazy var displayName: String = {
|
||||
return self.value(forKey:"contentName") as! String
|
||||
}()
|
||||
|
||||
lazy var appPath: String = {
|
||||
@objc lazy var appPath: String = {
|
||||
if let path = self.appBundleInfo?.appPath {
|
||||
return path
|
||||
}
|
||||
else { return "" }
|
||||
}()
|
||||
|
||||
lazy var appIcon: NSImage? = {
|
||||
@objc lazy var appIcon: NSImage? = {
|
||||
if let icon = self.appBundleInfo?.appIcon {
|
||||
return icon
|
||||
}
|
||||
else { return nil }
|
||||
}()
|
||||
var getExtensions: String = ""
|
||||
@objc var getExtensions: String = ""
|
||||
func getDescription () -> String {
|
||||
if let version = self.appBundleInfo?.appVersion {
|
||||
return "Version: \(version)"
|
||||
|
||||
@@ -22,10 +22,10 @@ internal enum SWDAContentType: String {
|
||||
|
||||
/** Our main model class, tasked with getting and populating the content arrays associated with each tab. */
|
||||
class SWDAHandlersModel: NSObject {
|
||||
static var allUTIs: [SWDAContentItem]?
|
||||
static var allSchemes: [SWDAContentItem]?
|
||||
static var internetSchemes: [SWDAContentItem]?
|
||||
static var allApps: [SWDAApplicationItem]?
|
||||
@objc static var allUTIs: [SWDAContentItem]?
|
||||
@objc static var allSchemes: [SWDAContentItem]?
|
||||
@objc static var internetSchemes: [SWDAContentItem]?
|
||||
@objc static var allApps: [SWDAApplicationItem]?
|
||||
|
||||
/**
|
||||
This function is indirectly called by the contentArray variable in each SWDATabTemplate instance, it's responsible for asynchronously populating each model array with the appropriate content and sending messages for the ProgressAlert to update itself.
|
||||
@@ -44,7 +44,6 @@ class SWDAHandlersModel: NSObject {
|
||||
var codeBlock: (_ : Int) -> Void = { index in }
|
||||
var sourceItems: [String] = []
|
||||
var sourceDescriptions: [String:String] = [:]
|
||||
var apps: [SWDAApplicationItem] = []
|
||||
var outputItems: Any // By using the SynchronizedArray class, we can concurrently create the larger Content Arrays across multiple threads, in a safe manner.
|
||||
if (type == "Applications") {
|
||||
outputItems = SynchronizedArray<SWDAApplicationItem>()
|
||||
|
||||
@@ -118,7 +118,7 @@ public extension SynchronizedArray {
|
||||
/// - Returns: An array of the non-nil results of calling transform with each element of the sequence.
|
||||
func flatMap<ElementOfResult>(_ transform: (Element) -> ElementOfResult?) -> [ElementOfResult] {
|
||||
var result = [ElementOfResult]()
|
||||
queue.sync { result = self.array.flatMap(transform) }
|
||||
queue.sync { result = self.array.compactMap(transform) }
|
||||
return result
|
||||
}
|
||||
|
||||
|
||||
@@ -45,7 +45,6 @@ class SWDAMainPrefPane: NSPreferencePane {
|
||||
alert.informativeText = "by Gregorio Litenstein."
|
||||
alert.icon = ControllersRef.appIcon
|
||||
alert.accessoryView = HyperlinkTextField(frame: NSRect(x: 0, y:10, width:330, height:18), url: "http://www.github.com/Lord-Kamina/SwiftDefaultApps")
|
||||
Swift.print("Frame minX: \(alert.accessoryView?.frame.minX), Frame minY: \(alert.accessoryView?.frame.minY), Frame midX: \(alert.accessoryView?.frame.midX), Frame midY: \(alert.accessoryView?.frame.midY), Frame maxX: \(alert.accessoryView?.frame.maxX), Frame maxY: \(alert.accessoryView?.frame.maxY)")
|
||||
|
||||
alert.alertStyle = .informational
|
||||
alert.addButton(withTitle: "OK")
|
||||
|
||||
@@ -20,7 +20,7 @@ final internal class ControllersRef: NSObject {
|
||||
var originalFonts: [NSControl:NSFont] = [:]
|
||||
|
||||
/** Store a reference to the main icon, since we cannot use mainBundle on a preference pane. */
|
||||
static let appIcon: NSImage = NSWorkspace.shared().icon(forFile: Bundle(identifier: "cl.fail.lordkamina.SwiftDefaultApps")!.bundlePath)
|
||||
static let appIcon: NSImage = NSWorkspace.shared.icon(forFile: Bundle(identifier: "cl.fail.lordkamina.SwiftDefaultApps")!.bundlePath)
|
||||
|
||||
/** Information relevant to the different tabs, such as labels, Keypaths for their content arrays, and such. */
|
||||
enum TabData {
|
||||
|
||||
@@ -30,7 +30,7 @@ import Cocoa
|
||||
else { return }
|
||||
|
||||
var objects: NSArray? = NSArray()
|
||||
self.bundle?.loadNibNamed(theNibName, owner: self, topLevelObjects: &objects!)
|
||||
self.bundle?.loadNibNamed(theNibName, owner: self, topLevelObjects: &objects)
|
||||
if let theObjects = objects
|
||||
{
|
||||
for view in theObjects
|
||||
@@ -53,7 +53,7 @@ import Cocoa
|
||||
else {return nil}
|
||||
|
||||
var objects: NSArray? = NSArray()
|
||||
var isLoaded = Bundle.main.loadNibNamed(theNibName, owner: self, topLevelObjects: &objects!)
|
||||
var isLoaded = Bundle.main.loadNibNamed(theNibName, owner: self, topLevelObjects: &objects)
|
||||
if isLoaded
|
||||
{
|
||||
return Bundle.main
|
||||
@@ -79,7 +79,7 @@ import Cocoa
|
||||
|
||||
|
||||
|
||||
var inspectedObject: NSObject? {
|
||||
@objc var inspectedObject: NSObject? {
|
||||
didSet {
|
||||
self.willChangeValue(forKey: "inspectedObject")
|
||||
self.didChangeValue(forKey: "inspectedObject")
|
||||
|
||||
@@ -14,7 +14,7 @@ class ProgressAlert: NSAlert {
|
||||
var progressBar = NSProgressIndicator()
|
||||
override init() {
|
||||
progressBar.isIndeterminate = false
|
||||
progressBar.style = .barStyle
|
||||
progressBar.style = .bar
|
||||
super.init()
|
||||
|
||||
self.messageText = ""
|
||||
|
||||
@@ -41,13 +41,13 @@ internal class SWDATreeRow:NSObject {
|
||||
|
||||
/** Required functionality for our NSTreeView. */
|
||||
weak var parentNode: SWDATreeRow?
|
||||
var children: [SWDATreeRow] = []
|
||||
var count: Int { return children.count }
|
||||
var isLeaf: Bool { return children.count < 1}
|
||||
@objc var children: [SWDATreeRow] = []
|
||||
@objc var count: Int { return children.count }
|
||||
@objc var isLeaf: Bool { return children.count < 1}
|
||||
|
||||
|
||||
/** Dirty trick to avoid subclassing NSOutlineView. */
|
||||
var shouldFauxIndent: Bool {
|
||||
@objc var shouldFauxIndent: Bool {
|
||||
return self.rowLevel == .handler
|
||||
}
|
||||
|
||||
@@ -64,7 +64,7 @@ internal class SWDATreeRow:NSObject {
|
||||
var baseFont: NSFont = NSFont.systemFont(ofSize:0)
|
||||
|
||||
/** Bindings-compatible determination of the font to use. */
|
||||
var rowFont: NSFont? {
|
||||
@objc var rowFont: NSFont? {
|
||||
switch self.rowLevel {
|
||||
case .header: return self.baseFont.smallCaps()
|
||||
case .role: return self.baseFont.bold()
|
||||
@@ -72,7 +72,7 @@ internal class SWDATreeRow:NSObject {
|
||||
}
|
||||
}
|
||||
/** Show header rows in a different color. */
|
||||
var textColor: NSColor? {
|
||||
@objc var textColor: NSColor? {
|
||||
switch self.rowLevel {
|
||||
case .header: return NSColor.headerColor
|
||||
default: return NSColor.controlTextColor
|
||||
@@ -80,16 +80,16 @@ internal class SWDATreeRow:NSObject {
|
||||
}
|
||||
|
||||
/** What the Tree Row will actually display as a label. */
|
||||
var rowTitle: String
|
||||
@objc var rowTitle: String
|
||||
|
||||
/** Content and associated application. Optional to account for dummy rows like Headers. */
|
||||
var rowContent: SWDAContentHandler?
|
||||
var roleMask: SourceListRoleTypes?
|
||||
|
||||
lazy var appIcon: NSImage? = { return self.rowContent?.application?.appIcon }()
|
||||
@objc lazy var appIcon: NSImage? = { return self.rowContent?.application?.appIcon }()
|
||||
|
||||
/** Binding-compatible determination used exclusively for SWDATreeRows in the Applications tab. Returns true if the currently selected application is the default handler for the content represented by this row. It's only enabled when its state is off, since in practice it's not actually possible to remove handlers from LaunchServices. Rather, the service takes care of its own clean-up if it detects an UTI or URL Scheme does not have any valid handlers. */
|
||||
var isHandlingContent: Bool {
|
||||
@objc var isHandlingContent: Bool {
|
||||
get {
|
||||
guard (ControllersRef.sharedInstance.tabViewController!.currentTab?.label == "Applications") else { return false }
|
||||
guard (self.rowContent != nil) else { return false }
|
||||
@@ -108,7 +108,7 @@ internal class SWDATreeRow:NSObject {
|
||||
if let bundleID = self.rowContent?.application?.appBundleID {
|
||||
status = (type == .URL) ? LSWrappers.Schemes.setDefaultHandler(contentName, bundleID) : LSWrappers.UTType.setDefaultHandler(contentName, bundleID, LSRolesMask(from:self.roleMask!))
|
||||
let alert = NSAlert()
|
||||
alert.informativeText = (status == 0) ? "Succesfully changed default handler for \(self.rowTitle) to \(self.rowContent?.application?.displayName)" : LSWrappers.LSErrors(value: status).print(argument: (app: (self.rowContent?.application?.displayName)!, content: self.rowTitle))
|
||||
alert.informativeText = (status == 0) ? "Succesfully changed default handler for \(self.rowTitle) to \(self.rowContent?.application?.displayName ?? "Invalid App")" : LSWrappers.LSErrors(value: status).print(argument: (app: (self.rowContent?.application?.displayName)!, content: self.rowTitle))
|
||||
alert.icon = ControllersRef.appIcon
|
||||
alert.messageText = (status == 0) ? "Success" : "Error"
|
||||
alert.alertStyle = (status == 0) ? .informational : .critical
|
||||
@@ -130,7 +130,7 @@ internal class SWDATreeRow:NSObject {
|
||||
}
|
||||
|
||||
/** Binding-compatible determination used in every tab except for Applications. Returns true if the application represented by the current row is the default handler for the selected content type. Allows "Other" to specify apps that aren't detected as valid handlers for whatever reason. Note that setting something to be handled by "Other" will not _actually_ work unless the application's Info.plist adequately declares association with that content. */
|
||||
var isDefaultHandler: Bool {
|
||||
@objc var isDefaultHandler: Bool {
|
||||
get {
|
||||
if let content = (self.rowContent?.content as? SWDAContentItem) {
|
||||
var handler: String?
|
||||
|
||||
@@ -11,10 +11,10 @@ import AppKit
|
||||
|
||||
extension DRYView {
|
||||
/** Bridge required to make currentTab really dependent on the selectedTabViewItemIndex */
|
||||
weak var tabViewController: SWDATabViewController? { return ControllersRef.sharedInstance.tabViewController }
|
||||
@objc weak var tabViewController: SWDATabViewController? { return ControllersRef.sharedInstance.tabViewController }
|
||||
|
||||
/** Reference to the currently selected TabViewItem */
|
||||
dynamic var currentTab: String? {
|
||||
@objc dynamic var currentTab: String? {
|
||||
if let selectedTab = ControllersRef.sharedInstance.tabViewController?.currentTab {
|
||||
return selectedTab.label
|
||||
}
|
||||
@@ -23,46 +23,46 @@ extension DRYView {
|
||||
|
||||
/** Open Finder and Reveal the currently selected Application. */
|
||||
@IBAction func revealAppInFinder(_ sender: NSButton) {
|
||||
NSWorkspace.shared().activateFileViewerSelecting([URL(fileURLWithPath:sender.title)])
|
||||
NSWorkspace.shared.activateFileViewerSelecting([URL(fileURLWithPath:sender.title)])
|
||||
}
|
||||
|
||||
/** Determines whether to show a Description in the Detail View */
|
||||
var showDescriptionBool: NSNumber {
|
||||
@objc var showDescriptionBool: NSNumber {
|
||||
guard (self.currentTab != nil) else { return NSNumber(booleanLiteral:true) }
|
||||
return NSNumber(booleanLiteral:ControllersRef.TabData.shouldShowDescription)
|
||||
}
|
||||
|
||||
/** Determines whether to show a path and Reveal In Finder button */
|
||||
var showPathBool: NSNumber {
|
||||
@objc var showPathBool: NSNumber {
|
||||
guard (self.currentTab != nil) else { return NSNumber(booleanLiteral:false) }
|
||||
return NSNumber(booleanLiteral:ControllersRef.TabData.shouldShowAppPath)
|
||||
}
|
||||
|
||||
/** The only tab where an "Add" button is at all meaningful is the URL Schemes. */
|
||||
var showAddRemoveBool: NSNumber {
|
||||
@objc var showAddRemoveBool: NSNumber {
|
||||
guard (self.currentTab != nil) else { return NSNumber(booleanLiteral:false) }
|
||||
return NSNumber(booleanLiteral:ControllersRef.TabData.shouldShowAddRemove)
|
||||
}
|
||||
|
||||
/** Determines whether to ahow a list of file extensions associated with a given UTI. */
|
||||
var showFileExtensionsBool: NSNumber {
|
||||
@objc var showFileExtensionsBool: NSNumber {
|
||||
guard (self.currentTab != nil) else { return NSNumber(booleanLiteral:false) }
|
||||
return NSNumber(booleanLiteral:ControllersRef.TabData.shouldShowFileExts)
|
||||
}
|
||||
|
||||
class func keyPathsForValuesAffectingShowDescriptionBool() -> Set<String> {
|
||||
@objc class func keyPathsForValuesAffectingShowDescriptionBool() -> Set<String> {
|
||||
return Set([#keyPath(currentTab), #keyPath(inspectedObject)])
|
||||
}
|
||||
class func keyPathsForValuesAffectingShowPathBool() -> Set<String> {
|
||||
@objc class func keyPathsForValuesAffectingShowPathBool() -> Set<String> {
|
||||
return Set([#keyPath(currentTab), #keyPath(inspectedObject)])
|
||||
}
|
||||
class func keyPathsForValuesAffectingShowAddRemoveBool() -> Set<String> {
|
||||
@objc class func keyPathsForValuesAffectingShowAddRemoveBool() -> Set<String> {
|
||||
return Set([#keyPath(currentTab), #keyPath(inspectedObject)])
|
||||
}
|
||||
class func keyPathsForValuesAffectingShowFileExtensionsBool() -> Set<String> {
|
||||
@objc class func keyPathsForValuesAffectingShowFileExtensionsBool() -> Set<String> {
|
||||
return Set([#keyPath(currentTab), #keyPath(inspectedObject)])
|
||||
}
|
||||
class func keyPathsForValuesAffectingCurrentTab() -> Set<String> {
|
||||
@objc class func keyPathsForValuesAffectingCurrentTab() -> Set<String> {
|
||||
return Set(["tabViewController.selectedTabViewItemIndex"])
|
||||
}
|
||||
}
|
||||
@@ -77,7 +77,7 @@ class SWDATableView: NSView {
|
||||
override func awakeFromNib() {
|
||||
if let ac = arrayController {
|
||||
if let tableView = tableView {
|
||||
ac.bind("sortDescriptors", to:tableView, withKeyPath: "sortDescriptors", options:nil)
|
||||
ac.bind(NSBindingName(rawValue: "sortDescriptors"), to:tableView, withKeyPath: "sortDescriptors", options:nil)
|
||||
tableView.sortDescriptors = defaultSortDescriptors
|
||||
tableView.selectRowIndexes(NSIndexSet(index: 0) as IndexSet, byExtendingSelection: false)
|
||||
self.tableView?.becomeFirstResponder()
|
||||
@@ -96,7 +96,7 @@ class SWDATabTemplate: DRYView {
|
||||
@IBOutlet var tableView: NSTableView!
|
||||
|
||||
/** Let's save selected item for each tab, update selectionIndex with the current value of our selection when our selection would be replaced with an empty or invalid one. */
|
||||
var tableIndexes = NSIndexSet(index: 0)
|
||||
@objc var tableIndexes = NSIndexSet(index: 0)
|
||||
{
|
||||
willSet {
|
||||
if (newValue.count < 1) { self.selectionIndex = self.tableIndexes.firstIndex }
|
||||
@@ -132,10 +132,10 @@ class SWDATabTemplate: DRYView {
|
||||
var selectionIndex: Int? = nil
|
||||
|
||||
/** Backing Store for the list of items on each tab. */
|
||||
var contentArrayStore: Array<AnyObject>?
|
||||
@objc var contentArrayStore: Array<AnyObject>?
|
||||
|
||||
/** Check whether contentArrayStore holds anything; return that if it does or populate it asynchronously if it doesn't. */
|
||||
var contentArray: Array<AnyObject>? {
|
||||
@objc var contentArray: Array<AnyObject>? {
|
||||
guard self.nibName == "SWDAPrefpaneTabTemplate" else { return [] }
|
||||
if (self.tabIndex == ControllersRef.sharedInstance.tabViewController?.selectedTabViewItemIndex) {
|
||||
if (self.contentArrayStore == nil) {
|
||||
@@ -155,11 +155,11 @@ class SWDATabTemplate: DRYView {
|
||||
}
|
||||
}
|
||||
|
||||
class func keyPathsForValuesAffectingContentArray() -> Set<String> {
|
||||
@objc class func keyPathsForValuesAffectingContentArray() -> Set<String> {
|
||||
return Set([#keyPath(currentTab), #keyPath(contentArrayStore)])
|
||||
}
|
||||
|
||||
class func keyPathsForValuesAffectingContentArrayStore() -> Set<String> {
|
||||
@objc class func keyPathsForValuesAffectingContentArrayStore() -> Set<String> {
|
||||
return Set([#keyPath(currentTab)])
|
||||
}
|
||||
}
|
||||
@@ -188,8 +188,8 @@ class SWDATabViewController: NSTabViewController {
|
||||
}
|
||||
if (tabViewKVOContext == context) {
|
||||
guard (change![.oldKey]! as! Int != -1) else { return }
|
||||
let oldTab = self.childViewControllers[change![.oldKey]! as! Int].view as! SWDATabTemplate
|
||||
let newTab = self.childViewControllers[change![.newKey]! as! Int].view as! SWDATabTemplate
|
||||
let oldTab = self.children[change![.oldKey]! as! Int].view as! SWDATabTemplate
|
||||
let newTab = self.children[change![.newKey]! as! Int].view as! SWDATabTemplate
|
||||
|
||||
if (newTab.selectionIndex != 0) {
|
||||
newTab.setValue(NSIndexSet(index: newTab.selectionIndex!), forKey: "tableIndexes")
|
||||
@@ -227,7 +227,7 @@ class SWDATabViewController: NSTabViewController {
|
||||
(newTabVC.view as! SWDATabTemplate).tabIndex = (index != nil) ? index! : nil
|
||||
(newTabVC.view as! SWDATabTemplate).nibName = "SWDAPrefpaneTabTemplate"
|
||||
|
||||
tabViewController.addChildViewController(newTabVC)
|
||||
tabViewController.addChild(newTabVC)
|
||||
|
||||
let newTab = tabViewController.tabViewItem(for: newTabVC)!
|
||||
newTab.label = tab
|
||||
@@ -259,7 +259,7 @@ class SWDATreeController: NSTreeController, NSOutlineViewDelegate {
|
||||
/**
|
||||
Return true if "Applications" is the currently selected tab.
|
||||
*/
|
||||
var showPathBool: NSNumber {
|
||||
@objc var showPathBool: NSNumber {
|
||||
if let view = dryView {
|
||||
return view.value(forKey:"showPathBool") as! NSNumber
|
||||
}
|
||||
@@ -301,16 +301,16 @@ class HyperlinkTextField: NSTextField {
|
||||
@IBInspectable var href: String = ""
|
||||
override func awakeFromNib() {
|
||||
super.awakeFromNib()
|
||||
let attributes: [String: AnyObject] = [
|
||||
NSForegroundColorAttributeName: NSColor.blue,
|
||||
NSBackgroundColorAttributeName: NSColor.clear,
|
||||
NSUnderlineStyleAttributeName: 1 as AnyObject
|
||||
let attributes: [NSAttributedString.Key:AnyObject] = [
|
||||
NSAttributedString.Key.foregroundColor: NSColor.blue,
|
||||
NSAttributedString.Key.backgroundColor: NSColor.clear,
|
||||
NSAttributedString.Key.underlineStyle: NSUnderlineStyle.single.rawValue as AnyObject
|
||||
]
|
||||
self.attributedStringValue = NSAttributedString(string: self.stringValue, attributes: attributes)
|
||||
}
|
||||
|
||||
override func mouseDown(with event: NSEvent) {
|
||||
NSWorkspace.shared().open(URL(string: self.href)!)
|
||||
NSWorkspace.shared.open(URL(string: self.href)!)
|
||||
}
|
||||
convenience init (frame: NSRect, url: String, text: String? = nil) {
|
||||
self.init(frame:frame)
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 48;
|
||||
objectVersion = 50;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
@@ -154,8 +154,7 @@
|
||||
OBJ_32 /* lsreg */,
|
||||
);
|
||||
name = Products;
|
||||
path = "../Library/Developer/Xcode/DerivedData/SwiftDefaultApps-govsimgwntgjfqgrejntsccgqfol/Build/Products/Debug";
|
||||
sourceTree = SOURCE_ROOT;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
OBJ_5 = {
|
||||
isa = PBXGroup;
|
||||
@@ -256,15 +255,18 @@
|
||||
OBJ_1 /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
LastUpgradeCheck = 0820;
|
||||
LastUpgradeCheck = 1000;
|
||||
TargetAttributes = {
|
||||
OBJ_33 = {
|
||||
LastSwiftMigration = "";
|
||||
};
|
||||
OBJ_57 = {
|
||||
LastSwiftMigration = 0810;
|
||||
LastSwiftMigration = "";
|
||||
};
|
||||
};
|
||||
};
|
||||
buildConfigurationList = OBJ_2 /* Build configuration list for PBXProject "SwiftDefaultApps CLI" */;
|
||||
compatibilityVersion = "Xcode 8.0";
|
||||
compatibilityVersion = "Xcode 9.3";
|
||||
developmentRegion = English;
|
||||
hasScannedForEncodings = 0;
|
||||
knownRegions = (
|
||||
@@ -337,12 +339,21 @@
|
||||
OBJ_3 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
||||
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
|
||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||
CLANG_WARN_COMMA = YES;
|
||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
|
||||
CLANG_WARN_EMPTY_BODY = YES;
|
||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||
CLANG_WARN_INFINITE_RECURSION = YES;
|
||||
CLANG_WARN_INT_CONVERSION = YES;
|
||||
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
|
||||
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
|
||||
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
|
||||
CLANG_WARN_STRICT_PROTOTYPES = YES;
|
||||
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
@@ -361,12 +372,18 @@
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.10;
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
"@loader_path/../Frameworks",
|
||||
"@executable_path/../Frameworks",
|
||||
);
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.12;
|
||||
ONLY_ACTIVE_ARCH = YES;
|
||||
OTHER_SWIFT_FLAGS = "-DXcode";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SUPPORTED_PLATFORMS = "macosx iphoneos iphonesimulator appletvos appletvsimulator watchos watchsimulator";
|
||||
SUPPORTED_PLATFORMS = macosx;
|
||||
SWIFT_COMPILATION_MODE = singlefile;
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
||||
SWIFT_VERSION = 4.2;
|
||||
USE_HEADERMAP = NO;
|
||||
};
|
||||
name = Debug;
|
||||
@@ -374,6 +391,7 @@
|
||||
OBJ_35 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
CLANG_ENABLE_OBJC_WEAK = YES;
|
||||
ENABLE_TESTABILITY = YES;
|
||||
FRAMEWORK_SEARCH_PATHS = "$(PLATFORM_DIR)/Developer/Library/Frameworks";
|
||||
HEADER_SEARCH_PATHS = "";
|
||||
@@ -386,7 +404,7 @@
|
||||
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
|
||||
SUPPORTED_PLATFORMS = macosx;
|
||||
SWIFT_ACTIVE_COMPILATION_CONDITIONS = SWIFT_PACKAGE;
|
||||
SWIFT_VERSION = 3.0;
|
||||
SWIFT_VERSION = 4.2;
|
||||
TARGET_NAME = SwiftCLI;
|
||||
};
|
||||
name = Debug;
|
||||
@@ -394,6 +412,7 @@
|
||||
OBJ_36 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
CLANG_ENABLE_OBJC_WEAK = YES;
|
||||
ENABLE_TESTABILITY = YES;
|
||||
FRAMEWORK_SEARCH_PATHS = "$(PLATFORM_DIR)/Developer/Library/Frameworks";
|
||||
HEADER_SEARCH_PATHS = "";
|
||||
@@ -406,7 +425,7 @@
|
||||
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
|
||||
SUPPORTED_PLATFORMS = macosx;
|
||||
SWIFT_ACTIVE_COMPILATION_CONDITIONS = SWIFT_PACKAGE;
|
||||
SWIFT_VERSION = 3.0;
|
||||
SWIFT_VERSION = 4.2;
|
||||
TARGET_NAME = SwiftCLI;
|
||||
};
|
||||
name = Release;
|
||||
@@ -414,17 +433,25 @@
|
||||
OBJ_4 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
||||
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
|
||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||
CLANG_WARN_COMMA = YES;
|
||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
|
||||
CLANG_WARN_EMPTY_BODY = YES;
|
||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||
CLANG_WARN_INFINITE_RECURSION = YES;
|
||||
CLANG_WARN_INT_CONVERSION = YES;
|
||||
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
|
||||
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
|
||||
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
|
||||
CLANG_WARN_STRICT_PROTOTYPES = YES;
|
||||
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
COMBINE_HIDPI_IMAGES = YES;
|
||||
COPY_PHASE_STRIP = YES;
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
DYLIB_INSTALL_NAME_BASE = "@rpath";
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
@@ -436,11 +463,17 @@
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.10;
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
"@loader_path/../Frameworks",
|
||||
"@executable_path/../Frameworks",
|
||||
);
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.12;
|
||||
OTHER_SWIFT_FLAGS = "-DXcode";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SUPPORTED_PLATFORMS = "macosx iphoneos iphonesimulator appletvos appletvsimulator watchos watchsimulator";
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
|
||||
SUPPORTED_PLATFORMS = macosx;
|
||||
SWIFT_COMPILATION_MODE = wholemodule;
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-O";
|
||||
SWIFT_VERSION = 4.2;
|
||||
USE_HEADERMAP = NO;
|
||||
};
|
||||
name = Release;
|
||||
@@ -448,33 +481,42 @@
|
||||
OBJ_59 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO;
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_WEAK = YES;
|
||||
FRAMEWORK_SEARCH_PATHS = "$(PLATFORM_DIR)/Developer/Library/Frameworks";
|
||||
HEADER_SEARCH_PATHS = "";
|
||||
INFOPLIST_FILE = SwDefaultApps.xcodeproj/SwDefaultApps_Info.plist;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(TOOLCHAIN_DIR)/usr/lib/swift/macosx @executable_path";
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
"$(TOOLCHAIN_DIR)/usr/lib/swift/macosx",
|
||||
"@executable_path",
|
||||
);
|
||||
OTHER_LDFLAGS = "$(inherited)";
|
||||
OTHER_SWIFT_FLAGS = "$(inherited)";
|
||||
PRODUCT_NAME = lsreg;
|
||||
SUPPORTED_PLATFORMS = macosx;
|
||||
SWIFT_ACTIVE_COMPILATION_CONDITIONS = SWIFT_PACKAGE;
|
||||
SWIFT_COMPILATION_MODE = singlefile;
|
||||
SWIFT_FORCE_DYNAMIC_LINK_STDLIB = YES;
|
||||
SWIFT_FORCE_STATIC_LINK_STDLIB = NO;
|
||||
SWIFT_OBJC_BRIDGING_HEADER = "";
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
||||
SWIFT_VERSION = 3.0;
|
||||
TARGET_NAME = SwDefaultApps;
|
||||
SWIFT_VERSION = 4.2;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
OBJ_60 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO;
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_WEAK = YES;
|
||||
FRAMEWORK_SEARCH_PATHS = "$(PLATFORM_DIR)/Developer/Library/Frameworks";
|
||||
HEADER_SEARCH_PATHS = "";
|
||||
INFOPLIST_FILE = SwDefaultApps.xcodeproj/SwDefaultApps_Info.plist;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(TOOLCHAIN_DIR)/usr/lib/swift/macosx @executable_path";
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
"$(TOOLCHAIN_DIR)/usr/lib/swift/macosx",
|
||||
"@executable_path",
|
||||
);
|
||||
OTHER_LDFLAGS = "$(inherited)";
|
||||
OTHER_SWIFT_FLAGS = "$(inherited)";
|
||||
PRODUCT_NAME = lsreg;
|
||||
@@ -482,9 +524,7 @@
|
||||
SWIFT_ACTIVE_COMPILATION_CONDITIONS = SWIFT_PACKAGE;
|
||||
SWIFT_FORCE_DYNAMIC_LINK_STDLIB = YES;
|
||||
SWIFT_FORCE_STATIC_LINK_STDLIB = NO;
|
||||
SWIFT_OBJC_BRIDGING_HEADER = "";
|
||||
SWIFT_VERSION = 3.0;
|
||||
TARGET_NAME = SwDefaultApps;
|
||||
SWIFT_VERSION = 4.2;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>BuildSystemType</key>
|
||||
<string>Latest</string>
|
||||
</dict>
|
||||
</plist>
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>BuildLocationStyle</key>
|
||||
<string>UseAppPreferences</string>
|
||||
<key>BuildSystemType</key>
|
||||
<string>Latest</string>
|
||||
<key>CustomBuildLocationType</key>
|
||||
<string>RelativeToDerivedData</string>
|
||||
<key>DerivedDataLocationStyle</key>
|
||||
<string>Default</string>
|
||||
<key>EnabledFullIndexStoreVisibility</key>
|
||||
<false/>
|
||||
<key>IssueFilterStyle</key>
|
||||
<string>ShowActiveSchemeOnly</string>
|
||||
<key>LiveSourceIssuesEnabled</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "0820"
|
||||
LastUpgradeVersion = "1000"
|
||||
version = "1.7">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
||||
@@ -1,9 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Workspace
|
||||
version = "1.0">
|
||||
<FileRef
|
||||
location = "group:SwiftDefaultApps CLI.xcodeproj">
|
||||
</FileRef>
|
||||
<FileRef
|
||||
location = "container:SWDA Prefpane.xcodeproj">
|
||||
</FileRef>
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>IDEDidComputeMac32BitWarning</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>BuildSystemType</key>
|
||||
<string>Latest</string>
|
||||
</dict>
|
||||
</plist>
|
||||
Reference in New Issue
Block a user