From 0371a6c1cbcf4fb1a54ee33f4380760b821b5e8b Mon Sep 17 00:00:00 2001 From: mtj0928 Date: Sun, 17 Jul 2022 18:38:22 +0900 Subject: [PATCH 1/8] Embed ExtensionKit Extensions --- Sources/XcodeGenKit/PBXProjGenerator.swift | 15 ++++++- .../ProjectGeneratorTests.swift | 44 +++++++++++++++++++ 2 files changed, 57 insertions(+), 2 deletions(-) diff --git a/Sources/XcodeGenKit/PBXProjGenerator.swift b/Sources/XcodeGenKit/PBXProjGenerator.swift index 20ffcfb0..aaca86ea 100644 --- a/Sources/XcodeGenKit/PBXProjGenerator.swift +++ b/Sources/XcodeGenKit/PBXProjGenerator.swift @@ -670,6 +670,7 @@ public class PBXProjGenerator { var copyWatchReferences: [PBXBuildFile] = [] var packageDependencies: [XCSwiftPackageProductDependency] = [] var extensions: [PBXBuildFile] = [] + var extensionKitExtensions: [PBXBuildFile] = [] var systemExtensions: [PBXBuildFile] = [] var appClips: [PBXBuildFile] = [] var carthageFrameworksToEmbed: [String] = [] @@ -735,9 +736,11 @@ public class PBXProjGenerator { if dependency.copyPhase != nil { // custom copy takes precedence customCopyDependenciesReferences.append(embedFile) - } else if dependencyTarget.type.isExtension { + } else if dependencyTarget.type.isExtension && dependencyTarget.type != .extensionKitExtension { // embed app extension extensions.append(embedFile) + } else if dependencyTarget.type == .extensionKitExtension { + extensionKitExtensions.append(embedFile) } else if dependencyTarget.type.isSystemExtension { // embed system extension systemExtensions.append(embedFile) @@ -1156,13 +1159,21 @@ public class PBXProjGenerator { if !extensions.isEmpty { - let copyFilesPhase = addObject( + let copyFilesPhase = addObject( getPBXCopyFilesBuildPhase(dstSubfolderSpec: .plugins, name: "Embed App Extensions", files: extensions) ) buildPhases.append(copyFilesPhase) } + if !extensionKitExtensions.isEmpty { + + let copyFilesPhase = addObject( + getPBXCopyFilesBuildPhase(dstSubfolderSpec: .productsDirectory, dstPath: "$(EXTENSIONS_FOLDER_PATH)", name: "Embed ExtensionKit Extensions", files: extensionKitExtensions) + ) + buildPhases.append(copyFilesPhase) + } + if !systemExtensions.isEmpty { let copyFilesPhase = addObject( diff --git a/Tests/XcodeGenKitTests/ProjectGeneratorTests.swift b/Tests/XcodeGenKitTests/ProjectGeneratorTests.swift index 168bf401..4ed5ae08 100644 --- a/Tests/XcodeGenKitTests/ProjectGeneratorTests.swift +++ b/Tests/XcodeGenKitTests/ProjectGeneratorTests.swift @@ -2094,6 +2094,50 @@ class ProjectGeneratorTests: XCTestCase { try expectCopyPhase(in: pbxProject, withFilePaths: ["extA.appex"], toSubFolder: .executables, dstPath: "test") } } + + $0.context("extensionKit") { + + let extA = Target( + name: "extA", + type: .extensionKitExtension, + platform: .macOS + ) + let extB = Target( + name: "extB", + type: .extensionKitExtension, + platform: .macOS + ) + + $0.it("embeds them into plugins without copy phase spec") { + + // given + let dependencies = [ + Dependency(type: .target, reference: extA.name, embed: true), + Dependency(type: .target, reference: extB.name, embed: false), + ] + + // when + let pbxProject = try generateProjectForApp(withDependencies: dependencies, targets: [extA, extB]) + + // then + try expectCopyPhase(in: pbxProject, withFilePaths: ["extA.appex"], toSubFolder: .productsDirectory, dstPath: "$(EXTENSIONS_FOLDER_PATH)") + } + + $0.it("embeds them into custom location with copy phase spec") { + + // given + let dependencies = [ + Dependency(type: .target, reference: extA.name, embed: true, copyPhase: BuildPhaseSpec.CopyFilesSettings(destination: .productsDirectory, subpath: "test", phaseOrder: .postCompile)), + Dependency(type: .target, reference: extB.name, embed: false, copyPhase: BuildPhaseSpec.CopyFilesSettings(destination: .productsDirectory, subpath: "test", phaseOrder: .postCompile)), + ] + + // when + let pbxProject = try generateProjectForApp(withDependencies: dependencies, targets: [extA, extB]) + + // then + try expectCopyPhase(in: pbxProject, withFilePaths: ["extA.appex"], toSubFolder: .productsDirectory, dstPath: "test") + } + } $0.context("commandLineTool") { From bf71a5ddd4c63f85f017a88053e38a286c5b45f4 Mon Sep 17 00:00:00 2001 From: mtj0928 Date: Sun, 17 Jul 2022 19:04:23 +0900 Subject: [PATCH 2/8] Fix explicitFileType for extensionKit --- Sources/XcodeGenKit/PBXProjGenerator.swift | 4 ++-- Sources/XcodeGenKit/XCProjExtensions.swift | 6 ++++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/Sources/XcodeGenKit/PBXProjGenerator.swift b/Sources/XcodeGenKit/PBXProjGenerator.swift index aaca86ea..f2fb8d5a 100644 --- a/Sources/XcodeGenKit/PBXProjGenerator.swift +++ b/Sources/XcodeGenKit/PBXProjGenerator.swift @@ -128,8 +128,8 @@ public class PBXProjGenerator { var explicitFileType: String? var lastKnownFileType: String? - let fileType = Xcode.fileType(path: Path(target.filename)) - if target.platform == .macOS || target.platform == .watchOS || target.type == .framework { + let fileType = Xcode.fileType(path: Path(target.filename), productType: target.type) + if target.platform == .macOS || target.platform == .watchOS || target.type == .framework || target.type == .extensionKitExtension { explicitFileType = fileType } else { lastKnownFileType = fileType diff --git a/Sources/XcodeGenKit/XCProjExtensions.swift b/Sources/XcodeGenKit/XCProjExtensions.swift index dc03fe9d..4247ce91 100644 --- a/Sources/XcodeGenKit/XCProjExtensions.swift +++ b/Sources/XcodeGenKit/XCProjExtensions.swift @@ -53,10 +53,12 @@ extension Dictionary { extension Xcode { - public static func fileType(path: Path) -> String? { + public static func fileType(path: Path, productType: PBXProductType? = nil) -> String? { guard let fileExtension = path.extension else { return nil } - switch fileExtension { + switch (fileExtension, productType) { // cases that aren't handled (yet) in XcodeProj. + case ("appex", .extensionKitExtension): + return "wrapper.extensionkit-extension" default: // fallback to XcodeProj defaults return Xcode.filetype(extension: fileExtension) From 7f1fa4005964699b9a3860106a75163397ac0c90 Mon Sep 17 00:00:00 2001 From: mtj0928 Date: Sun, 17 Jul 2022 19:51:07 +0900 Subject: [PATCH 3/8] Update ChangeLog --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 924fe6c8..9beb6e1c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,8 @@ # Change Log ## Next Version +### Added +- Added a new CopyFilesBuildPhase, "Embed ExtensionKit Extensions" #1230 @mtj0928 ## 2.30.0 From 46c86f85b8648bf6d28c1599d078aa042f37af52 Mon Sep 17 00:00:00 2001 From: mtj0928 Date: Mon, 18 Jul 2022 17:50:04 +0900 Subject: [PATCH 4/8] Fix if statement structure --- Sources/XcodeGenKit/PBXProjGenerator.swift | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/Sources/XcodeGenKit/PBXProjGenerator.swift b/Sources/XcodeGenKit/PBXProjGenerator.swift index f2fb8d5a..60ebdfca 100644 --- a/Sources/XcodeGenKit/PBXProjGenerator.swift +++ b/Sources/XcodeGenKit/PBXProjGenerator.swift @@ -736,11 +736,14 @@ public class PBXProjGenerator { if dependency.copyPhase != nil { // custom copy takes precedence customCopyDependenciesReferences.append(embedFile) - } else if dependencyTarget.type.isExtension && dependencyTarget.type != .extensionKitExtension { - // embed app extension - extensions.append(embedFile) - } else if dependencyTarget.type == .extensionKitExtension { - extensionKitExtensions.append(embedFile) + } else if dependencyTarget.type.isExtension { + if dependencyTarget.type == .extensionKitExtension { + // embed extension kit extension + extensionKitExtensions.append(embedFile) + } else { + // embed app extension + extensions.append(embedFile) + } } else if dependencyTarget.type.isSystemExtension { // embed system extension systemExtensions.append(embedFile) From 3a388267c714479e0d9ef6316df6dee48be16c77 Mon Sep 17 00:00:00 2001 From: mtj0928 Date: Mon, 18 Jul 2022 18:25:20 +0900 Subject: [PATCH 5/8] Add a new example extension to Tests/Fixtures/TestProject/ --- .../ExtensionKit Extension/EntryPoint.swift | 5 +++++ .../TestProject/ExtensionKit Extension/Info.plist | 11 +++++++++++ .../TestProject/ExtensionKit Extension/Intent.swift | 9 +++++++++ Tests/Fixtures/TestProject/project.yml | 6 ++++++ 4 files changed, 31 insertions(+) create mode 100644 Tests/Fixtures/TestProject/ExtensionKit Extension/EntryPoint.swift create mode 100644 Tests/Fixtures/TestProject/ExtensionKit Extension/Info.plist create mode 100644 Tests/Fixtures/TestProject/ExtensionKit Extension/Intent.swift diff --git a/Tests/Fixtures/TestProject/ExtensionKit Extension/EntryPoint.swift b/Tests/Fixtures/TestProject/ExtensionKit Extension/EntryPoint.swift new file mode 100644 index 00000000..0e665c55 --- /dev/null +++ b/Tests/Fixtures/TestProject/ExtensionKit Extension/EntryPoint.swift @@ -0,0 +1,5 @@ +import AppIntents + +@main +struct EntryPoint: AppIntentsExtension { +} diff --git a/Tests/Fixtures/TestProject/ExtensionKit Extension/Info.plist b/Tests/Fixtures/TestProject/ExtensionKit Extension/Info.plist new file mode 100644 index 00000000..8d15acbe --- /dev/null +++ b/Tests/Fixtures/TestProject/ExtensionKit Extension/Info.plist @@ -0,0 +1,11 @@ + + + + + EXAppExtensionAttributes + + EXExtensionPointIdentifier + com.apple.appintents-extension + + + diff --git a/Tests/Fixtures/TestProject/ExtensionKit Extension/Intent.swift b/Tests/Fixtures/TestProject/ExtensionKit Extension/Intent.swift new file mode 100644 index 00000000..0449c505 --- /dev/null +++ b/Tests/Fixtures/TestProject/ExtensionKit Extension/Intent.swift @@ -0,0 +1,9 @@ +import AppIntents + +struct Intent: AppIntent { + static var title: LocalizedStringResource = "Intent" + + func perform() async throws -> some IntentResult { + return .result() + } +} diff --git a/Tests/Fixtures/TestProject/project.yml b/Tests/Fixtures/TestProject/project.yml index 5692e7e2..bcf7efb7 100644 --- a/Tests/Fixtures/TestProject/project.yml +++ b/Tests/Fixtures/TestProject/project.yml @@ -146,6 +146,7 @@ targets: - package: Swinject product: Swinject platformFilter: iOS + - target: ExtensionKitExtension onlyCopyFilesOnInstall: true scheme: testTargets: @@ -391,6 +392,11 @@ targets: dependencies: - target: App_Clip + ExtensionKitExtension: + type: extensionkit-extension + platform: iOS + sources: ExtensionKit Extension + schemes: Framework: build: From b52604428cf73e26a834a006855b18e2fda17843 Mon Sep 17 00:00:00 2001 From: mtj0928 Date: Mon, 18 Jul 2022 18:29:23 +0900 Subject: [PATCH 6/8] Update Tests/Fixtures/TestProject/Project.xcodeproj --- .../Project.xcodeproj/project.pbxproj | 166 ++++++++++++++++++ 1 file changed, 166 insertions(+) diff --git a/Tests/Fixtures/TestProject/Project.xcodeproj/project.pbxproj b/Tests/Fixtures/TestProject/Project.xcodeproj/project.pbxproj index cc3fa31d..fcf25710 100644 --- a/Tests/Fixtures/TestProject/Project.xcodeproj/project.pbxproj +++ b/Tests/Fixtures/TestProject/Project.xcodeproj/project.pbxproj @@ -109,6 +109,7 @@ 778F71CA1CC4BEECDACAD8B9 /* Result.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 0C5AC2545AE4D4F7F44E2E9B /* Result.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 77C3CB285572EA4BB7E201A7 /* App_Clip.app in Embed App Clips */ = {isa = PBXBuildFile; fileRef = 38DB679FF1CF4E379D1AB103 /* App_Clip.app */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; 7A0DABBEA55B06E148C665A8 /* StaticLibrary.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6AC91042453E18DF74BA1C0F /* StaticLibrary.swift */; }; + 7A5E898E776D00935CBA2F1A /* Intent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 181422B9EBFACCF6D9688634 /* Intent.swift */; }; 7A8C78212CEAC6452DFAB00E /* FrameworkFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2A5F527F2590C14956518174 /* FrameworkFile.swift */; }; 7C8FF0B857E390417134C10F /* Result.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = D296BB7355994040E197A1EE /* Result.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 7F658343A505B824321E086B /* Headers in Headers */ = {isa = PBXBuildFile; fileRef = 2E1E747C7BC434ADB80CC269 /* Headers */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -119,6 +120,7 @@ 87927928A8A3460166ACB819 /* SwiftFileInDotPath.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F430AABE04B7499B458D9DB /* SwiftFileInDotPath.swift */; settings = {COMPILER_FLAGS = "-Werror"; }; }; 8C941A6EF08069CB3CB88FC1 /* Result.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 0C5AC2545AE4D4F7F44E2E9B /* Result.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 900CFAD929CAEE3861127627 /* MyBundle.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 7B5068D64404C61A67A18458 /* MyBundle.bundle */; }; + 90335B78D7681DFED096EC6D /* EntryPoint.swift in Sources */ = {isa = PBXBuildFile; fileRef = 838384AD4D146667BAE1C1B5 /* EntryPoint.swift */; }; 94FD20C3EA5EBCEC8783740C /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = BDCA996D141DD8A16B18D68F /* GoogleService-Info.plist */; }; 95DD9941E1529FD2AE1A191D /* StaticLibrary_ObjC.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 5A2B916A11DCC2565241359F /* StaticLibrary_ObjC.h */; }; 96B55C0F660235FE6BDD8869 /* MyFramework.h in Headers */ = {isa = PBXBuildFile; fileRef = 6A58A16491CDDF968B0D56DE /* MyFramework.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -142,6 +144,7 @@ B2D43A31C184E34EF9CB743C /* Framework.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 8A9274BE42A03DC5DA1FAD04 /* Framework.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; B47F2629BFE5853767C8BB5E /* Contacts.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDB2B6A77D39CD5602F2125F /* Contacts.framework */; }; B49D3A51787E362DE4D0E78A /* SomeXPCService.xpc in CopyFiles */ = {isa = PBXBuildFile; fileRef = 70A8E15C81E454DC950C59F0 /* SomeXPCService.xpc */; }; + B5C73BC3495B36D7E2E77FD0 /* ExtensionKitExtension.appex in Embed ExtensionKit Extensions */ = {isa = PBXBuildFile; fileRef = 23158D160F3E34EE4E252D05 /* ExtensionKitExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; B9F3C9E77019EC3423A7F5D8 /* TestProjectTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 87DF9DCA8399E3214A7E27CF /* TestProjectTests.swift */; }; BAA1C1E3828F5D43546AF997 /* libc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 0BB1B49A91B892152D68ED76 /* libc++.tbd */; }; BB06A57E259D0D2A001EA21F /* Result.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 0C5AC2545AE4D4F7F44E2E9B /* Result.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; @@ -270,6 +273,13 @@ remoteGlobalIDString = 020A320BB3736FCDE6CC4E70; remoteInfo = App_macOS; }; + 637435E7B5453059F8DBAC36 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 0FBAE303E3CFC2ABAC876A77 /* Project object */; + proxyType = 1; + remoteGlobalIDString = F44ADF447ED210C91B29879E; + remoteInfo = ExtensionKitExtension; + }; 69E205A3F578A8FFE3ECF3F9 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 0FBAE303E3CFC2ABAC876A77 /* Project object */; @@ -447,6 +457,17 @@ name = "Embed Frameworks"; runOnlyForDeploymentPostprocessing = 0; }; + 253AB801AE49578006CF2C13 /* Embed ExtensionKit Extensions */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 8; + dstPath = "$(EXTENSIONS_FOLDER_PATH)"; + dstSubfolderSpec = 16; + files = ( + B5C73BC3495B36D7E2E77FD0 /* ExtensionKitExtension.appex in Embed ExtensionKit Extensions */, + ); + name = "Embed ExtensionKit Extensions"; + runOnlyForDeploymentPostprocessing = 1; + }; 2F0735A423E554B267BBA0A5 /* Embed App Extensions */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 2147483647; @@ -677,6 +698,7 @@ 148B7C933698BCC4F1DBA979 /* XPC_Service.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPC_Service.m; sourceTree = ""; }; 16AA52945B70B1BF9E246350 /* FilterDataProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FilterDataProvider.swift; sourceTree = ""; }; 16D662EE577E4CD6AFF39D66 /* config.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = config.xcconfig; sourceTree = ""; }; + 181422B9EBFACCF6D9688634 /* Intent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Intent.swift; sourceTree = ""; }; 187E665975BB5611AF0F27E1 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; 1BC32A813B80A53962A1F365 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 1D0C79A8C750EC0DE748C463 /* StaticLibrary_ObjC.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = StaticLibrary_ObjC.m; sourceTree = ""; }; @@ -684,6 +706,7 @@ 2049B6DD2AFE85F9DC9F3EB3 /* NetworkSystemExtension.systemextension */ = {isa = PBXFileReference; explicitFileType = "wrapper.system-extension"; includeInIndex = 0; path = NetworkSystemExtension.systemextension; sourceTree = BUILT_PRODUCTS_DIR; }; 22237B8EBD9E6BE8EBC8735F /* XPC Service.xpc */ = {isa = PBXFileReference; explicitFileType = "wrapper.xpc-service"; includeInIndex = 0; path = "XPC Service.xpc"; sourceTree = BUILT_PRODUCTS_DIR; }; 2233774B86539B1574D206B0 /* Framework2.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Framework2.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 23158D160F3E34EE4E252D05 /* ExtensionKitExtension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.extensionkit-extension"; includeInIndex = 0; path = ExtensionKitExtension.appex; sourceTree = BUILT_PRODUCTS_DIR; }; 2385A62F6C6EE8D461EE19F2 /* ExternalTarget.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = ExternalTarget.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 23A2F16890ECF2EE3FED72AE /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 28360ECA4D727FAA58557A81 /* example.mp4 */ = {isa = PBXFileReference; path = example.mp4; sourceTree = ""; }; @@ -694,6 +717,7 @@ 325F18855099386B08DD309B /* Resource.abcd */ = {isa = PBXFileReference; path = Resource.abcd; sourceTree = ""; }; 33F6DCDC37D2E66543D4965D /* App_macOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = App_macOS.app; sourceTree = BUILT_PRODUCTS_DIR; }; 34F13B632328979093CE6056 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; }; + 354C853F924B2951B0F93235 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; }; 3571E41E19A5AB8AAAB04109 /* StandaloneAssets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = StandaloneAssets.xcassets; sourceTree = ""; }; 3797E591F302ECC0AA2FC607 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 382E11E88B12BCB30F575686 /* Driver.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Driver.entitlements; sourceTree = ""; }; @@ -738,6 +762,7 @@ 7F1A2F579A6F79C62DDA0571 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 7FDC16E1938AA114B67D87A9 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Interface.storyboard; sourceTree = ""; }; 814822136AF3C64428D69DD6 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 838384AD4D146667BAE1C1B5 /* EntryPoint.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EntryPoint.swift; sourceTree = ""; }; 83B5EC7EF81F7E4B6F426D4E /* DriverKitDriver.dext */ = {isa = PBXFileReference; explicitFileType = "wrapper.driver-extension"; includeInIndex = 0; path = DriverKitDriver.dext; sourceTree = BUILT_PRODUCTS_DIR; }; 84317819C92F78425870E483 /* BundleX.bundle */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.cfbundle; path = BundleX.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; 86169DEEDEAF09AB89C8A31D /* libStaticLibrary_ObjC.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libStaticLibrary_ObjC.a; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -1038,6 +1063,7 @@ FCC084D4F8992BBC49983A38 /* CustomGroup */, 7979F5A04B370C36415EFB11 /* DriverKit Driver */, 99EF37D6DEE914E180236A91 /* EndpointSecurity Extension */, + 6069E4C26E04A41AF4DBC701 /* ExtensionKit Extension */, 5CBCE0E2A145046265FE99E2 /* FileGroup */, 1A57D1EE1FBC13598F6B5CB0 /* Framework */, A3DCF90D9B1EF4E27CF54B19 /* iMessageApp */, @@ -1114,6 +1140,16 @@ path = FileGroup; sourceTree = ""; }; + 6069E4C26E04A41AF4DBC701 /* ExtensionKit Extension */ = { + isa = PBXGroup; + children = ( + 838384AD4D146667BAE1C1B5 /* EntryPoint.swift */, + 354C853F924B2951B0F93235 /* Info.plist */, + 181422B9EBFACCF6D9688634 /* Intent.swift */, + ); + path = "ExtensionKit Extension"; + sourceTree = ""; + }; 68829F7392F2B367129BA0E7 /* UnderFileGroup */ = { isa = PBXGroup; children = ( @@ -1278,6 +1314,7 @@ 83B5EC7EF81F7E4B6F426D4E /* DriverKitDriver.dext */, E5E0A80CCE8F8DB662DCD2D0 /* EndpointSecuritySystemExtension.systemextension */, 7D700FA699849D2F95216883 /* EntitledApp.app */, + 23158D160F3E34EE4E252D05 /* ExtensionKitExtension.appex */, 2385A62F6C6EE8D461EE19F2 /* ExternalTarget.framework */, 8A9274BE42A03DC5DA1FAD04 /* Framework.framework */, 41FC82ED1C4C3B7B3D7B2FB7 /* Framework.framework */, @@ -1593,6 +1630,7 @@ 37182EC208DBF03DB1BAF452 /* Carthage */, 117840B4DBC04099F6779D00 /* Frameworks */, E8BC0F358D693454E5027ECC /* Copy Bundle Resources */, + 253AB801AE49578006CF2C13 /* Embed ExtensionKit Extensions */, 94FF9CA021C43301BA069930 /* Embed App Clips */, FE78CC3322C9C2DB1D64EAAA /* Embed Frameworks */, 807155B9081529D99AAB4743 /* Embed Watch Content */, @@ -1605,6 +1643,7 @@ 4FA29DA80DA668224AED741F /* PBXTargetDependency */, 8B6243D8D47A6ADA4CA0D7BD /* PBXTargetDependency */, 0D33D01C71E8002A07F02122 /* PBXTargetDependency */, + 728B714A29ADC8279A0F5225 /* PBXTargetDependency */, A94F38390A74E215EC107BB5 /* PBXTargetDependency */, E84285243DE0BB361A708079 /* PBXTargetDependency */, E8C078B0A2A2B0E1D35694D5 /* PBXTargetDependency */, @@ -2135,6 +2174,21 @@ productReference = 22237B8EBD9E6BE8EBC8735F /* XPC Service.xpc */; productType = "com.apple.product-type.xpc-service"; }; + F44ADF447ED210C91B29879E /* ExtensionKitExtension */ = { + isa = PBXNativeTarget; + buildConfigurationList = 746C5EC57766652AAFCB0D89 /* Build configuration list for PBXNativeTarget "ExtensionKitExtension" */; + buildPhases = ( + 22086680A1CD5B6F9120DD31 /* Sources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = ExtensionKitExtension; + productName = ExtensionKitExtension; + productReference = 23158D160F3E34EE4E252D05 /* ExtensionKitExtension.appex */; + productType = "com.apple.product-type.extensionkit-extension"; + }; F674B2CFC4738EEC49BAD0DA /* App_iOS_UITests */ = { isa = PBXNativeTarget; buildConfigurationList = 68CC35789B0DB020E2CFC517 /* Build configuration list for PBXNativeTarget "App_iOS_UITests" */; @@ -2233,6 +2287,7 @@ 428715FBC1D86458DA70CBDE /* DriverKitDriver */, 9F551F66949B55E8328EB995 /* EndpointSecuritySystemExtension */, B61ED4688789B071275E2B7A /* EntitledApp */, + F44ADF447ED210C91B29879E /* ExtensionKitExtension */, E7454C10EA126A93537DD57E /* ExternalTarget */, CE7D183D3752B5B35D2D8E6D /* Framework2_iOS */, FC26AF2506D3B2B40DE8A5F8 /* Framework2_macOS */, @@ -2579,6 +2634,15 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 22086680A1CD5B6F9120DD31 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 90335B78D7681DFED096EC6D /* EntryPoint.swift in Sources */, + 7A5E898E776D00935CBA2F1A /* Intent.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 2235AD7DEFC8FE534AB91B38 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -2909,6 +2973,11 @@ target = 428715FBC1D86458DA70CBDE /* DriverKitDriver */; targetProxy = 6ED42BD51E8832232E58D9C1 /* PBXContainerItemProxy */; }; + 728B714A29ADC8279A0F5225 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = F44ADF447ED210C91B29879E /* ExtensionKitExtension */; + targetProxy = 637435E7B5453059F8DBAC36 /* PBXContainerItemProxy */; + }; 7EFC0278E67CD35F8981993C /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = 578C80E461E675508CED5DC3 /* StaticLibrary_ObjC_macOS */; @@ -4012,6 +4081,20 @@ }; name = "Staging Debug"; }; + 36AE3E6FE1D5370BC2BDBFA0 /* Test Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + INFOPLIST_FILE = "ExtensionKit Extension/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.project.ExtensionKitExtension; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Test Release"; + }; 36C4B3A6EACCB88098CE13D7 /* Test Release */ = { isa = XCBuildConfiguration; buildSettings = { @@ -5119,6 +5202,20 @@ }; name = "Staging Release"; }; + 78C70580A5A5DC35167DEF84 /* Production Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + INFOPLIST_FILE = "ExtensionKit Extension/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.project.ExtensionKitExtension; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Production Debug"; + }; 7931F229200F89B8CDC8A5E3 /* Test Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -5160,6 +5257,20 @@ }; name = "Production Release"; }; + 7A2BB9872B1489E2595FA31B /* Production Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + INFOPLIST_FILE = "ExtensionKit Extension/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.project.ExtensionKitExtension; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Production Release"; + }; 7B2A1BE6CA654E9903A4C680 /* Staging Release */ = { isa = XCBuildConfiguration; buildSettings = { @@ -5871,6 +5982,20 @@ }; name = "Production Debug"; }; + A536BC5E74350FE26AE93196 /* Staging Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + INFOPLIST_FILE = "ExtensionKit Extension/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.project.ExtensionKitExtension; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Staging Debug"; + }; A59DDFBFCF18C44A993CFB00 /* Test Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -6451,6 +6576,20 @@ }; name = "Production Debug"; }; + BF9706E8855063B196C87707 /* Staging Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + INFOPLIST_FILE = "ExtensionKit Extension/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.project.ExtensionKitExtension; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Staging Release"; + }; C00DBF60DC8C1A570738241F /* Test Release */ = { isa = XCBuildConfiguration; buildSettings = { @@ -7716,6 +7855,20 @@ }; name = "Test Debug"; }; + FCDAC56AAE539E041C4667EE /* Test Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + INFOPLIST_FILE = "ExtensionKit Extension/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.project.ExtensionKitExtension; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Test Debug"; + }; FE029D76C57D0661E4B8F13B /* Staging Release */ = { isa = XCBuildConfiguration; buildSettings = { @@ -8004,6 +8157,19 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = "Production Debug"; }; + 746C5EC57766652AAFCB0D89 /* Build configuration list for PBXNativeTarget "ExtensionKitExtension" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 78C70580A5A5DC35167DEF84 /* Production Debug */, + 7A2BB9872B1489E2595FA31B /* Production Release */, + A536BC5E74350FE26AE93196 /* Staging Debug */, + BF9706E8855063B196C87707 /* Staging Release */, + FCDAC56AAE539E041C4667EE /* Test Debug */, + 36AE3E6FE1D5370BC2BDBFA0 /* Test Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Production Debug"; + }; 752BB3C1A601770BDD9AC01E /* Build configuration list for PBXNativeTarget "StaticLibrary_ObjC_macOS" */ = { isa = XCConfigurationList; buildConfigurations = ( From 7b5fa5efac61dbea9bbc81c5c16ace33d334ae05 Mon Sep 17 00:00:00 2001 From: mtj0928 Date: Wed, 20 Jul 2022 21:01:26 +0900 Subject: [PATCH 7/8] Comment out example for extension kit extension in Tests/Fixtures/TestProject/ --- Tests/Fixtures/TestProject/project.yml | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/Tests/Fixtures/TestProject/project.yml b/Tests/Fixtures/TestProject/project.yml index bcf7efb7..7b6d4ea5 100644 --- a/Tests/Fixtures/TestProject/project.yml +++ b/Tests/Fixtures/TestProject/project.yml @@ -146,7 +146,9 @@ targets: - package: Swinject product: Swinject platformFilter: iOS - - target: ExtensionKitExtension +# https://github.com/yonaskolb/XcodeGen/issues/1232 +# After GitHub Actions start supporting Xcode 14, an example for extensionKit should be added. +# - target: ExtensionKitExtension onlyCopyFilesOnInstall: true scheme: testTargets: @@ -391,11 +393,12 @@ targets: sources: App_Clip_UITests dependencies: - target: App_Clip - - ExtensionKitExtension: - type: extensionkit-extension - platform: iOS - sources: ExtensionKit Extension +# https://github.com/yonaskolb/XcodeGen/issues/1232 +# After GitHub Actions start supporting Xcode 14, an example for extensionKit should be added. +# ExtensionKitExtension: +# type: extensionkit-extension +# platform: iOS +# sources: ExtensionKit Extension schemes: Framework: From 4e64095e314b4fe9d6533967f30732b41a66cb6f Mon Sep 17 00:00:00 2001 From: mtj0928 Date: Wed, 20 Jul 2022 21:02:03 +0900 Subject: [PATCH 8/8] Update Tests/Fixtures/TestProject/Project.xcodeproj --- .../Project.xcodeproj/project.pbxproj | 166 ------------------ 1 file changed, 166 deletions(-) diff --git a/Tests/Fixtures/TestProject/Project.xcodeproj/project.pbxproj b/Tests/Fixtures/TestProject/Project.xcodeproj/project.pbxproj index fcf25710..cc3fa31d 100644 --- a/Tests/Fixtures/TestProject/Project.xcodeproj/project.pbxproj +++ b/Tests/Fixtures/TestProject/Project.xcodeproj/project.pbxproj @@ -109,7 +109,6 @@ 778F71CA1CC4BEECDACAD8B9 /* Result.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 0C5AC2545AE4D4F7F44E2E9B /* Result.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 77C3CB285572EA4BB7E201A7 /* App_Clip.app in Embed App Clips */ = {isa = PBXBuildFile; fileRef = 38DB679FF1CF4E379D1AB103 /* App_Clip.app */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; 7A0DABBEA55B06E148C665A8 /* StaticLibrary.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6AC91042453E18DF74BA1C0F /* StaticLibrary.swift */; }; - 7A5E898E776D00935CBA2F1A /* Intent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 181422B9EBFACCF6D9688634 /* Intent.swift */; }; 7A8C78212CEAC6452DFAB00E /* FrameworkFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2A5F527F2590C14956518174 /* FrameworkFile.swift */; }; 7C8FF0B857E390417134C10F /* Result.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = D296BB7355994040E197A1EE /* Result.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 7F658343A505B824321E086B /* Headers in Headers */ = {isa = PBXBuildFile; fileRef = 2E1E747C7BC434ADB80CC269 /* Headers */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -120,7 +119,6 @@ 87927928A8A3460166ACB819 /* SwiftFileInDotPath.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F430AABE04B7499B458D9DB /* SwiftFileInDotPath.swift */; settings = {COMPILER_FLAGS = "-Werror"; }; }; 8C941A6EF08069CB3CB88FC1 /* Result.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 0C5AC2545AE4D4F7F44E2E9B /* Result.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 900CFAD929CAEE3861127627 /* MyBundle.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 7B5068D64404C61A67A18458 /* MyBundle.bundle */; }; - 90335B78D7681DFED096EC6D /* EntryPoint.swift in Sources */ = {isa = PBXBuildFile; fileRef = 838384AD4D146667BAE1C1B5 /* EntryPoint.swift */; }; 94FD20C3EA5EBCEC8783740C /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = BDCA996D141DD8A16B18D68F /* GoogleService-Info.plist */; }; 95DD9941E1529FD2AE1A191D /* StaticLibrary_ObjC.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 5A2B916A11DCC2565241359F /* StaticLibrary_ObjC.h */; }; 96B55C0F660235FE6BDD8869 /* MyFramework.h in Headers */ = {isa = PBXBuildFile; fileRef = 6A58A16491CDDF968B0D56DE /* MyFramework.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -144,7 +142,6 @@ B2D43A31C184E34EF9CB743C /* Framework.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 8A9274BE42A03DC5DA1FAD04 /* Framework.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; B47F2629BFE5853767C8BB5E /* Contacts.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDB2B6A77D39CD5602F2125F /* Contacts.framework */; }; B49D3A51787E362DE4D0E78A /* SomeXPCService.xpc in CopyFiles */ = {isa = PBXBuildFile; fileRef = 70A8E15C81E454DC950C59F0 /* SomeXPCService.xpc */; }; - B5C73BC3495B36D7E2E77FD0 /* ExtensionKitExtension.appex in Embed ExtensionKit Extensions */ = {isa = PBXBuildFile; fileRef = 23158D160F3E34EE4E252D05 /* ExtensionKitExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; B9F3C9E77019EC3423A7F5D8 /* TestProjectTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 87DF9DCA8399E3214A7E27CF /* TestProjectTests.swift */; }; BAA1C1E3828F5D43546AF997 /* libc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 0BB1B49A91B892152D68ED76 /* libc++.tbd */; }; BB06A57E259D0D2A001EA21F /* Result.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 0C5AC2545AE4D4F7F44E2E9B /* Result.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; @@ -273,13 +270,6 @@ remoteGlobalIDString = 020A320BB3736FCDE6CC4E70; remoteInfo = App_macOS; }; - 637435E7B5453059F8DBAC36 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 0FBAE303E3CFC2ABAC876A77 /* Project object */; - proxyType = 1; - remoteGlobalIDString = F44ADF447ED210C91B29879E; - remoteInfo = ExtensionKitExtension; - }; 69E205A3F578A8FFE3ECF3F9 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 0FBAE303E3CFC2ABAC876A77 /* Project object */; @@ -457,17 +447,6 @@ name = "Embed Frameworks"; runOnlyForDeploymentPostprocessing = 0; }; - 253AB801AE49578006CF2C13 /* Embed ExtensionKit Extensions */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 8; - dstPath = "$(EXTENSIONS_FOLDER_PATH)"; - dstSubfolderSpec = 16; - files = ( - B5C73BC3495B36D7E2E77FD0 /* ExtensionKitExtension.appex in Embed ExtensionKit Extensions */, - ); - name = "Embed ExtensionKit Extensions"; - runOnlyForDeploymentPostprocessing = 1; - }; 2F0735A423E554B267BBA0A5 /* Embed App Extensions */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 2147483647; @@ -698,7 +677,6 @@ 148B7C933698BCC4F1DBA979 /* XPC_Service.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPC_Service.m; sourceTree = ""; }; 16AA52945B70B1BF9E246350 /* FilterDataProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FilterDataProvider.swift; sourceTree = ""; }; 16D662EE577E4CD6AFF39D66 /* config.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = config.xcconfig; sourceTree = ""; }; - 181422B9EBFACCF6D9688634 /* Intent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Intent.swift; sourceTree = ""; }; 187E665975BB5611AF0F27E1 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; 1BC32A813B80A53962A1F365 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 1D0C79A8C750EC0DE748C463 /* StaticLibrary_ObjC.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = StaticLibrary_ObjC.m; sourceTree = ""; }; @@ -706,7 +684,6 @@ 2049B6DD2AFE85F9DC9F3EB3 /* NetworkSystemExtension.systemextension */ = {isa = PBXFileReference; explicitFileType = "wrapper.system-extension"; includeInIndex = 0; path = NetworkSystemExtension.systemextension; sourceTree = BUILT_PRODUCTS_DIR; }; 22237B8EBD9E6BE8EBC8735F /* XPC Service.xpc */ = {isa = PBXFileReference; explicitFileType = "wrapper.xpc-service"; includeInIndex = 0; path = "XPC Service.xpc"; sourceTree = BUILT_PRODUCTS_DIR; }; 2233774B86539B1574D206B0 /* Framework2.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Framework2.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 23158D160F3E34EE4E252D05 /* ExtensionKitExtension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.extensionkit-extension"; includeInIndex = 0; path = ExtensionKitExtension.appex; sourceTree = BUILT_PRODUCTS_DIR; }; 2385A62F6C6EE8D461EE19F2 /* ExternalTarget.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = ExternalTarget.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 23A2F16890ECF2EE3FED72AE /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 28360ECA4D727FAA58557A81 /* example.mp4 */ = {isa = PBXFileReference; path = example.mp4; sourceTree = ""; }; @@ -717,7 +694,6 @@ 325F18855099386B08DD309B /* Resource.abcd */ = {isa = PBXFileReference; path = Resource.abcd; sourceTree = ""; }; 33F6DCDC37D2E66543D4965D /* App_macOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = App_macOS.app; sourceTree = BUILT_PRODUCTS_DIR; }; 34F13B632328979093CE6056 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; }; - 354C853F924B2951B0F93235 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; }; 3571E41E19A5AB8AAAB04109 /* StandaloneAssets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = StandaloneAssets.xcassets; sourceTree = ""; }; 3797E591F302ECC0AA2FC607 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 382E11E88B12BCB30F575686 /* Driver.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Driver.entitlements; sourceTree = ""; }; @@ -762,7 +738,6 @@ 7F1A2F579A6F79C62DDA0571 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 7FDC16E1938AA114B67D87A9 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Interface.storyboard; sourceTree = ""; }; 814822136AF3C64428D69DD6 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; - 838384AD4D146667BAE1C1B5 /* EntryPoint.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EntryPoint.swift; sourceTree = ""; }; 83B5EC7EF81F7E4B6F426D4E /* DriverKitDriver.dext */ = {isa = PBXFileReference; explicitFileType = "wrapper.driver-extension"; includeInIndex = 0; path = DriverKitDriver.dext; sourceTree = BUILT_PRODUCTS_DIR; }; 84317819C92F78425870E483 /* BundleX.bundle */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.cfbundle; path = BundleX.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; 86169DEEDEAF09AB89C8A31D /* libStaticLibrary_ObjC.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libStaticLibrary_ObjC.a; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -1063,7 +1038,6 @@ FCC084D4F8992BBC49983A38 /* CustomGroup */, 7979F5A04B370C36415EFB11 /* DriverKit Driver */, 99EF37D6DEE914E180236A91 /* EndpointSecurity Extension */, - 6069E4C26E04A41AF4DBC701 /* ExtensionKit Extension */, 5CBCE0E2A145046265FE99E2 /* FileGroup */, 1A57D1EE1FBC13598F6B5CB0 /* Framework */, A3DCF90D9B1EF4E27CF54B19 /* iMessageApp */, @@ -1140,16 +1114,6 @@ path = FileGroup; sourceTree = ""; }; - 6069E4C26E04A41AF4DBC701 /* ExtensionKit Extension */ = { - isa = PBXGroup; - children = ( - 838384AD4D146667BAE1C1B5 /* EntryPoint.swift */, - 354C853F924B2951B0F93235 /* Info.plist */, - 181422B9EBFACCF6D9688634 /* Intent.swift */, - ); - path = "ExtensionKit Extension"; - sourceTree = ""; - }; 68829F7392F2B367129BA0E7 /* UnderFileGroup */ = { isa = PBXGroup; children = ( @@ -1314,7 +1278,6 @@ 83B5EC7EF81F7E4B6F426D4E /* DriverKitDriver.dext */, E5E0A80CCE8F8DB662DCD2D0 /* EndpointSecuritySystemExtension.systemextension */, 7D700FA699849D2F95216883 /* EntitledApp.app */, - 23158D160F3E34EE4E252D05 /* ExtensionKitExtension.appex */, 2385A62F6C6EE8D461EE19F2 /* ExternalTarget.framework */, 8A9274BE42A03DC5DA1FAD04 /* Framework.framework */, 41FC82ED1C4C3B7B3D7B2FB7 /* Framework.framework */, @@ -1630,7 +1593,6 @@ 37182EC208DBF03DB1BAF452 /* Carthage */, 117840B4DBC04099F6779D00 /* Frameworks */, E8BC0F358D693454E5027ECC /* Copy Bundle Resources */, - 253AB801AE49578006CF2C13 /* Embed ExtensionKit Extensions */, 94FF9CA021C43301BA069930 /* Embed App Clips */, FE78CC3322C9C2DB1D64EAAA /* Embed Frameworks */, 807155B9081529D99AAB4743 /* Embed Watch Content */, @@ -1643,7 +1605,6 @@ 4FA29DA80DA668224AED741F /* PBXTargetDependency */, 8B6243D8D47A6ADA4CA0D7BD /* PBXTargetDependency */, 0D33D01C71E8002A07F02122 /* PBXTargetDependency */, - 728B714A29ADC8279A0F5225 /* PBXTargetDependency */, A94F38390A74E215EC107BB5 /* PBXTargetDependency */, E84285243DE0BB361A708079 /* PBXTargetDependency */, E8C078B0A2A2B0E1D35694D5 /* PBXTargetDependency */, @@ -2174,21 +2135,6 @@ productReference = 22237B8EBD9E6BE8EBC8735F /* XPC Service.xpc */; productType = "com.apple.product-type.xpc-service"; }; - F44ADF447ED210C91B29879E /* ExtensionKitExtension */ = { - isa = PBXNativeTarget; - buildConfigurationList = 746C5EC57766652AAFCB0D89 /* Build configuration list for PBXNativeTarget "ExtensionKitExtension" */; - buildPhases = ( - 22086680A1CD5B6F9120DD31 /* Sources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = ExtensionKitExtension; - productName = ExtensionKitExtension; - productReference = 23158D160F3E34EE4E252D05 /* ExtensionKitExtension.appex */; - productType = "com.apple.product-type.extensionkit-extension"; - }; F674B2CFC4738EEC49BAD0DA /* App_iOS_UITests */ = { isa = PBXNativeTarget; buildConfigurationList = 68CC35789B0DB020E2CFC517 /* Build configuration list for PBXNativeTarget "App_iOS_UITests" */; @@ -2287,7 +2233,6 @@ 428715FBC1D86458DA70CBDE /* DriverKitDriver */, 9F551F66949B55E8328EB995 /* EndpointSecuritySystemExtension */, B61ED4688789B071275E2B7A /* EntitledApp */, - F44ADF447ED210C91B29879E /* ExtensionKitExtension */, E7454C10EA126A93537DD57E /* ExternalTarget */, CE7D183D3752B5B35D2D8E6D /* Framework2_iOS */, FC26AF2506D3B2B40DE8A5F8 /* Framework2_macOS */, @@ -2634,15 +2579,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 22086680A1CD5B6F9120DD31 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 90335B78D7681DFED096EC6D /* EntryPoint.swift in Sources */, - 7A5E898E776D00935CBA2F1A /* Intent.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; 2235AD7DEFC8FE534AB91B38 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -2973,11 +2909,6 @@ target = 428715FBC1D86458DA70CBDE /* DriverKitDriver */; targetProxy = 6ED42BD51E8832232E58D9C1 /* PBXContainerItemProxy */; }; - 728B714A29ADC8279A0F5225 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = F44ADF447ED210C91B29879E /* ExtensionKitExtension */; - targetProxy = 637435E7B5453059F8DBAC36 /* PBXContainerItemProxy */; - }; 7EFC0278E67CD35F8981993C /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = 578C80E461E675508CED5DC3 /* StaticLibrary_ObjC_macOS */; @@ -4081,20 +4012,6 @@ }; name = "Staging Debug"; }; - 36AE3E6FE1D5370BC2BDBFA0 /* Test Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - INFOPLIST_FILE = "ExtensionKit Extension/Info.plist"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.project.ExtensionKitExtension; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = "Test Release"; - }; 36C4B3A6EACCB88098CE13D7 /* Test Release */ = { isa = XCBuildConfiguration; buildSettings = { @@ -5202,20 +5119,6 @@ }; name = "Staging Release"; }; - 78C70580A5A5DC35167DEF84 /* Production Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - INFOPLIST_FILE = "ExtensionKit Extension/Info.plist"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.project.ExtensionKitExtension; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = "Production Debug"; - }; 7931F229200F89B8CDC8A5E3 /* Test Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -5257,20 +5160,6 @@ }; name = "Production Release"; }; - 7A2BB9872B1489E2595FA31B /* Production Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - INFOPLIST_FILE = "ExtensionKit Extension/Info.plist"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.project.ExtensionKitExtension; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = "Production Release"; - }; 7B2A1BE6CA654E9903A4C680 /* Staging Release */ = { isa = XCBuildConfiguration; buildSettings = { @@ -5982,20 +5871,6 @@ }; name = "Production Debug"; }; - A536BC5E74350FE26AE93196 /* Staging Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - INFOPLIST_FILE = "ExtensionKit Extension/Info.plist"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.project.ExtensionKitExtension; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = "Staging Debug"; - }; A59DDFBFCF18C44A993CFB00 /* Test Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -6576,20 +6451,6 @@ }; name = "Production Debug"; }; - BF9706E8855063B196C87707 /* Staging Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - INFOPLIST_FILE = "ExtensionKit Extension/Info.plist"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.project.ExtensionKitExtension; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = "Staging Release"; - }; C00DBF60DC8C1A570738241F /* Test Release */ = { isa = XCBuildConfiguration; buildSettings = { @@ -7855,20 +7716,6 @@ }; name = "Test Debug"; }; - FCDAC56AAE539E041C4667EE /* Test Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - INFOPLIST_FILE = "ExtensionKit Extension/Info.plist"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.project.ExtensionKitExtension; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = "Test Debug"; - }; FE029D76C57D0661E4B8F13B /* Staging Release */ = { isa = XCBuildConfiguration; buildSettings = { @@ -8157,19 +8004,6 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = "Production Debug"; }; - 746C5EC57766652AAFCB0D89 /* Build configuration list for PBXNativeTarget "ExtensionKitExtension" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 78C70580A5A5DC35167DEF84 /* Production Debug */, - 7A2BB9872B1489E2595FA31B /* Production Release */, - A536BC5E74350FE26AE93196 /* Staging Debug */, - BF9706E8855063B196C87707 /* Staging Release */, - FCDAC56AAE539E041C4667EE /* Test Debug */, - 36AE3E6FE1D5370BC2BDBFA0 /* Test Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = "Production Debug"; - }; 752BB3C1A601770BDD9AC01E /* Build configuration list for PBXNativeTarget "StaticLibrary_ObjC_macOS" */ = { isa = XCConfigurationList; buildConfigurations = (