From 42778b8279444872811b855989d4d2fdec2572bf Mon Sep 17 00:00:00 2001 From: Teddy Wing Date: Wed, 5 Sep 2018 20:16:38 +0200 Subject: Turn off Sandbox Turns out you can't register yourself as the default app handler when in a sandbox, which apparently is the default when creating a new Xcode project. > that’s all…. except that I’m running my application in a Sandbox > environment, and it returns the error -54 ! > > After trying to find a solution for this, and on the > devforums.apple.com forum, it seems that there is currently no > solution, Apple just decided to remove that feature since Yosemite…. > It still works on Mavericks. That of course very disappointing, and > even not mentioned in the Apple’s documentation. (https://blog.sovapps.com/make-your-application-reply-to-mailto-links/) Fuck that. Turn off sandboxing. Yay it works now. --- CopyMailto.xcodeproj/project.pbxproj | 7 +++++-- CopyMailto/CopyMailto.entitlements | 7 +------ CopyMailto/DefaultURLHandler.m | 1 + 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/CopyMailto.xcodeproj/project.pbxproj b/CopyMailto.xcodeproj/project.pbxproj index 0012db7..26d3983 100644 --- a/CopyMailto.xcodeproj/project.pbxproj +++ b/CopyMailto.xcodeproj/project.pbxproj @@ -102,6 +102,11 @@ D1F170F621402BB000BD08A0 = { CreatedOnToolsVersion = 9.2; ProvisioningStyle = Automatic; + SystemCapabilities = { + com.apple.Sandbox = { + enabled = 0; + }; + }; }; }; }; @@ -267,7 +272,6 @@ isa = XCBuildConfiguration; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_ENTITLEMENTS = CopyMailto/CopyMailto.entitlements; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; INFOPLIST_FILE = CopyMailto/Info.plist; @@ -282,7 +286,6 @@ isa = XCBuildConfiguration; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_ENTITLEMENTS = CopyMailto/CopyMailto.entitlements; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; INFOPLIST_FILE = CopyMailto/Info.plist; diff --git a/CopyMailto/CopyMailto.entitlements b/CopyMailto/CopyMailto.entitlements index f2ef3ae..0c67376 100644 --- a/CopyMailto/CopyMailto.entitlements +++ b/CopyMailto/CopyMailto.entitlements @@ -1,10 +1,5 @@ - - com.apple.security.app-sandbox - - com.apple.security.files.user-selected.read-only - - + diff --git a/CopyMailto/DefaultURLHandler.m b/CopyMailto/DefaultURLHandler.m index 8ce1728..123ad7b 100644 --- a/CopyMailto/DefaultURLHandler.m +++ b/CopyMailto/DefaultURLHandler.m @@ -13,6 +13,7 @@ + (OSStatus)setDefaultURLHandler { CFStringRef scheme = (CFStringRef)@"mailto"; CFStringRef bundle_identifier = (__bridge CFStringRef)[[NSBundle mainBundle] bundleIdentifier]; + NSLog(@"%@", scheme); NSLog(@"%@", bundle_identifier); OSStatus status = LSSetDefaultHandlerForURLScheme(scheme, bundle_identifier); -- cgit v1.2.3