diff --git a/Sources/XcodeGenKit/PBXProjGenerator.swift b/Sources/XcodeGenKit/PBXProjGenerator.swift index 5561483e..85aed526 100644 --- a/Sources/XcodeGenKit/PBXProjGenerator.swift +++ b/Sources/XcodeGenKit/PBXProjGenerator.swift @@ -357,16 +357,23 @@ public class PBXProjGenerator { _ = try target.prebuildScripts.map(getBuildScript) - let sourcesBuildPhase = PBXSourcesBuildPhase(reference: referenceGenerator.generate(PBXSourcesBuildPhase.self, target.name), files: getBuildFilesForPhase(.sources)) - addObject(sourcesBuildPhase) - buildPhases.append(sourcesBuildPhase.reference) + let sourcesBuildPhaseFiles = getBuildFilesForPhase(.sources) + if !sourcesBuildPhaseFiles.isEmpty { + let sourcesBuildPhase = PBXSourcesBuildPhase(reference: referenceGenerator.generate(PBXSourcesBuildPhase.self, target.name), files: sourcesBuildPhaseFiles) + addObject(sourcesBuildPhase) + buildPhases.append(sourcesBuildPhase.reference) + } - let resourcesBuildPhase = PBXResourcesBuildPhase(reference: referenceGenerator.generate(PBXResourcesBuildPhase.self, target.name), files: getBuildFilesForPhase(.resources) + copyResourcesReferences) - addObject(resourcesBuildPhase) - buildPhases.append(resourcesBuildPhase.reference) + let resourcesBuildPhaseFiles = getBuildFilesForPhase(.resources) + copyResourcesReferences + if !resourcesBuildPhaseFiles.isEmpty { + let resourcesBuildPhase = PBXResourcesBuildPhase(reference: referenceGenerator.generate(PBXResourcesBuildPhase.self, target.name), files: resourcesBuildPhaseFiles) + addObject(resourcesBuildPhase) + buildPhases.append(resourcesBuildPhase.reference) + } - if target.type == .framework || target.type == .dynamicLibrary { - let headersBuildPhase = PBXHeadersBuildPhase(reference: referenceGenerator.generate(PBXHeadersBuildPhase.self, target.name), files: getBuildFilesForPhase(.headers)) + let headersBuildPhaseFiles = getBuildFilesForPhase(.headers) + if !headersBuildPhaseFiles.isEmpty && (target.type == .framework || target.type == .dynamicLibrary) { + let headersBuildPhase = PBXHeadersBuildPhase(reference: referenceGenerator.generate(PBXHeadersBuildPhase.self, target.name), files: headersBuildPhaseFiles) addObject(headersBuildPhase) buildPhases.append(headersBuildPhase.reference) } diff --git a/Tests/Fixtures/TestProject/Project.xcodeproj/project.pbxproj b/Tests/Fixtures/TestProject/Project.xcodeproj/project.pbxproj index 63f3b3ef..e4765bc0 100644 --- a/Tests/Fixtures/TestProject/Project.xcodeproj/project.pbxproj +++ b/Tests/Fixtures/TestProject/Project.xcodeproj/project.pbxproj @@ -359,7 +359,6 @@ buildConfigurationList = CL4387045301 /* Build configuration list for PBXNativeTarget "Framework_watchOS" */; buildPhases = ( SBP438704501 /* Sources */, - RBP438704501 /* Resources */, HBP438704501 /* Headers */, FBP438704501 /* Frameworks */, SSBP87697701 /* MyScript */, @@ -377,7 +376,6 @@ buildConfigurationList = CL4722960401 /* Build configuration list for PBXNativeTarget "Framework_iOS" */; buildPhases = ( SBP472296001 /* Sources */, - RBP472296001 /* Resources */, HBP472296001 /* Headers */, FBP472296001 /* Frameworks */, SSBP79093501 /* MyScript */, @@ -395,7 +393,6 @@ buildConfigurationList = CL5251191201 /* Build configuration list for PBXNativeTarget "Framework_macOS" */; buildPhases = ( SBP525119101 /* Sources */, - RBP525119101 /* Resources */, HBP525119101 /* Headers */, FBP525119101 /* Frameworks */, SSBP36421701 /* MyScript */, @@ -413,7 +410,6 @@ buildConfigurationList = CL6623158301 /* Build configuration list for PBXNativeTarget "Framework_tvOS" */; buildPhases = ( SBP662315801 /* Sources */, - RBP662315801 /* Resources */, HBP662315801 /* Headers */, FBP662315801 /* Frameworks */, SSBP77937501 /* MyScript */, @@ -431,7 +427,6 @@ buildConfigurationList = CL7831228901 /* Build configuration list for PBXNativeTarget "App_iOS_Tests" */; buildPhases = ( SBP783122801 /* Sources */, - RBP783122801 /* Resources */, ); buildRules = ( ); @@ -491,36 +486,6 @@ /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ - RBP438704501 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - }; - RBP472296001 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - }; - RBP525119101 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - }; - RBP662315801 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - }; - RBP783122801 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - }; RBP825232101 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647;