@@ -22,6 +22,7 @@ public class PBXProjGenerator {
2222 var targetFileReferences : [ String : PBXFileReference ] = [ : ]
2323 var sdkFileReferences : [ String : PBXFileReference ] = [ : ]
2424 var packageReferences : [ String : XCRemoteSwiftPackageReference ] = [ : ]
25+ var localPackageReferences : [ String : XCLocalSwiftPackageReference ] = [ : ]
2526
2627 var carthageFrameworksByPlatform : [ String : Set < PBXFileElement > ] = [ : ]
2728 var frameworkFiles : [ PBXFileElement ] = [ ]
@@ -30,7 +31,6 @@ public class PBXProjGenerator {
3031 var generated = false
3132
3233 private var projects : [ ProjectReference : PBXProj ] = [ : ]
33- lazy private var localPackageReferences : [ String ] = project. packages. compactMap { $0. value. isLocal ? $0. key : nil }
3434
3535 public init ( project: Project , projectDirectory: Path ? = nil ) {
3636 self . project = project
@@ -170,6 +170,10 @@ public class PBXProjGenerator {
170170 packageReferences [ name] = packageReference
171171 addObject ( packageReference)
172172 case let . local( path, group) :
173+ let packageReference = XCLocalSwiftPackageReference ( relativePath: path)
174+ localPackageReferences [ name] = packageReference
175+ addObject ( packageReference)
176+
173177 try sourceGenerator. createLocalPackage ( path: Path ( path) , group: group. map { Path ( $0) } )
174178 }
175179 }
@@ -310,7 +314,8 @@ public class PBXProjGenerator {
310314 }
311315 pbxProject. knownRegions = knownRegions. sorted ( )
312316
313- pbxProject. packages = packageReferences. sorted { $0. key < $1. key } . map { $1 }
317+ pbxProject. remotePackages = packageReferences. sorted { $0. key < $1. key } . map { $1 }
318+ pbxProject. localPackages = localPackageReferences. sorted { $0. key < $1. key } . map { $1 }
314319
315320 let allTargets : [ PBXTarget ] = targetObjects. valueArray + targetAggregateObjects. valueArray
316321 pbxProject. targets = allTargets
@@ -945,7 +950,7 @@ public class PBXProjGenerator {
945950
946951 // If package's reference is none and there is no specified package in localPackages,
947952 // then ignore the package specified as dependency.
948- if packageReference == nil , ! localPackageReferences. contains ( dependency. reference) {
953+ if packageReference == nil , localPackageReferences [ dependency. reference] == nil {
949954 continue
950955 }
951956
@@ -1469,7 +1474,7 @@ public class PBXProjGenerator {
14691474 func makePackagePluginDependency( for target: ProjectTarget ) -> [ PBXTargetDependency ] {
14701475 target. buildToolPlugins. compactMap { buildToolPlugin in
14711476 let packageReference = packageReferences [ buildToolPlugin. package ]
1472- if packageReference == nil , ! localPackageReferences. contains ( buildToolPlugin. package ) {
1477+ if packageReference == nil , localPackageReferences [ buildToolPlugin. package ] == nil {
14731478 return nil
14741479 }
14751480
0 commit comments