Skip to content

protoc-gen-swift cannot load SwiftProtobuf library when using SwiftProtobufPlugin in release mode #1506

@MikeWalrus

Description

@MikeWalrus

The plugin works without issue when the build scheme is set to debug mode, but when doing a release build, protoc cannot find SwiftProtobuf when loading protoc-gen-swift:

dyld[57698]: Library not loaded: @rpath/SwiftProtobuf.framework/Versions/A/SwiftProtobuf

The log shows that in debug mode, protoc-gen-swift is compiled with

cd /Users/test/Library/Developer/Xcode/DerivedData/PaperPilot-cyqhgfgkjjzzwchgmxwnwngxtkbw/SourcePackages/checkouts/swift-protobuf
    /Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -Xlinker -reproducible -target arm64-apple-macos10.13 -isysroot /Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.2.sdk -O0 -w -L/Users/test/Library/Developer/Xcode/DerivedData/PaperPilot-cyqhgfgkjjzzwchgmxwnwngxtkbw/Build/Intermediates.noindex/EagerLinkingTBDs/Debug -L/Users/test/Library/Developer/Xcode/DerivedData/PaperPilot-cyqhgfgkjjzzwchgmxwnwngxtkbw/Build/Products/Debug -L/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/usr/lib -F/Users/test/Library/Developer/Xcode/DerivedData/PaperPilot-cyqhgfgkjjzzwchgmxwnwngxtkbw/Build/Intermediates.noindex/EagerLinkingTBDs/Debug -F/Users/test/Library/Developer/Xcode/DerivedData/PaperPilot-cyqhgfgkjjzzwchgmxwnwngxtkbw/Build/Products/Debug/PackageFrameworks -F/Users/test/Library/Developer/Xcode/DerivedData/PaperPilot-cyqhgfgkjjzzwchgmxwnwngxtkbw/Build/Products/Debug/PackageFrameworks -F/Users/test/Library/Developer/Xcode/DerivedData/PaperPilot-cyqhgfgkjjzzwchgmxwnwngxtkbw/Build/Products/Debug -F/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/Library/Frameworks -iframework /Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/Library/Frameworks -filelist /Users/test/Library/Developer/Xcode/DerivedData/PaperPilot-cyqhgfgkjjzzwchgmxwnwngxtkbw/Build/Intermediates.noindex/SwiftProtobuf.build/Debug/protoc-gen-swift.build/Objects-normal/arm64/protoc-gen-swift.LinkFileList -Xlinker -rpath -Xlinker /usr/lib/swift -Xlinker -rpath -Xlinker /Users/test/Library/Developer/Xcode/DerivedData/PaperPilot-cyqhgfgkjjzzwchgmxwnwngxtkbw/Build/Products/Debug/PackageFrameworks -Xlinker -object_path_lto -Xlinker /Users/test/Library/Developer/Xcode/DerivedData/PaperPilot-cyqhgfgkjjzzwchgmxwnwngxtkbw/Build/Intermediates.noindex/SwiftProtobuf.build/Debug/protoc-gen-swift.build/Objects-normal/arm64/protoc-gen-swift_lto.o -Xlinker -export_dynamic -Xlinker -no_deduplicate -fobjc-link-runtime -L/Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/macosx -L/usr/lib/swift -Xlinker -add_ast_path -Xlinker /Users/test/Library/Developer/Xcode/DerivedData/PaperPilot-cyqhgfgkjjzzwchgmxwnwngxtkbw/Build/Intermediates.noindex/SwiftProtobuf.build/Debug/protoc-gen-swift.build/Objects-normal/arm64/protoc_gen_swift.swiftmodule -Wl,-no_warn_duplicate_libraries -Wl,-no_warn_duplicate_libraries -framework SwiftProtobuf -framework SwiftProtobufPluginLibrary -Xlinker -dependency_info -Xlinker /Users/test/Library/Developer/Xcode/DerivedData/PaperPilot-cyqhgfgkjjzzwchgmxwnwngxtkbw/Build/Intermediates.noindex/SwiftProtobuf.build/Debug/protoc-gen-swift.build/Objects-normal/arm64/protoc-gen-swift_dependency_info.dat -o /Users/test/Library/Developer/Xcode/DerivedData/PaperPilot-cyqhgfgkjjzzwchgmxwnwngxtkbw/Build/Products/Debug/protoc-gen-swift

