├── sample-workflow.png ├── QuarantineFilter.xcodeproj ├── project.xcworkspace │ └── contents.xcworkspacedata └── project.pbxproj ├── QuarantineFilter ├── Quarantine_Filter.h ├── en.lproj │ └── InfoPlist.strings ├── Quarantine_Filter.m ├── Info.plist └── Base.lproj │ └── main.xib ├── README.md ├── LICENSE └── .gitignore /sample-workflow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlilback/QuarantineAutomatorAction/HEAD/sample-workflow.png -------------------------------------------------------------------------------- /QuarantineFilter.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /QuarantineFilter/Quarantine_Filter.h: -------------------------------------------------------------------------------- 1 | // 2 | // Quarantine_Filter.h 3 | // Quarantine Filter 4 | // 5 | // Copyright © 2016 Mark Lilback. This file is licensed under the ISC license. 6 | // 7 | 8 | #import 9 | #import 10 | 11 | @interface Quarantine_Filter : AMBundleAction 12 | @property (strong) IBOutlet NSPopUpButton *filterPopup; 13 | @property NSInteger selectedFilterTag; 14 | 15 | - (id)runWithInput:(id)input fromAction:(AMAction *)anAction error:(NSDictionary **)errorInfo; 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## Quarantine Filter 2 | 3 | This is an Automator action that filters files based on their quarantine type (i.e. web download, email attachment, messages attachment, airdrop transfer). It was designed to be used to as a folder attachment that can move the filtered files from Downloads to the Desktop or any location you choose. 4 | 5 | ### Example Workflow 6 | 7 | Example Workflow 8 | 9 | Licensed under the ISC license. 10 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2016 Mark Lilback. 2 | 3 | Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. 4 | 5 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 6 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Xcode 2 | # 3 | # gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore 4 | 5 | ## Build generated 6 | build/ 7 | DerivedData/ 8 | 9 | ## Various settings 10 | *.pbxuser 11 | !default.pbxuser 12 | *.mode1v3 13 | !default.mode1v3 14 | *.mode2v3 15 | !default.mode2v3 16 | *.perspectivev3 17 | !default.perspectivev3 18 | xcuserdata/ 19 | 20 | ## Other 21 | *.moved-aside 22 | *.xcuserstate 23 | 24 | ## Obj-C/Swift specific 25 | *.hmap 26 | *.ipa 27 | *.dSYM.zip 28 | *.dSYM 29 | 30 | # CocoaPods 31 | # 32 | # We recommend against adding the Pods directory to your .gitignore. However 33 | # you should judge for yourself, the pros and cons are mentioned at: 34 | # https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control 35 | # 36 | # Pods/ 37 | 38 | # Carthage 39 | # 40 | # Add this line if you want to avoid checking in source code from Carthage dependencies. 41 | # Carthage/Checkouts 42 | 43 | Carthage/Build 44 | 45 | # fastlane 46 | # 47 | # It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the 48 | # screenshots whenever they are needed. 49 | # For more information about the recommended setup visit: 50 | # https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Gitignore.md 51 | 52 | fastlane/report.xml 53 | fastlane/screenshots 54 | 55 | #Code Injection 56 | # 57 | # After new code Injection tools there's a generated folder /iOSInjectionProject 58 | # https://github.com/johnno1962/injectionforxcode 59 | 60 | iOSInjectionProject/ 61 | -------------------------------------------------------------------------------- /QuarantineFilter/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* AMApplication localized strings */ 2 | /* e.g. "TextEdit" = "TextEdit"; */ 3 | 4 | /* AMCategory localized strings */ 5 | /* e.g. "Text" = "Text"; */ 6 | 7 | AMName = "Quarantine Filter"; 8 | 9 | /* AMDefaultParameters localized values */ 10 | /* e.g. myDefaultIntegerParameter = 0; */ 11 | /* e.g. myDefaultStringParameter = "Default String Value"; */ 12 | 13 | /* AMDescription localized strings */ 14 | AMDAlert = "(* AMDAlert text goes here. (optional) *)"; 15 | AMDInput = "(* AMDInput text to further explain the types accepted as input goes here. (optional) *)"; 16 | AMDNote = "(* AMDNote text goes here. (optional) *)"; 17 | AMDOptions = "(* AMDOptions text to further explain configuration options in the UI goes here. (optional) *)"; 18 | AMDResult = "(* AMDResult text to further explain the types provided as output goes here. (optional) *)"; 19 | AMDRequires = "(* AMDRequires text to explain anything outside of Automator required for the action's operation, e.g. a web page open in Safari, goes here. (optional) *)"; 20 | AMDSummary = "(* AMDSummary text to explain what your action does goes here. *)"; 21 | AMDWebsite = "(* AMDWebsite URL to additional information or documentation for the action goes here. (optional) *)"; 22 | 23 | /* AMKeyword localized strings */ 24 | /* e.g. "Filter" = "Filter"; */ 25 | 26 | /* AMWarning localized strings */ 27 | ApplyButton = "(* Button label for user to add proposed Action, e.g. Add. *)"; 28 | IgnoreButton = "(* Button label for user not to add proposed Action, e.g. Don't Add. *)"; 29 | Message = "(* Warning message presented to user goes here. *)"; 30 | 31 | -------------------------------------------------------------------------------- /QuarantineFilter/Quarantine_Filter.m: -------------------------------------------------------------------------------- 1 | // 2 | // Quarantine_Filter.m 3 | // Quarantine Filter 4 | // 5 | // Copyright © 2016 Mark Lilback. This file is licensed under the ISC license. 6 | // 7 | 8 | #import "Quarantine_Filter.h" 9 | #import 10 | 11 | @implementation Quarantine_Filter 12 | 13 | -(instancetype)initWithDefinition:(NSDictionary *)dict fromArchive:(BOOL)archived 14 | { 15 | if ((self = [super initWithDefinition:dict fromArchive:archived])) { 16 | NSDictionary *d = [dict objectForKey:@"ActionParameters"]; 17 | NSNumber *tagInt = [d objectForKey:@"filterTag"]; 18 | if (nil == tagInt) 19 | tagInt = @(0); 20 | _selectedFilterTag = [tagInt integerValue]; 21 | } 22 | return self; 23 | } 24 | 25 | -(void)writeToDictionary:(NSMutableDictionary *)dictionary 26 | { 27 | [super writeToDictionary:dictionary]; 28 | [dictionary setObject:[NSNumber numberWithInteger:_selectedFilterTag] forKey:@"filterTag"]; 29 | } 30 | 31 | -(void)updateParameters 32 | { 33 | [super updateParameters]; 34 | [self.parameters setObject:[NSNumber numberWithInteger:_selectedFilterTag] forKey:@"filterTag"]; 35 | } 36 | 37 | -(void)parametersUpdated 38 | { 39 | [super parametersUpdated]; 40 | _selectedFilterTag = [[self.parameters objectForKey:@"filterTag"] integerValue]; 41 | } 42 | 43 | - (id)runWithInput:(id)input fromAction:(AMAction *)anAction error:(NSDictionary **)errorInfo 44 | { 45 | NSString *filterType = @""; 46 | switch(self.selectedFilterTag) { 47 | case 0: 48 | default: 49 | filterType = (NSString*)kLSQuarantineTypeWebDownload; 50 | break; 51 | case 1: 52 | filterType = @"LSQuarantineTypeAirDrop"; 53 | break; 54 | case 2: 55 | filterType = (NSString*)kLSQuarantineTypeEmailAttachment; 56 | break; 57 | case 3: 58 | filterType = (NSString*)kLSQuarantineTypeInstantMessageAttachment; 59 | break; 60 | } 61 | NSMutableArray *output = [[NSMutableArray alloc] init]; 62 | for (NSURL *aUrl in input) { 63 | id rvalue; 64 | NSError *err; 65 | if ([aUrl getResourceValue:&rvalue forKey:NSURLQuarantinePropertiesKey error:&err]) { 66 | NSString *qtype = [rvalue objectForKey:@"LSQuarantineType"]; 67 | if ([qtype isEqualToString:filterType]) { 68 | [output addObject:aUrl]; 69 | } 70 | } else { 71 | NSLog(@"error getting quarantine properties:%@", err); 72 | } 73 | } 74 | return output; 75 | } 76 | 77 | @end 78 | -------------------------------------------------------------------------------- /QuarantineFilter/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | AMAccepts 6 | 7 | Container 8 | List 9 | Optional 10 | 11 | Types 12 | 13 | com.apple.cocoa.url 14 | 15 | 16 | AMApplication 17 | Finder 18 | AMCanShowSelectedItemsWhenRun 19 | 20 | AMCanShowWhenRun 21 | 22 | AMCategory 23 | AMCategoryFilesAndFolders 24 | AMDefaultParameters 25 | 26 | filterTag 27 | 0 28 | 29 | AMDescription 30 | 31 | AMDAlert 32 | 33 | AMDInput 34 | List of files 35 | AMDNote 36 | 37 | AMDOptions 38 | 39 | AMDRelatedActions 40 | 41 | AMDRequires 42 | (* AMDRequires text to explain anything outside of Automator required for the action's operation, e.g. a web page open in Safari, goes here. (optional) *) 43 | AMDResult 44 | filtered list of files 45 | AMDSummary 46 | Filters an array of files based on their quarantine type 47 | AMDWebsite 48 | (* AMDWebsite URL to additional information or documentation for the action goes here. (optional) *) 49 | 50 | AMIconName 51 | (* The name of the icon *) 52 | AMKeywords 53 | 54 | AMName 55 | Quarantine Filter 56 | AMProvides 57 | 58 | Container 59 | List 60 | Types 61 | 62 | com.apple.cocoa.url 63 | 64 | 65 | AMRequiredResources 66 | 67 | AMWarning 68 | 69 | Action 70 | (* Action name to be suggested to add prior to this action to make the task safer, e.g. com.apple.Automator.CopyFiles, goes here. *) 71 | ApplyButton 72 | (* Button label for user to add proposed Action, e.g. Add. *) 73 | IgnoreButton 74 | (* Button label for user not to add proposed Action, e.g. Don't Add. *) 75 | Level 76 | 0 77 | Message 78 | (* Warning message presented to user goes here. *) 79 | 80 | CFBundleDevelopmentRegion 81 | en 82 | CFBundleExecutable 83 | $(EXECUTABLE_NAME) 84 | CFBundleIdentifier 85 | $(PRODUCT_BUNDLE_IDENTIFIER) 86 | CFBundleInfoDictionaryVersion 87 | 6.0 88 | CFBundleName 89 | $(PRODUCT_NAME) 90 | CFBundlePackageType 91 | BNDL 92 | CFBundleShortVersionString 93 | 1.0 94 | CFBundleSignature 95 | ???? 96 | CFBundleVersion 97 | 1 98 | NSHumanReadableCopyright 99 | Copyright © 2016 Mark Lilback. All rights reserved. 100 | NSPrincipalClass 101 | Quarantine_Filter 102 | 103 | 104 | -------------------------------------------------------------------------------- /QuarantineFilter/Base.lproj/main.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 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | selectedFilterTag 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | -------------------------------------------------------------------------------- /QuarantineFilter.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 46; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 08F189CF1D21C88800866A05 /* Quarantine_Filter.m in Sources */ = {isa = PBXBuildFile; fileRef = 08F189CE1D21C88800866A05 /* Quarantine_Filter.m */; }; 11 | 08F189D21D21C88800866A05 /* main.xib in Resources */ = {isa = PBXBuildFile; fileRef = 08F189D01D21C88800866A05 /* main.xib */; }; 12 | 08F189D61D21C88800866A05 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 08F189D41D21C88800866A05 /* InfoPlist.strings */; }; 13 | /* End PBXBuildFile section */ 14 | 15 | /* Begin PBXFileReference section */ 16 | 08F189CA1D21C88800866A05 /* Quarantine Filter.action */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Quarantine Filter.action"; sourceTree = BUILT_PRODUCTS_DIR; }; 17 | 08F189CD1D21C88800866A05 /* Quarantine_Filter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Quarantine_Filter.h; sourceTree = ""; }; 18 | 08F189CE1D21C88800866A05 /* Quarantine_Filter.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = Quarantine_Filter.m; sourceTree = ""; }; 19 | 08F189D11D21C88800866A05 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/main.xib; sourceTree = ""; }; 20 | 08F189D31D21C88800866A05 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 21 | 08F189D51D21C88800866A05 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; 22 | 08F189DC1D21DC7E00866A05 /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; 23 | 08F189DD1D21E02800866A05 /* LICENSE */ = {isa = PBXFileReference; lastKnownFileType = text; path = LICENSE; sourceTree = ""; }; 24 | /* End PBXFileReference section */ 25 | 26 | /* Begin PBXFrameworksBuildPhase section */ 27 | 08F189C61D21C88800866A05 /* Frameworks */ = { 28 | isa = PBXFrameworksBuildPhase; 29 | buildActionMask = 2147483647; 30 | files = ( 31 | ); 32 | runOnlyForDeploymentPostprocessing = 0; 33 | }; 34 | /* End PBXFrameworksBuildPhase section */ 35 | 36 | /* Begin PBXGroup section */ 37 | 08F189C01D21C88800866A05 = { 38 | isa = PBXGroup; 39 | children = ( 40 | 08F189DC1D21DC7E00866A05 /* README.md */, 41 | 08F189DD1D21E02800866A05 /* LICENSE */, 42 | 08F189CC1D21C88800866A05 /* Quarantine Filter */, 43 | 08F189CB1D21C88800866A05 /* Products */, 44 | ); 45 | sourceTree = ""; 46 | }; 47 | 08F189CB1D21C88800866A05 /* Products */ = { 48 | isa = PBXGroup; 49 | children = ( 50 | 08F189CA1D21C88800866A05 /* Quarantine Filter.action */, 51 | ); 52 | name = Products; 53 | sourceTree = ""; 54 | }; 55 | 08F189CC1D21C88800866A05 /* Quarantine Filter */ = { 56 | isa = PBXGroup; 57 | children = ( 58 | 08F189CD1D21C88800866A05 /* Quarantine_Filter.h */, 59 | 08F189CE1D21C88800866A05 /* Quarantine_Filter.m */, 60 | 08F189D01D21C88800866A05 /* main.xib */, 61 | 08F189D31D21C88800866A05 /* Info.plist */, 62 | 08F189D41D21C88800866A05 /* InfoPlist.strings */, 63 | ); 64 | name = "Quarantine Filter"; 65 | path = QuarantineFilter; 66 | sourceTree = ""; 67 | }; 68 | /* End PBXGroup section */ 69 | 70 | /* Begin PBXNativeTarget section */ 71 | 08F189C91D21C88800866A05 /* Quarantine Filter */ = { 72 | isa = PBXNativeTarget; 73 | buildConfigurationList = 08F189D91D21C88800866A05 /* Build configuration list for PBXNativeTarget "Quarantine Filter" */; 74 | buildPhases = ( 75 | 08F189C51D21C88800866A05 /* Sources */, 76 | 08F189C61D21C88800866A05 /* Frameworks */, 77 | 08F189C71D21C88800866A05 /* Resources */, 78 | 08F189C81D21C88800866A05 /* ShellScript */, 79 | ); 80 | buildRules = ( 81 | ); 82 | dependencies = ( 83 | ); 84 | name = "Quarantine Filter"; 85 | productName = "Quarantine Filter"; 86 | productReference = 08F189CA1D21C88800866A05 /* Quarantine Filter.action */; 87 | productType = "com.apple.product-type.bundle"; 88 | }; 89 | /* End PBXNativeTarget section */ 90 | 91 | /* Begin PBXProject section */ 92 | 08F189C11D21C88800866A05 /* Project object */ = { 93 | isa = PBXProject; 94 | attributes = { 95 | LastUpgradeCheck = 0730; 96 | ORGANIZATIONNAME = "Mark Lilback"; 97 | TargetAttributes = { 98 | 08F189C91D21C88800866A05 = { 99 | CreatedOnToolsVersion = 7.3.1; 100 | DevelopmentTeam = V97NV337TR; 101 | }; 102 | }; 103 | }; 104 | buildConfigurationList = 08F189C41D21C88800866A05 /* Build configuration list for PBXProject "QuarantineFilter" */; 105 | compatibilityVersion = "Xcode 3.2"; 106 | developmentRegion = English; 107 | hasScannedForEncodings = 0; 108 | knownRegions = ( 109 | en, 110 | Base, 111 | ); 112 | mainGroup = 08F189C01D21C88800866A05; 113 | productRefGroup = 08F189CB1D21C88800866A05 /* Products */; 114 | projectDirPath = ""; 115 | projectRoot = ""; 116 | targets = ( 117 | 08F189C91D21C88800866A05 /* Quarantine Filter */, 118 | ); 119 | }; 120 | /* End PBXProject section */ 121 | 122 | /* Begin PBXResourcesBuildPhase section */ 123 | 08F189C71D21C88800866A05 /* Resources */ = { 124 | isa = PBXResourcesBuildPhase; 125 | buildActionMask = 2147483647; 126 | files = ( 127 | 08F189D21D21C88800866A05 /* main.xib in Resources */, 128 | 08F189D61D21C88800866A05 /* InfoPlist.strings in Resources */, 129 | ); 130 | runOnlyForDeploymentPostprocessing = 0; 131 | }; 132 | /* End PBXResourcesBuildPhase section */ 133 | 134 | /* Begin PBXShellScriptBuildPhase section */ 135 | 08F189C81D21C88800866A05 /* ShellScript */ = { 136 | isa = PBXShellScriptBuildPhase; 137 | buildActionMask = 2147483647; 138 | files = ( 139 | ); 140 | inputPaths = ( 141 | ); 142 | outputPaths = ( 143 | ); 144 | runOnlyForDeploymentPostprocessing = 0; 145 | shellPath = /bin/sh; 146 | shellScript = "amlint \"${BUILT_PRODUCTS_DIR}/${FULL_PRODUCT_NAME}\""; 147 | }; 148 | /* End PBXShellScriptBuildPhase section */ 149 | 150 | /* Begin PBXSourcesBuildPhase section */ 151 | 08F189C51D21C88800866A05 /* Sources */ = { 152 | isa = PBXSourcesBuildPhase; 153 | buildActionMask = 2147483647; 154 | files = ( 155 | 08F189CF1D21C88800866A05 /* Quarantine_Filter.m in Sources */, 156 | ); 157 | runOnlyForDeploymentPostprocessing = 0; 158 | }; 159 | /* End PBXSourcesBuildPhase section */ 160 | 161 | /* Begin PBXVariantGroup section */ 162 | 08F189D01D21C88800866A05 /* main.xib */ = { 163 | isa = PBXVariantGroup; 164 | children = ( 165 | 08F189D11D21C88800866A05 /* Base */, 166 | ); 167 | name = main.xib; 168 | sourceTree = ""; 169 | }; 170 | 08F189D41D21C88800866A05 /* InfoPlist.strings */ = { 171 | isa = PBXVariantGroup; 172 | children = ( 173 | 08F189D51D21C88800866A05 /* en */, 174 | ); 175 | name = InfoPlist.strings; 176 | sourceTree = ""; 177 | }; 178 | /* End PBXVariantGroup section */ 179 | 180 | /* Begin XCBuildConfiguration section */ 181 | 08F189D71D21C88800866A05 /* Debug */ = { 182 | isa = XCBuildConfiguration; 183 | buildSettings = { 184 | ALWAYS_SEARCH_USER_PATHS = NO; 185 | CLANG_ANALYZER_NONNULL = YES; 186 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 187 | CLANG_CXX_LIBRARY = "libc++"; 188 | CLANG_ENABLE_MODULES = YES; 189 | CLANG_ENABLE_OBJC_ARC = YES; 190 | CLANG_WARN_BOOL_CONVERSION = YES; 191 | CLANG_WARN_CONSTANT_CONVERSION = YES; 192 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 193 | CLANG_WARN_EMPTY_BODY = YES; 194 | CLANG_WARN_ENUM_CONVERSION = YES; 195 | CLANG_WARN_INT_CONVERSION = YES; 196 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 197 | CLANG_WARN_UNREACHABLE_CODE = YES; 198 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 199 | CODE_SIGN_IDENTITY = "Mac Developer: Mark Lilback (ZJLV2664FQ)"; 200 | COPY_PHASE_STRIP = NO; 201 | DEBUG_INFORMATION_FORMAT = dwarf; 202 | ENABLE_STRICT_OBJC_MSGSEND = YES; 203 | ENABLE_TESTABILITY = YES; 204 | GCC_C_LANGUAGE_STANDARD = gnu99; 205 | GCC_DYNAMIC_NO_PIC = NO; 206 | GCC_NO_COMMON_BLOCKS = YES; 207 | GCC_OPTIMIZATION_LEVEL = 0; 208 | GCC_PREPROCESSOR_DEFINITIONS = ( 209 | "DEBUG=1", 210 | "$(inherited)", 211 | ); 212 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 213 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 214 | GCC_WARN_UNDECLARED_SELECTOR = YES; 215 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 216 | GCC_WARN_UNUSED_FUNCTION = YES; 217 | GCC_WARN_UNUSED_VARIABLE = YES; 218 | MACOSX_DEPLOYMENT_TARGET = 10.11; 219 | MTL_ENABLE_DEBUG_INFO = YES; 220 | ONLY_ACTIVE_ARCH = YES; 221 | SDKROOT = macosx; 222 | }; 223 | name = Debug; 224 | }; 225 | 08F189D81D21C88800866A05 /* Release */ = { 226 | isa = XCBuildConfiguration; 227 | buildSettings = { 228 | ALWAYS_SEARCH_USER_PATHS = NO; 229 | CLANG_ANALYZER_NONNULL = YES; 230 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 231 | CLANG_CXX_LIBRARY = "libc++"; 232 | CLANG_ENABLE_MODULES = YES; 233 | CLANG_ENABLE_OBJC_ARC = YES; 234 | CLANG_WARN_BOOL_CONVERSION = YES; 235 | CLANG_WARN_CONSTANT_CONVERSION = YES; 236 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 237 | CLANG_WARN_EMPTY_BODY = YES; 238 | CLANG_WARN_ENUM_CONVERSION = YES; 239 | CLANG_WARN_INT_CONVERSION = YES; 240 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 241 | CLANG_WARN_UNREACHABLE_CODE = YES; 242 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 243 | CODE_SIGN_IDENTITY = "Mac Developer: Mark Lilback (ZJLV2664FQ)"; 244 | COPY_PHASE_STRIP = NO; 245 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 246 | ENABLE_NS_ASSERTIONS = NO; 247 | ENABLE_STRICT_OBJC_MSGSEND = YES; 248 | GCC_C_LANGUAGE_STANDARD = gnu99; 249 | GCC_NO_COMMON_BLOCKS = YES; 250 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 251 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 252 | GCC_WARN_UNDECLARED_SELECTOR = YES; 253 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 254 | GCC_WARN_UNUSED_FUNCTION = YES; 255 | GCC_WARN_UNUSED_VARIABLE = YES; 256 | MACOSX_DEPLOYMENT_TARGET = 10.11; 257 | MTL_ENABLE_DEBUG_INFO = NO; 258 | SDKROOT = macosx; 259 | }; 260 | name = Release; 261 | }; 262 | 08F189DA1D21C88800866A05 /* Debug */ = { 263 | isa = XCBuildConfiguration; 264 | buildSettings = { 265 | CODE_SIGN_IDENTITY = "Mac Developer"; 266 | "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Mac Developer"; 267 | COMBINE_HIDPI_IMAGES = YES; 268 | INFOPLIST_FILE = "Quarantine Filter/Info.plist"; 269 | INSTALL_PATH = "$(HOME)/Library/Automator"; 270 | OTHER_OSAFLAGS = "-x -t 0 -c 0"; 271 | PRODUCT_BUNDLE_IDENTIFIER = "com.lilback.Quarantine-Filter"; 272 | PRODUCT_NAME = "$(TARGET_NAME)"; 273 | PROVISIONING_PROFILE = ""; 274 | WRAPPER_EXTENSION = action; 275 | }; 276 | name = Debug; 277 | }; 278 | 08F189DB1D21C88800866A05 /* Release */ = { 279 | isa = XCBuildConfiguration; 280 | buildSettings = { 281 | CODE_SIGN_IDENTITY = "Mac Developer"; 282 | "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Mac Developer"; 283 | COMBINE_HIDPI_IMAGES = YES; 284 | INFOPLIST_FILE = "Quarantine Filter/Info.plist"; 285 | INSTALL_PATH = "$(HOME)/Library/Automator"; 286 | OTHER_OSAFLAGS = "-x -t 0 -c 0"; 287 | PRODUCT_BUNDLE_IDENTIFIER = "com.lilback.Quarantine-Filter"; 288 | PRODUCT_NAME = "$(TARGET_NAME)"; 289 | PROVISIONING_PROFILE = ""; 290 | WRAPPER_EXTENSION = action; 291 | }; 292 | name = Release; 293 | }; 294 | /* End XCBuildConfiguration section */ 295 | 296 | /* Begin XCConfigurationList section */ 297 | 08F189C41D21C88800866A05 /* Build configuration list for PBXProject "QuarantineFilter" */ = { 298 | isa = XCConfigurationList; 299 | buildConfigurations = ( 300 | 08F189D71D21C88800866A05 /* Debug */, 301 | 08F189D81D21C88800866A05 /* Release */, 302 | ); 303 | defaultConfigurationIsVisible = 0; 304 | defaultConfigurationName = Release; 305 | }; 306 | 08F189D91D21C88800866A05 /* Build configuration list for PBXNativeTarget "Quarantine Filter" */ = { 307 | isa = XCConfigurationList; 308 | buildConfigurations = ( 309 | 08F189DA1D21C88800866A05 /* Debug */, 310 | 08F189DB1D21C88800866A05 /* Release */, 311 | ); 312 | defaultConfigurationIsVisible = 0; 313 | defaultConfigurationName = Release; 314 | }; 315 | /* End XCConfigurationList section */ 316 | }; 317 | rootObject = 08F189C11D21C88800866A05 /* Project object */; 318 | } 319 | --------------------------------------------------------------------------------