diff --git a/Sources/ProjectSpec/SwiftPackage.swift b/Sources/ProjectSpec/SwiftPackage.swift index 6f9dfdd9..4d79ebf3 100644 --- a/Sources/ProjectSpec/SwiftPackage.swift +++ b/Sources/ProjectSpec/SwiftPackage.swift @@ -10,6 +10,13 @@ public struct SwiftPackage: Equatable { public enum Kind: Equatable { case remote(url: String, versionRequirement: VersionRequirement) case local(path: String) + + public var isLocal: Bool { + if case .local = self { + return true + } + return false + } } public let kind: SwiftPackage.Kind diff --git a/Sources/XcodeGenKit/PBXProjGenerator.swift b/Sources/XcodeGenKit/PBXProjGenerator.swift index 12d768ba..d46566be 100644 --- a/Sources/XcodeGenKit/PBXProjGenerator.swift +++ b/Sources/XcodeGenKit/PBXProjGenerator.swift @@ -602,6 +602,7 @@ public class PBXProjGenerator { var packageDependencies: [XCSwiftPackageProductDependency] = [] var extensions: [PBXBuildFile] = [] var carthageFrameworksToEmbed: [String] = [] + var localPackageReferences: [String] = project.localPackages.keys + project.packages.compactMap { $0.value.kind.isLocal ? $0.key : nil } let targetDependencies = (target.transitivelyLinkDependencies ?? project.options.transitivelyLinkDependencies) ? getAllDependenciesPlusTransitiveNeedingEmbedding(target: target) : target.dependencies @@ -807,7 +808,7 @@ public class PBXProjGenerator { // If package's reference is none and there is no specified package in localPackages, // then ignore the package specified as dependency. - if packageReference == nil, !project.localPackages.keys.contains(dependency.reference) { + if packageReference == nil, !localPackageReferences.contains(dependency.reference) { continue }