But in release mode, it misses the rpath argument:

/Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -Xlinker -reproducible -target arm64-apple-macos10.13 -isysroot /Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.2.sdk -Os -w -L/Users/test/Library/Developer/Xcode/DerivedData/PaperPilot-cyqhgfgkjjzzwchgmxwnwngxtkbw/Build/Intermediates.noindex/EagerLinkingTBDs/Release -L/Users/test/Library/Developer/Xcode/DerivedData/PaperPilot-cyqhgfgkjjzzwchgmxwnwngxtkbw/Build/Products/Release -L/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/usr/lib -F/Users/test/Library/Developer/Xcode/DerivedData/PaperPilot-cyqhgfgkjjzzwchgmxwnwngxtkbw/Build/Intermediates.noindex/EagerLinkingTBDs/Release -F/Users/test/Library/Developer/Xcode/DerivedData/PaperPilot-cyqhgfgkjjzzwchgmxwnwngxtkbw/Build/Products/Release/PackageFrameworks -F/Users/test/Library/Developer/Xcode/DerivedData/PaperPilot-cyqhgfgkjjzzwchgmxwnwngxtkbw/Build/Products/Release/PackageFrameworks -F/Users/test/Library/Developer/Xcode/DerivedData/PaperPilot-cyqhgfgkjjzzwchgmxwnwngxtkbw/Build/Products/Release -F/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/Library/Frameworks -iframework /Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/Library/Frameworks -filelist /Users/test/Library/Developer/Xcode/DerivedData/PaperPilot-cyqhgfgkjjzzwchgmxwnwngxtkbw/Build/Intermediates.noindex/SwiftProtobuf.build/Release/protoc-gen-swift.build/Objects-normal/arm64/protoc-gen-swift.LinkFileList -Xlinker -rpath -Xlinker /usr/lib/swift -Xlinker -object_path_lto -Xlinker /Users/test/Library/Developer/Xcode/DerivedData/PaperPilot-cyqhgfgkjjzzwchgmxwnwngxtkbw/Build/Intermediates.noindex/SwiftProtobuf.build/Release/protoc-gen-swift.build/Objects-normal/arm64/protoc-gen-swift_lto.o -Xlinker -debug_variant -fobjc-link-runtime -fprofile-instr-generate -L/Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/macosx -L/usr/lib/swift -Xlinker -add_ast_path -Xlinker /Users/test/Library/Developer/Xcode/DerivedData/PaperPilot-cyqhgfgkjjzzwchgmxwnwngxtkbw/Build/Intermediates.noindex/SwiftProtobuf.build/Release/protoc-gen-swift.build/Objects-normal/arm64/protoc_gen_swift.swiftmodule -Wl,-no_warn_duplicate_libraries -Wl,-no_warn_duplicate_libraries -framework SwiftProtobuf -framework SwiftProtobufPluginLibrary -Xlinker -dependency_info -Xlinker /Users/test/Library/Developer/Xcode/DerivedData/PaperPilot-cyqhgfgkjjzzwchgmxwnwngxtkbw/Build/Intermediates.noindex/SwiftProtobuf.build/Release/protoc-gen-swift.build/Objects-normal/arm64/protoc-gen-swift_dependency_info.dat -o /Users/test/Library/Developer/Xcode/DerivedData/PaperPilot-cyqhgfgkjjzzwchgmxwnwngxtkbw/Build/Intermediates.noindex/SwiftProtobuf.build/Release/protoc-gen-swift.build/Objects-normal/arm64/Binary/protoc-gen-swift

I can reproduce this on Xcode 15.0 and 15.1 beta, with swift-protobuf 1.25.1.

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions