From e68e8e347743923d93161dda50c70d5dba3bb545 Mon Sep 17 00:00:00 2001 From: Volodymyr Boichentsov Date: Mon, 3 May 2021 17:36:50 +0100 Subject: [PATCH] catalyst for macOS --- MetalToy.xcodeproj/project.pbxproj | 8 ++++++++ MetalToy/Info.plist | 2 ++ MetalToy/MetalToy.entitlements | 12 ++++++++++++ MetalToy/ShaderDocumentBrowserViewController.swift | 8 ++++++++ 4 files changed, 30 insertions(+) create mode 100644 MetalToy/MetalToy.entitlements diff --git a/MetalToy.xcodeproj/project.pbxproj b/MetalToy.xcodeproj/project.pbxproj index 5c42cb2..cf45616 100644 --- a/MetalToy.xcodeproj/project.pbxproj +++ b/MetalToy.xcodeproj/project.pbxproj @@ -284,6 +284,7 @@ CD3D2D55237CB99500AE703F /* ExamplesViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExamplesViewController.swift; sourceTree = ""; }; CD3F7308237E06DC0079286B /* examples */ = {isa = PBXFileReference; lastKnownFileType = folder; path = examples; sourceTree = ""; }; CDFF76A522B990A10022D9FF /* Suggestions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Suggestions.swift; sourceTree = ""; }; + D21AE4F52640410700B07A72 /* MetalToy.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = MetalToy.entitlements; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -317,6 +318,7 @@ 5241E9961F49E55000107886 /* MetalToy */ = { isa = PBXGroup; children = ( + D21AE4F52640410700B07A72 /* MetalToy.entitlements */, 5241E9971F49E55000107886 /* AppDelegate.swift */, 52FF7415219251ED0056FFC4 /* EditorNavigationController.swift */, 520C76512044CB1100F39EA1 /* EditorViewController.swift */, @@ -870,6 +872,7 @@ isa = XCBuildConfiguration; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_ENTITLEMENTS = MetalToy/MetalToy.entitlements; CURRENT_PROJECT_VERSION = 12; DEVELOPMENT_TEAM = 9XA2D6V342; INFOPLIST_FILE = MetalToy/Info.plist; @@ -878,8 +881,10 @@ MARKETING_VERSION = 2.7; PRODUCT_BUNDLE_IDENTIFIER = antonie.jovanoski.MetalToy; PRODUCT_NAME = "$(TARGET_NAME)"; + SUPPORTS_MACCATALYST = YES; SWIFT_SWIFT3_OBJC_INFERENCE = Default; SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = 2; }; name = Debug; }; @@ -887,6 +892,7 @@ isa = XCBuildConfiguration; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_ENTITLEMENTS = MetalToy/MetalToy.entitlements; CURRENT_PROJECT_VERSION = 12; DEVELOPMENT_TEAM = 9XA2D6V342; INFOPLIST_FILE = MetalToy/Info.plist; @@ -895,8 +901,10 @@ MARKETING_VERSION = 2.7; PRODUCT_BUNDLE_IDENTIFIER = antonie.jovanoski.MetalToy; PRODUCT_NAME = "$(TARGET_NAME)"; + SUPPORTS_MACCATALYST = YES; SWIFT_SWIFT3_OBJC_INFERENCE = Default; SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = 2; }; name = Release; }; diff --git a/MetalToy/Info.plist b/MetalToy/Info.plist index 7bbef4c..3dd181d 100644 --- a/MetalToy/Info.plist +++ b/MetalToy/Info.plist @@ -13,6 +13,8 @@ CFBundleTypeName Shader Document + CFBundleTypeRole + Editor LSHandlerRank Owner LSItemContentTypes diff --git a/MetalToy/MetalToy.entitlements b/MetalToy/MetalToy.entitlements new file mode 100644 index 0000000..a046386 --- /dev/null +++ b/MetalToy/MetalToy.entitlements @@ -0,0 +1,12 @@ + + + + + com.apple.security.app-sandbox + + com.apple.security.files.user-selected.read-write + + com.apple.security.network.client + + + diff --git a/MetalToy/ShaderDocumentBrowserViewController.swift b/MetalToy/ShaderDocumentBrowserViewController.swift index 0d0c623..4c398fd 100644 --- a/MetalToy/ShaderDocumentBrowserViewController.swift +++ b/MetalToy/ShaderDocumentBrowserViewController.swift @@ -83,6 +83,14 @@ class ShaderDocumentBrowserViewController: UIDocumentBrowserViewController, UIDo presentDocument(at: url) } + func documentBrowser(_ controller: UIDocumentBrowserViewController, didPickDocumentsAt documentURLs: [URL]) { + + guard let url = documentURLs.first else { + fatalError(" no url? ") + } + presentDocument(at: url) + } + // -------- Present document ------- // - Load main storyboard // - instatiate navigation controller