From 0eeb6369ecb407e5bc5940fb563e486fbf225883 Mon Sep 17 00:00:00 2001 From: Joseph Colicchio Date: Wed, 13 Jan 2021 21:59:59 -0800 Subject: [PATCH] Legacy / Settings Relative Paths (#981) * Adjust header search paths and legacy working directory for relative included projects * Undo change to HEADER_SEARCH_PATHS * Add test * Update changelog * Fix test * Undo test changes * Fix tests --- CHANGELOG.md | 1 + Sources/ProjectSpec/Target.swift | 10 + .../AnotherProject.xcodeproj/project.pbxproj | 110 +++++ .../TestProject/AnotherProject/project.yml | 7 + .../Project.xcodeproj/project.pbxproj | 391 ++++++++++++++++++ Tests/Fixtures/TestProject/project.yml | 2 +- 6 files changed, 520 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2de0668e..c5c97512 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ #### Changed - **Breaking**: Info.plists with custom prefixes are no longer added to the Copy Bundle Resources build phase [#945](https://github.com/yonaskolb/XcodeGen/pull/945) @anivaros +- **Breaking**: `workingDirectory` of included legacy targets is now made relative to including project [#981](https://github.com/yonaskolb/XcodeGen/pull/981) @jcolicchio #### Fixed - Fixed error message output for `minimumXcodeGenVersion`. [#967](https://github.com/yonaskolb/XcodeGen/pull/967) @joshwalker diff --git a/Sources/ProjectSpec/Target.swift b/Sources/ProjectSpec/Target.swift index c746129b..851aa4ef 100644 --- a/Sources/ProjectSpec/Target.swift +++ b/Sources/ProjectSpec/Target.swift @@ -24,6 +24,15 @@ public struct LegacyTarget: Equatable { } } +extension LegacyTarget: PathContainer { + + static var pathProperties: [PathProperty] { + [ + .string("workingDirectory"), + ] + } +} + public struct Target: ProjectTarget { public var name: String public var type: PBXProductType @@ -134,6 +143,7 @@ extension Target: PathContainer { .object("prebuildScripts", BuildScript.pathProperties), .object("postCompileScripts", BuildScript.pathProperties), .object("postBuildScripts", BuildScript.pathProperties), + .object("legacy", LegacyTarget.pathProperties), ]), ] } diff --git a/Tests/Fixtures/TestProject/AnotherProject/AnotherProject.xcodeproj/project.pbxproj b/Tests/Fixtures/TestProject/AnotherProject/AnotherProject.xcodeproj/project.pbxproj index 9ca47777..c0b56102 100644 --- a/Tests/Fixtures/TestProject/AnotherProject/AnotherProject.xcodeproj/project.pbxproj +++ b/Tests/Fixtures/TestProject/AnotherProject/AnotherProject.xcodeproj/project.pbxproj @@ -41,6 +41,23 @@ }; /* End PBXGroup section */ +/* Begin PBXLegacyTarget section */ + A6D9FB94860C005F0B723B5F /* IncludedLegacy */ = { + isa = PBXLegacyTarget; + buildConfigurationList = AC68886F4CEE08D3593D0877 /* Build configuration list for PBXLegacyTarget "IncludedLegacy" */; + buildPhases = ( + 69078D1DA3F942D5BC752081 /* Sources */, + ); + buildToolPath = /usr/bin/true; + buildWorkingDirectory = .; + dependencies = ( + ); + name = IncludedLegacy; + passBuildSettingsInEnvironment = 0; + productName = IncludedLegacy; + }; +/* End PBXLegacyTarget section */ + /* Begin PBXNativeTarget section */ 63A2D4898D974A06E85B07F8 /* BundleX */ = { isa = PBXNativeTarget; @@ -94,11 +111,19 @@ targets = ( 63A2D4898D974A06E85B07F8 /* BundleX */, E76A5F5E363E470416D3B487 /* ExternalTarget */, + A6D9FB94860C005F0B723B5F /* IncludedLegacy */, ); }; /* End PBXProject section */ /* Begin PBXSourcesBuildPhase section */ + 69078D1DA3F942D5BC752081 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; F08051CAC5E72EEEB8FB447B /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -360,6 +385,18 @@ }; name = "Staging Debug"; }; + 2D7C07F1D50007A04EF6C0EE /* Staging Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Staging Debug"; + }; 30E2E954A636A240B1CE5C15 /* Staging Release */ = { isa = XCBuildConfiguration; buildSettings = { @@ -447,6 +484,18 @@ }; name = "Production Debug"; }; + 5280A75613CFD83BA7EE6AD4 /* Test Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Test Release"; + }; 56ADF89C9058B2C25F6C80CE /* Staging Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -554,6 +603,30 @@ }; name = "Production Release"; }; + 683A510C4120CF5D216E1667 /* Test Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Test Debug"; + }; + 6C48009F842BEC2467546ADF /* Production Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Production Debug"; + }; 7919FDD28F9A535EA26FB151 /* Test Release */ = { isa = XCBuildConfiguration; buildSettings = { @@ -663,6 +736,30 @@ }; name = "Test Release"; }; + CB49A0C6C6CF7FC894E453BE /* Staging Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Staging Release"; + }; + E1A76975608AFAA966038B93 /* Production Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Production Release"; + }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ @@ -692,6 +789,19 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = "Production Debug"; }; + AC68886F4CEE08D3593D0877 /* Build configuration list for PBXLegacyTarget "IncludedLegacy" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 6C48009F842BEC2467546ADF /* Production Debug */, + E1A76975608AFAA966038B93 /* Production Release */, + 2D7C07F1D50007A04EF6C0EE /* Staging Debug */, + CB49A0C6C6CF7FC894E453BE /* Staging Release */, + 683A510C4120CF5D216E1667 /* Test Debug */, + 5280A75613CFD83BA7EE6AD4 /* Test Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Production Debug"; + }; B5049D72EC10A5C87F29B6B1 /* Build configuration list for PBXNativeTarget "ExternalTarget" */ = { isa = XCConfigurationList; buildConfigurations = ( diff --git a/Tests/Fixtures/TestProject/AnotherProject/project.yml b/Tests/Fixtures/TestProject/AnotherProject/project.yml index 012d6062..65e729ed 100644 --- a/Tests/Fixtures/TestProject/AnotherProject/project.yml +++ b/Tests/Fixtures/TestProject/AnotherProject/project.yml @@ -11,3 +11,10 @@ targets: ExternalTarget: type: framework platform: iOS + IncludedLegacy: + type: "" + platform: iOS + legacy: + toolPath: /usr/bin/true + workingDirectory: . + diff --git a/Tests/Fixtures/TestProject/Project.xcodeproj/project.pbxproj b/Tests/Fixtures/TestProject/Project.xcodeproj/project.pbxproj index 6d4ccc57..8ba9c060 100644 --- a/Tests/Fixtures/TestProject/Project.xcodeproj/project.pbxproj +++ b/Tests/Fixtures/TestProject/Project.xcodeproj/project.pbxproj @@ -597,6 +597,7 @@ 1FA5E208EC184E3030D2A21D /* Clip.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Clip.entitlements; sourceTree = ""; }; 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; }; + 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 = ""; }; 2A5F527F2590C14956518174 /* FrameworkFile.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FrameworkFile.swift; sourceTree = ""; }; @@ -645,6 +646,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 = ""; }; + 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; }; 87DF9DCA8399E3214A7E27CF /* TestProjectTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TestProjectTests.swift; sourceTree = ""; }; 8A9274BE42A03DC5DA1FAD04 /* Framework.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Framework.framework; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -1095,7 +1097,9 @@ 33F6DCDC37D2E66543D4965D /* App_macOS.app */, 0D09D243DBCF9D32E239F1E8 /* App_watchOS Extension.appex */, A680BE9F68A255B0FB291AE6 /* App_watchOS.app */, + 84317819C92F78425870E483 /* BundleX.bundle */, 7D700FA699849D2F95216883 /* EntitledApp.app */, + 2385A62F6C6EE8D461EE19F2 /* ExternalTarget.framework */, 8A9274BE42A03DC5DA1FAD04 /* Framework.framework */, 41FC82ED1C4C3B7B3D7B2FB7 /* Framework.framework */, 7D67F1C1BFBACE101DE7DB51 /* Framework.framework */, @@ -1323,6 +1327,20 @@ /* End PBXHeadersBuildPhase section */ /* Begin PBXLegacyTarget section */ + 700328EE1570207608D6ADB3 /* IncludedLegacy */ = { + isa = PBXLegacyTarget; + buildConfigurationList = 02B721AF7361EBCFA91410BF /* Build configuration list for PBXLegacyTarget "IncludedLegacy" */; + buildPhases = ( + 82E24A8257F299AC04F44A8F /* Sources */, + ); + buildToolPath = /usr/bin/true; + buildWorkingDirectory = AnotherProject; + dependencies = ( + ); + name = IncludedLegacy; + passBuildSettingsInEnvironment = 0; + productName = IncludedLegacy; + }; 72C923899DE05F1281872160 /* Legacy */ = { isa = PBXLegacyTarget; buildConfigurationList = BE0FF81B67730F081F45BC78 /* Build configuration list for PBXLegacyTarget "Legacy" */; @@ -1800,6 +1818,20 @@ productReference = 38DB679FF1CF4E379D1AB103 /* App_Clip.app */; productType = "com.apple.product-type.application.on-demand-install-capable"; }; + DA40AB367B606CCE2FDD398D /* BundleX */ = { + isa = PBXNativeTarget; + buildConfigurationList = 2C39D94CF9C8B1CB79F04AC8 /* Build configuration list for PBXNativeTarget "BundleX" */; + buildPhases = ( + ); + buildRules = ( + ); + dependencies = ( + ); + name = BundleX; + productName = BundleX; + productReference = 84317819C92F78425870E483 /* BundleX.bundle */; + productType = "com.apple.product-type.bundle"; + }; DC2F16BAA6E13B44AB62F888 /* App_iOS_Tests */ = { isa = PBXNativeTarget; buildConfigurationList = F888428CB91ACDDAAE8C8F21 /* Build configuration list for PBXNativeTarget "App_iOS_Tests" */; @@ -1819,6 +1851,21 @@ productReference = CB77A637470A3CDA2BDDBE99 /* App_iOS_Tests.xctest */; productType = "com.apple.product-type.bundle.unit-test"; }; + E7454C10EA126A93537DD57E /* ExternalTarget */ = { + isa = PBXNativeTarget; + buildConfigurationList = D9EF39CA9A17477264F02057 /* Build configuration list for PBXNativeTarget "ExternalTarget" */; + buildPhases = ( + E3C67D44BD5D2820592267FD /* Sources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = ExternalTarget; + productName = ExternalTarget; + productReference = 2385A62F6C6EE8D461EE19F2 /* ExternalTarget.framework */; + productType = "com.apple.product-type.framework"; + }; E7815F2F0D9CDECF9185AAF3 /* XPC Service */ = { isa = PBXNativeTarget; buildConfigurationList = D379D1BBEF24ED05EB6ADEB3 /* Build configuration list for PBXNativeTarget "XPC Service" */; @@ -1924,7 +1971,9 @@ 71E2BDAC4B8E8FC2BBF75C55 /* App_macOS_Tests */, 208179651927D1138D19B5AD /* App_watchOS */, 307AE3FA155FFD09B74AE351 /* App_watchOS Extension */, + DA40AB367B606CCE2FDD398D /* BundleX */, B61ED4688789B071275E2B7A /* EntitledApp */, + E7454C10EA126A93537DD57E /* ExternalTarget */, CE7D183D3752B5B35D2D8E6D /* Framework2_iOS */, FC26AF2506D3B2B40DE8A5F8 /* Framework2_macOS */, 8B9A14DC280CCE013CC86440 /* Framework2_tvOS */, @@ -1933,6 +1982,7 @@ 53A3B531E3947D8A8722745E /* Framework_macOS */, 536ACF18E4603B59207D43CE /* Framework_tvOS */, 71B5187E710718C1A205D4DC /* Framework_watchOS */, + 700328EE1570207608D6ADB3 /* IncludedLegacy */, 72C923899DE05F1281872160 /* Legacy */, 13E8C5AB873CEE21E18E552F /* StaticLibrary_ObjC_iOS */, 578C80E461E675508CED5DC3 /* StaticLibrary_ObjC_macOS */, @@ -2355,6 +2405,13 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 82E24A8257F299AC04F44A8F /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; 8A616537E6E1BEAB59E069C7 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -2468,6 +2525,13 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + E3C67D44BD5D2820592267FD /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; EA88FE285DA490166635BE98 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -2827,6 +2891,28 @@ }; name = "Staging Release"; }; + 045CB2D74D9A3532E128BDD2 /* Production Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.project.ExternalTarget; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Production Release"; + }; 0579BA94EA238151DAFC2FFC /* Test Release */ = { isa = XCBuildConfiguration; buildSettings = { @@ -3253,6 +3339,19 @@ }; name = "Production Debug"; }; + 221A50372FFB2F1202940FDC /* Production Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.project.IncludedLegacy; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Production Debug"; + }; 234640A811EF6EB9CC9081CA /* Staging Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -3381,6 +3480,28 @@ }; name = "Production Release"; }; + 2C6AB16720ADFB2436337A8F /* Test Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.project.ExternalTarget; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Test Debug"; + }; 2E5159957368A9CF77A3C9FC /* Test Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -3447,6 +3568,19 @@ }; name = "Test Debug"; }; + 31931061043C66589547105C /* Staging Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.project.BundleX; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Staging Debug"; + }; 3236B7B20520584116A96C0D /* Production Release */ = { isa = XCBuildConfiguration; buildSettings = { @@ -4122,6 +4256,19 @@ }; name = "Test Release"; }; + 57CEA8537C6F3E5B425C5A8E /* Test Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.project.IncludedLegacy; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Test Debug"; + }; 580039D71F71A98572051157 /* Production Release */ = { isa = XCBuildConfiguration; buildSettings = { @@ -4344,6 +4491,19 @@ }; name = "Production Release"; }; + 64EC1B53D612851D51D18FD2 /* Production Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.project.BundleX; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Production Debug"; + }; 65A21512F2B980615DF51D77 /* Staging Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -4745,6 +4905,19 @@ }; name = "Staging Debug"; }; + 85E6B40848AC2A0B1F921553 /* Test Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.project.BundleX; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Test Debug"; + }; 862658ACA3BF7AE7FA22870C /* Production Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -4761,6 +4934,19 @@ }; name = "Production Debug"; }; + 8A380D322263800338FA5139 /* Test Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.project.IncludedLegacy; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Test Release"; + }; 8C9F67C7AA56DBE79F0F2640 /* Test Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -4789,6 +4975,19 @@ }; name = "Test Debug"; }; + 917341F64B3A9B883FE942AD /* Production Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.project.BundleX; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Production Release"; + }; 921EC740167F616C38809275 /* Production Release */ = { isa = XCBuildConfiguration; buildSettings = { @@ -4856,6 +5055,28 @@ }; name = "Production Debug"; }; + 94ECCEFE29DB30C48B227A16 /* Staging Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.project.ExternalTarget; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Staging Release"; + }; 9666BFAAA42CE2DC7E368E7D /* Production Release */ = { isa = XCBuildConfiguration; buildSettings = { @@ -5321,6 +5542,41 @@ }; name = "Staging Release"; }; + AF3DD6DCF141F35D4129FFF5 /* Test Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.project.ExternalTarget; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Test Release"; + }; + AF4B5E2FF8B6C883C40737C6 /* Production Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.project.IncludedLegacy; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Production Release"; + }; B008685BA25BB8FD771F0AE3 /* Staging Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -5453,6 +5709,41 @@ }; name = "Staging Release"; }; + B5E1584A197C52FC47245FC8 /* Staging Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.project.ExternalTarget; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Staging Debug"; + }; + B7EBD1A3A3A7E66100F5C845 /* Test Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.project.BundleX; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Test Release"; + }; B928E061A126AC8D17D81D1E /* Staging Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -5782,6 +6073,28 @@ }; name = "Production Debug"; }; + C745E36B41A4ABD1E24A69AF /* Production Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.project.ExternalTarget; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = "Production Debug"; + }; C7EF8D96FA7893ADD61CF4C0 /* Production Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -5917,6 +6230,19 @@ }; name = "Test Release"; }; + D4A6D5FE11C6652E092629BF /* Staging Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.project.IncludedLegacy; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Staging Debug"; + }; D70B7AB6D219453ABF475EED /* Production Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -6432,6 +6758,19 @@ }; name = "Production Release"; }; + EBA3332D0144AAAA57630865 /* Staging Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.project.BundleX; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Staging Release"; + }; EBD2F70285E21FFAB1C23D01 /* Staging Release */ = { isa = XCBuildConfiguration; buildSettings = { @@ -6507,6 +6846,19 @@ }; name = "Production Release"; }; + EF6AB18F2D803CB530422BAE /* Staging Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.project.IncludedLegacy; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = "Staging Release"; + }; F3AC6A112F81D0958A316D82 /* Test Release */ = { isa = XCBuildConfiguration; buildSettings = { @@ -6779,6 +7131,19 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = "Production Debug"; }; + 02B721AF7361EBCFA91410BF /* Build configuration list for PBXLegacyTarget "IncludedLegacy" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 221A50372FFB2F1202940FDC /* Production Debug */, + AF4B5E2FF8B6C883C40737C6 /* Production Release */, + D4A6D5FE11C6652E092629BF /* Staging Debug */, + EF6AB18F2D803CB530422BAE /* Staging Release */, + 57CEA8537C6F3E5B425C5A8E /* Test Debug */, + 8A380D322263800338FA5139 /* Test Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Production Debug"; + }; 02E5A42C8065AF7CCB48FACE /* Build configuration list for PBXNativeTarget "Framework2_macOS" */ = { isa = XCConfigurationList; buildConfigurations = ( @@ -6831,6 +7196,19 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = "Production Debug"; }; + 2C39D94CF9C8B1CB79F04AC8 /* Build configuration list for PBXNativeTarget "BundleX" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 64EC1B53D612851D51D18FD2 /* Production Debug */, + 917341F64B3A9B883FE942AD /* Production Release */, + 31931061043C66589547105C /* Staging Debug */, + EBA3332D0144AAAA57630865 /* Staging Release */, + 85E6B40848AC2A0B1F921553 /* Test Debug */, + B7EBD1A3A3A7E66100F5C845 /* Test Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Production Debug"; + }; 3F3C272D2EA61F6B88B80D44 /* Build configuration list for PBXNativeTarget "App_watchOS Extension" */ = { isa = XCConfigurationList; buildConfigurations = ( @@ -7156,6 +7534,19 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = "Production Debug"; }; + D9EF39CA9A17477264F02057 /* Build configuration list for PBXNativeTarget "ExternalTarget" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + C745E36B41A4ABD1E24A69AF /* Production Debug */, + 045CB2D74D9A3532E128BDD2 /* Production Release */, + B5E1584A197C52FC47245FC8 /* Staging Debug */, + 94ECCEFE29DB30C48B227A16 /* Staging Release */, + 2C6AB16720ADFB2436337A8F /* Test Debug */, + AF3DD6DCF141F35D4129FFF5 /* Test Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = "Production Debug"; + }; ED1A174BA92C6E5172B519B7 /* Build configuration list for PBXNativeTarget "iMessageExtension" */ = { isa = XCConfigurationList; buildConfigurations = ( diff --git a/Tests/Fixtures/TestProject/project.yml b/Tests/Fixtures/TestProject/project.yml index a1008ffa..9ab40ade 100644 --- a/Tests/Fixtures/TestProject/project.yml +++ b/Tests/Fixtures/TestProject/project.yml @@ -1,5 +1,5 @@ name: Project -include: [environments.yml] +include: [environments.yml, AnotherProject/project.yml] options: bundleIdPrefix: com.project usesTabs: false