По умолчанию SwiftSyntax поставляется вместе с динамической библиотекой lib_InternalSwiftSyntaxParser.dylib. Поэтому если подключать SwiftSyntax через SPM и пытаться сделать бинарник, то можем наткнуться на следующую ошибку:

dyld: Library not loaded: @rpath/lib_InternalSwiftSyntaxParser.dylib

Чтобы спокойно писать swift build и не бояться, что динамическая библиотека не найдется, достаточно заранее взять статическую - https://github.com/keith/StaticInternalSwiftSyntaxParser/releases.

В манифесте SPM необходимо подключить зависимость SwiftSyntax и бинарник StaticInternalSwiftSyntaxParser:

.binaryTarget(
    name: "lib_InternalSwiftSyntaxParser",
    url: "https://github.com/keith/StaticInternalSwiftSyntaxParser/releases/download/5.7.1/lib_InternalSwiftSyntaxParser.xcframework.zip",
    checksum: "feb332ba0a027812b1ee7f552321d6069a46207e5cd0f64fa9bb78e2a261b366"
),

Чтобы вся идея выгорела, нужно добавить специальный флаг линковщика, который выкидывает из финального бинарного файла неиспользуемые динамические библиотеки, в нашем случае - lib_InternalSwiftSyntaxParser.dylib:

.target(
    ...
    dependencies: [
        .product(name: "SwiftSyntax", package: "SwiftSyntax")
        "lib_InternalSwiftSyntaxParser",
    ],
    linkerSettings: [.unsafeFlags(["-Xlinker", "-dead_strip_dylibs"])]
)

За крутое решение проблемы большое спасибо проекту SwiftLint и keith ❤️