From 82a237bfcf527fb27962d5cdd5780ad844236337 Mon Sep 17 00:00:00 2001 From: Aaron Bieber Date: Fri, 1 Jan 2021 15:56:01 -0700 Subject: [PATCH] Rename to dotBeatBar (for most stuff). - Remove ssh-agent identities when locking. - Disable app sandbox (this lets us remove the agent). --- .gitignore | 1 + .../project.pbxproj | 72 +++++++++--------- .../contents.xcworkspacedata | 0 .../xcshareddata/IDEWorkspaceChecks.plist | 0 .../xcshareddata/swiftpm/Package.resolved | 16 ++++ .../UserInterfaceState.xcuserstate | Bin 0 -> 26261 bytes .../xcschemes/xcschememanagement.plist | 5 ++ dotBeatBar_old/AppDelegate.swift | 23 +++++- dotBeatBar_old/Base.lproj/Main.storyboard | 16 ++-- dotBeatBar_old/dotBeatBar_old.entitlements | 2 +- 10 files changed, 90 insertions(+), 45 deletions(-) create mode 100644 .gitignore rename {dotBeatBar_old.xcodeproj => dotBeatBar.xcodeproj}/project.pbxproj (90%) rename {dotBeatBar_old.xcodeproj => dotBeatBar.xcodeproj}/project.xcworkspace/contents.xcworkspacedata (100%) rename {dotBeatBar_old.xcodeproj => dotBeatBar.xcodeproj}/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist (100%) create mode 100644 dotBeatBar.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved create mode 100644 dotBeatBar.xcodeproj/project.xcworkspace/xcuserdata/qbit.xcuserdatad/UserInterfaceState.xcuserstate rename {dotBeatBar_old.xcodeproj => dotBeatBar.xcodeproj}/xcuserdata/qbit.xcuserdatad/xcschemes/xcschememanagement.plist (75%) diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e43b0f9 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.DS_Store diff --git a/dotBeatBar_old.xcodeproj/project.pbxproj b/dotBeatBar.xcodeproj/project.pbxproj similarity index 90% rename from dotBeatBar_old.xcodeproj/project.pbxproj rename to dotBeatBar.xcodeproj/project.pbxproj index f6277b8..1984bfc 100644 --- a/dotBeatBar_old.xcodeproj/project.pbxproj +++ b/dotBeatBar.xcodeproj/project.pbxproj @@ -3,7 +3,7 @@ archiveVersion = 1; classes = { }; - objectVersion = 52; + objectVersion = 54; objects = { /* Begin PBXBuildFile section */ @@ -35,17 +35,17 @@ /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ - 9987EE2022EBF09900C95AC0 /* dotBeatBar_old.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = dotBeatBar_old.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 9987EE2022EBF09900C95AC0 /* dotBeatBar.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = dotBeatBar.app; sourceTree = BUILT_PRODUCTS_DIR; }; 9987EE2322EBF09900C95AC0 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 9987EE2522EBF09900C95AC0 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; 9987EE2722EBF09A00C95AC0 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 9987EE2A22EBF09A00C95AC0 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; 9987EE2C22EBF09A00C95AC0 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 9987EE2D22EBF09A00C95AC0 /* dotBeatBar_old.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = dotBeatBar_old.entitlements; sourceTree = ""; }; - 9987EE3222EBF09A00C95AC0 /* dotBeatBar_oldTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = dotBeatBar_oldTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 9987EE3222EBF09A00C95AC0 /* dotBeatBarTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = dotBeatBarTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 9987EE3622EBF09A00C95AC0 /* dotBeatBar_oldTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = dotBeatBar_oldTests.swift; sourceTree = ""; }; 9987EE3822EBF09A00C95AC0 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 9987EE3D22EBF09A00C95AC0 /* dotBeatBar_oldUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = dotBeatBar_oldUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 9987EE3D22EBF09A00C95AC0 /* dotBeatBarUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = dotBeatBarUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 9987EE4122EBF09A00C95AC0 /* dotBeatBar_oldUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = dotBeatBar_oldUITests.swift; sourceTree = ""; }; 9987EE4322EBF09A00C95AC0 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 9987EE5222EC00C400C95AC0 /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; @@ -101,9 +101,9 @@ 9987EE2122EBF09900C95AC0 /* Products */ = { isa = PBXGroup; children = ( - 9987EE2022EBF09900C95AC0 /* dotBeatBar_old.app */, - 9987EE3222EBF09A00C95AC0 /* dotBeatBar_oldTests.xctest */, - 9987EE3D22EBF09A00C95AC0 /* dotBeatBar_oldUITests.xctest */, + 9987EE2022EBF09900C95AC0 /* dotBeatBar.app */, + 9987EE3222EBF09A00C95AC0 /* dotBeatBarTests.xctest */, + 9987EE3D22EBF09A00C95AC0 /* dotBeatBarUITests.xctest */, ); name = Products; sourceTree = ""; @@ -142,9 +142,9 @@ /* End PBXGroup section */ /* Begin PBXNativeTarget section */ - 9987EE1F22EBF09900C95AC0 /* dotBeatBar_old */ = { + 9987EE1F22EBF09900C95AC0 /* dotBeatBar */ = { isa = PBXNativeTarget; - buildConfigurationList = 9987EE4622EBF09A00C95AC0 /* Build configuration list for PBXNativeTarget "dotBeatBar_old" */; + buildConfigurationList = 9987EE4622EBF09A00C95AC0 /* Build configuration list for PBXNativeTarget "dotBeatBar" */; buildPhases = ( 9987EE1C22EBF09900C95AC0 /* Sources */, 9987EE1D22EBF09900C95AC0 /* Frameworks */, @@ -154,17 +154,17 @@ ); dependencies = ( ); - name = dotBeatBar_old; + name = dotBeatBar; packageProductDependencies = ( 9912D2F522EFC80B004A7802 /* Beat */, ); productName = dotBeatBar_old; - productReference = 9987EE2022EBF09900C95AC0 /* dotBeatBar_old.app */; + productReference = 9987EE2022EBF09900C95AC0 /* dotBeatBar.app */; productType = "com.apple.product-type.application"; }; - 9987EE3122EBF09A00C95AC0 /* dotBeatBar_oldTests */ = { + 9987EE3122EBF09A00C95AC0 /* dotBeatBarTests */ = { isa = PBXNativeTarget; - buildConfigurationList = 9987EE4922EBF09A00C95AC0 /* Build configuration list for PBXNativeTarget "dotBeatBar_oldTests" */; + buildConfigurationList = 9987EE4922EBF09A00C95AC0 /* Build configuration list for PBXNativeTarget "dotBeatBarTests" */; buildPhases = ( 9987EE2E22EBF09A00C95AC0 /* Sources */, 9987EE2F22EBF09A00C95AC0 /* Frameworks */, @@ -175,14 +175,14 @@ dependencies = ( 9987EE3422EBF09A00C95AC0 /* PBXTargetDependency */, ); - name = dotBeatBar_oldTests; + name = dotBeatBarTests; productName = dotBeatBar_oldTests; - productReference = 9987EE3222EBF09A00C95AC0 /* dotBeatBar_oldTests.xctest */; + productReference = 9987EE3222EBF09A00C95AC0 /* dotBeatBarTests.xctest */; productType = "com.apple.product-type.bundle.unit-test"; }; - 9987EE3C22EBF09A00C95AC0 /* dotBeatBar_oldUITests */ = { + 9987EE3C22EBF09A00C95AC0 /* dotBeatBarUITests */ = { isa = PBXNativeTarget; - buildConfigurationList = 9987EE4C22EBF09A00C95AC0 /* Build configuration list for PBXNativeTarget "dotBeatBar_oldUITests" */; + buildConfigurationList = 9987EE4C22EBF09A00C95AC0 /* Build configuration list for PBXNativeTarget "dotBeatBarUITests" */; buildPhases = ( 9987EE3922EBF09A00C95AC0 /* Sources */, 9987EE3A22EBF09A00C95AC0 /* Frameworks */, @@ -193,9 +193,9 @@ dependencies = ( 9987EE3F22EBF09A00C95AC0 /* PBXTargetDependency */, ); - name = dotBeatBar_oldUITests; + name = dotBeatBarUITests; productName = dotBeatBar_oldUITests; - productReference = 9987EE3D22EBF09A00C95AC0 /* dotBeatBar_oldUITests.xctest */; + productReference = 9987EE3D22EBF09A00C95AC0 /* dotBeatBarUITests.xctest */; productType = "com.apple.product-type.bundle.ui-testing"; }; /* End PBXNativeTarget section */ @@ -205,7 +205,7 @@ isa = PBXProject; attributes = { LastSwiftUpdateCheck = 1100; - LastUpgradeCheck = 1100; + LastUpgradeCheck = 1230; ORGANIZATIONNAME = "Aaron Bieber"; TargetAttributes = { 9987EE1F22EBF09900C95AC0 = { @@ -221,8 +221,8 @@ }; }; }; - buildConfigurationList = 9987EE1B22EBF09900C95AC0 /* Build configuration list for PBXProject "dotBeatBar_old" */; - compatibilityVersion = "Xcode 9.3"; + buildConfigurationList = 9987EE1B22EBF09900C95AC0 /* Build configuration list for PBXProject "dotBeatBar" */; + compatibilityVersion = "Xcode 12.0"; developmentRegion = en; hasScannedForEncodings = 0; knownRegions = ( @@ -237,9 +237,9 @@ projectDirPath = ""; projectRoot = ""; targets = ( - 9987EE1F22EBF09900C95AC0 /* dotBeatBar_old */, - 9987EE3122EBF09A00C95AC0 /* dotBeatBar_oldTests */, - 9987EE3C22EBF09A00C95AC0 /* dotBeatBar_oldUITests */, + 9987EE1F22EBF09900C95AC0 /* dotBeatBar */, + 9987EE3122EBF09A00C95AC0 /* dotBeatBarTests */, + 9987EE3C22EBF09A00C95AC0 /* dotBeatBarUITests */, ); }; /* End PBXProject section */ @@ -302,12 +302,12 @@ /* Begin PBXTargetDependency section */ 9987EE3422EBF09A00C95AC0 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = 9987EE1F22EBF09900C95AC0 /* dotBeatBar_old */; + target = 9987EE1F22EBF09900C95AC0 /* dotBeatBar */; targetProxy = 9987EE3322EBF09A00C95AC0 /* PBXContainerItemProxy */; }; 9987EE3F22EBF09A00C95AC0 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = 9987EE1F22EBF09900C95AC0 /* dotBeatBar_old */; + target = 9987EE1F22EBF09900C95AC0 /* dotBeatBar */; targetProxy = 9987EE3E22EBF09A00C95AC0 /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ @@ -350,6 +350,7 @@ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; @@ -374,7 +375,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.14; + MACOSX_DEPLOYMENT_TARGET = 11.1; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; ONLY_ACTIVE_ARCH = YES; @@ -410,6 +411,7 @@ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; @@ -428,7 +430,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.14; + MACOSX_DEPLOYMENT_TARGET = 11.1; MTL_ENABLE_DEBUG_INFO = NO; MTL_FAST_MATH = YES; SDKROOT = macosx; @@ -496,7 +498,7 @@ PRODUCT_BUNDLE_IDENTIFIER = "com.bolddaemon.com.dotBeatBar-oldTests"; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 5.0; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/dotBeatBar_old.app/Contents/MacOS/dotBeatBar_old"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/dotBeatBar.app/Contents/MacOS/dotBeatBar"; }; name = Debug; }; @@ -517,7 +519,7 @@ PRODUCT_BUNDLE_IDENTIFIER = "com.bolddaemon.com.dotBeatBar-oldTests"; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 5.0; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/dotBeatBar_old.app/Contents/MacOS/dotBeatBar_old"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/dotBeatBar.app/Contents/MacOS/dotBeatBar"; }; name = Release; }; @@ -564,7 +566,7 @@ /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 9987EE1B22EBF09900C95AC0 /* Build configuration list for PBXProject "dotBeatBar_old" */ = { + 9987EE1B22EBF09900C95AC0 /* Build configuration list for PBXProject "dotBeatBar" */ = { isa = XCConfigurationList; buildConfigurations = ( 9987EE4422EBF09A00C95AC0 /* Debug */, @@ -573,7 +575,7 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 9987EE4622EBF09A00C95AC0 /* Build configuration list for PBXNativeTarget "dotBeatBar_old" */ = { + 9987EE4622EBF09A00C95AC0 /* Build configuration list for PBXNativeTarget "dotBeatBar" */ = { isa = XCConfigurationList; buildConfigurations = ( 9987EE4722EBF09A00C95AC0 /* Debug */, @@ -582,7 +584,7 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 9987EE4922EBF09A00C95AC0 /* Build configuration list for PBXNativeTarget "dotBeatBar_oldTests" */ = { + 9987EE4922EBF09A00C95AC0 /* Build configuration list for PBXNativeTarget "dotBeatBarTests" */ = { isa = XCConfigurationList; buildConfigurations = ( 9987EE4A22EBF09A00C95AC0 /* Debug */, @@ -591,7 +593,7 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 9987EE4C22EBF09A00C95AC0 /* Build configuration list for PBXNativeTarget "dotBeatBar_oldUITests" */ = { + 9987EE4C22EBF09A00C95AC0 /* Build configuration list for PBXNativeTarget "dotBeatBarUITests" */ = { isa = XCConfigurationList; buildConfigurations = ( 9987EE4D22EBF09A00C95AC0 /* Debug */, diff --git a/dotBeatBar_old.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/dotBeatBar.xcodeproj/project.xcworkspace/contents.xcworkspacedata similarity index 100% rename from dotBeatBar_old.xcodeproj/project.xcworkspace/contents.xcworkspacedata rename to dotBeatBar.xcodeproj/project.xcworkspace/contents.xcworkspacedata diff --git a/dotBeatBar_old.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/dotBeatBar.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist similarity index 100% rename from dotBeatBar_old.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist rename to dotBeatBar.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist diff --git a/dotBeatBar.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/dotBeatBar.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved new file mode 100644 index 0000000..a6df32c --- /dev/null +++ b/dotBeatBar.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -0,0 +1,16 @@ +{ + "object": { + "pins": [ + { + "package": "Beat", + "repositoryURL": "https://github.com/qbit/Beat", + "state": { + "branch": null, + "revision": "dc9899f777f03127082708f5f326c50561627536", + "version": "1.0.3" + } + } + ] + }, + "version": 1 +} diff --git a/dotBeatBar.xcodeproj/project.xcworkspace/xcuserdata/qbit.xcuserdatad/UserInterfaceState.xcuserstate b/dotBeatBar.xcodeproj/project.xcworkspace/xcuserdata/qbit.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..9dfa161e4ee42bc0d9538bc3b02ea0ee2e259bab GIT binary patch literal 26261 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 literal 0 HcmV?d00001 diff --git a/dotBeatBar_old.xcodeproj/xcuserdata/qbit.xcuserdatad/xcschemes/xcschememanagement.plist b/dotBeatBar.xcodeproj/xcuserdata/qbit.xcuserdatad/xcschemes/xcschememanagement.plist similarity index 75% rename from dotBeatBar_old.xcodeproj/xcuserdata/qbit.xcuserdatad/xcschemes/xcschememanagement.plist rename to dotBeatBar.xcodeproj/xcuserdata/qbit.xcuserdatad/xcschemes/xcschememanagement.plist index a93a55b..e0a310d 100644 --- a/dotBeatBar_old.xcodeproj/xcuserdata/qbit.xcuserdatad/xcschemes/xcschememanagement.plist +++ b/dotBeatBar.xcodeproj/xcuserdata/qbit.xcuserdatad/xcschemes/xcschememanagement.plist @@ -4,6 +4,11 @@ SchemeUserState + dotBeatBar.xcscheme_^#shared#^_ + + orderHint + 0 + dotBeatBar_old.xcscheme_^#shared#^_ orderHint diff --git a/dotBeatBar_old/AppDelegate.swift b/dotBeatBar_old/AppDelegate.swift index 01ae24a..c63c6b6 100644 --- a/dotBeatBar_old/AppDelegate.swift +++ b/dotBeatBar_old/AppDelegate.swift @@ -12,13 +12,17 @@ import Foundation @NSApplicationMain class AppDelegate: NSObject, NSApplicationDelegate { + let dnc = DistributedNotificationCenter.default() var timer = Timer() + let si = NSStatusBar.system.statusItem(withLength:NSStatusItem.variableLength) + @objc func updateStatBar(_ sender: Any?) { if let button = si.button { button.title = "@\(Beat().text())" } } + func applicationDidFinishLaunching(_ aNotification: Notification) { updateStatBar(self) timer = Timer.scheduledTimer(timeInterval: 1, @@ -28,14 +32,31 @@ class AppDelegate: NSObject, NSApplicationDelegate { repeats: true) let menu = NSMenu() + menu.addItem(NSMenuItem(title: "Quit", action: #selector(NSApplication.terminate(_:)), keyEquivalent: "q")) si.menu = menu + + _ = dnc.addObserver(forName: .init("com.apple.screenIsLocked"), + object: nil, queue: .main) { _ in + NSLog("Screen Locked. Removing ssh-agent keys.") + let task = Process() + let pipe = Pipe() + + task.executableURL = URL(fileURLWithPath: "/usr/bin/ssh-add") + task.arguments = ["-D"] + task.standardOutput = pipe + task.launch() + + let data = pipe.fileHandleForReading.readDataToEndOfFile() + let output = NSString(data: data, encoding: String.Encoding.utf8.rawValue) + + NSLog(output! as String) + } } func applicationWillTerminate(_ aNotification: Notification) { - // Insert code here to tear down your application timer.invalidate() } } diff --git a/dotBeatBar_old/Base.lproj/Main.storyboard b/dotBeatBar_old/Base.lproj/Main.storyboard index 2deaf73..58e5e83 100644 --- a/dotBeatBar_old/Base.lproj/Main.storyboard +++ b/dotBeatBar_old/Base.lproj/Main.storyboard @@ -1,7 +1,7 @@ - + - + @@ -13,11 +13,11 @@ - + - + - + @@ -31,7 +31,7 @@ - + @@ -49,7 +49,7 @@ - + @@ -662,7 +662,7 @@ - + diff --git a/dotBeatBar_old/dotBeatBar_old.entitlements b/dotBeatBar_old/dotBeatBar_old.entitlements index f2ef3ae..b7d85c3 100644 --- a/dotBeatBar_old/dotBeatBar_old.entitlements +++ b/dotBeatBar_old/dotBeatBar_old.entitlements @@ -3,7 +3,7 @@ com.apple.security.app-sandbox - + com.apple.security.files.user-selected.read-only