diff --git a/CHANGELOG.md b/CHANGELOG.md index 1aada208..42a4c8b7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ #### Fixed - Fixed default settings for macOS unit-tests [387](https://github.com/yonaskolb/XcodeGen/pull/387) @frankdilo +- Fixed Copy Headers phase ordering for Xcode 10 [401](https://github.com/yonaskolb/XcodeGen/pull/401) @brentleyjones #### Changed - Added default value for knownRegions property [390](https://github.com/yonaskolb/XcodeGen/pull/390) @Saik0s diff --git a/Sources/XcodeGenKit/PBXProjGenerator.swift b/Sources/XcodeGenKit/PBXProjGenerator.swift index a2dbce9a..6dcf387d 100644 --- a/Sources/XcodeGenKit/PBXProjGenerator.swift +++ b/Sources/XcodeGenKit/PBXProjGenerator.swift @@ -636,6 +636,12 @@ public class PBXProjGenerator { } buildPhases += try target.prebuildScripts.map { try generateBuildScript(targetName: target.name, buildScript: $0) } + + let headersBuildPhaseFiles = getBuildFilesForPhase(.headers) + if !headersBuildPhaseFiles.isEmpty && (target.type == .framework || target.type == .dynamicLibrary) { + let headersBuildPhase = createObject(id: target.name, PBXHeadersBuildPhase(files: headersBuildPhaseFiles)) + buildPhases.append(headersBuildPhase.reference) + } let sourcesBuildPhaseFiles = getBuildFilesForPhase(.sources) let sourcesBuildPhase = createObject(id: target.name, PBXSourcesBuildPhase(files: sourcesBuildPhaseFiles)) @@ -686,12 +692,6 @@ public class PBXProjGenerator { } } - let headersBuildPhaseFiles = getBuildFilesForPhase(.headers) - if !headersBuildPhaseFiles.isEmpty && (target.type == .framework || target.type == .dynamicLibrary) { - let headersBuildPhase = createObject(id: target.name, PBXHeadersBuildPhase(files: headersBuildPhaseFiles)) - buildPhases.append(headersBuildPhase.reference) - } - if !targetFrameworkBuildFiles.isEmpty { let frameworkBuildPhase = createObject( diff --git a/Tests/Fixtures/TestProject/Project.xcodeproj/project.pbxproj b/Tests/Fixtures/TestProject/Project.xcodeproj/project.pbxproj index d3968a93..badfd0f1 100644 --- a/Tests/Fixtures/TestProject/Project.xcodeproj/project.pbxproj +++ b/Tests/Fixtures/TestProject/Project.xcodeproj/project.pbxproj @@ -945,8 +945,8 @@ isa = PBXNativeTarget; buildConfigurationList = CL_438704538506 /* Build configuration list for PBXNativeTarget "Framework_watchOS" */; buildPhases = ( - SBP_43870453850 /* Sources */, HBP_43870453850 /* Headers */, + SBP_43870453850 /* Sources */, FBP_43870453850 /* Frameworks */, SSBP_2467869845 /* MyScript */, ); @@ -964,8 +964,8 @@ isa = PBXNativeTarget; buildConfigurationList = CL_472296042419 /* Build configuration list for PBXNativeTarget "Framework_iOS" */; buildPhases = ( - SBP_47229604241 /* Sources */, HBP_47229604241 /* Headers */, + SBP_47229604241 /* Sources */, FBP_47229604241 /* Frameworks */, SSBP_3886691194 /* MyScript */, ); @@ -1021,8 +1021,8 @@ isa = PBXNativeTarget; buildConfigurationList = CL_525119120469 /* Build configuration list for PBXNativeTarget "Framework_macOS" */; buildPhases = ( - SBP_52511912046 /* Sources */, HBP_52511912046 /* Headers */, + SBP_52511912046 /* Sources */, FBP_52511912046 /* Frameworks */, SSBP_8255377629 /* MyScript */, ); @@ -1056,8 +1056,8 @@ isa = PBXNativeTarget; buildConfigurationList = CL_662315837182 /* Build configuration list for PBXNativeTarget "Framework_tvOS" */; buildPhases = ( - SBP_66231583718 /* Sources */, HBP_66231583718 /* Headers */, + SBP_66231583718 /* Sources */, FBP_66231583718 /* Frameworks */, SSBP_6331376344 /* MyScript */, );