Skip to content

Commit 61391f4

Browse files
committed
Make the sorting stricter
1 parent 43f5fc4 commit 61391f4

File tree

2 files changed

+12
-33
lines changed

2 files changed

+12
-33
lines changed

Sources/XcodeProj/Objects/Project/PBXProjEncoder.swift

Lines changed: 10 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -476,39 +476,16 @@ final class PBXProjEncoder {
476476
}
477477

478478
for project in projects {
479-
do {
480-
project.projectReferences = try project.projectReferences.sorted(by: { lhs, rhs in
481-
guard let lProjectRef = lhs["ProjectRef"] else {
482-
throw Errors.unexpectedPbxProj()
483-
}
484-
guard let lFile: PBXFileElement = lProjectRef.getObject() else {
485-
throw Errors.unexpectedPbxProj()
486-
}
487-
guard let rProjectRef = rhs["ProjectRef"] else {
488-
throw Errors.unexpectedPbxProj()
489-
}
490-
guard let rFile: PBXFileElement = rProjectRef.getObject() else {
491-
throw Errors.unexpectedPbxProj()
492-
}
493-
guard let lName = lFile.name else {
494-
throw Errors.unexpectedPbxProj()
495-
}
496-
guard let rName = rFile.name else {
497-
throw Errors.unexpectedPbxProj()
498-
}
499-
500-
return lName.compare(rName, options: .caseInsensitive) == .orderedAscending
501-
})
502-
} catch {
503-
print("Unable to sort as Xcode 16 do: \(error)")
504-
// actually we could do even fatalError here
505-
// but it could be too brave for common repository
506-
// fatalError("\(error)")
507-
}
479+
/// The project references are sorted alphabetically based on the name of the project it's being referenced.
480+
project.projectReferences = project.projectReferences.sorted(by: { lhs, rhs in
481+
let lProjectRef = lhs["ProjectRef"]!
482+
let lFile: PBXFileElement = lProjectRef.getObject()!
483+
let rProjectRef = rhs["ProjectRef"]!
484+
let rFile: PBXFileElement = rProjectRef.getObject()!
485+
let lName = lFile.name!
486+
let rName = rFile.name!
487+
return lName.compare(rName, options: .caseInsensitive) == .orderedAscending
488+
})
508489
}
509490
}
510491
}
511-
512-
private enum Errors: Error {
513-
case unexpectedPbxProj(_ id: Int = #line)
514-
}

Tests/XcodeProjTests/Objects/Project/PBXProjEncoderTests.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -328,6 +328,8 @@ class PBXProjEncoderTests: XCTestCase {
328328
line = lines.validate(line: "/* End PBXFileSystemSynchronizedBuildFileExceptionSet section */", after: line)
329329
}
330330

331+
// MARK: - Projects
332+
331333
// MARK: - Build phases
332334

333335
func test_build_phase_sources_unsorted_when_iOSProject() throws {

0 commit comments

Comments
 (0)