Describe the bug
xcodebuild archive fails in the following scenario.
To Reproduce
Steps to reproduce the behavior:
- Create a Swift Package, which depends on MetaCodable
- Create a Target which depends on
MetaCodable, HelperCoders and uses the MetaProtocolCodable plugin.
- Include this target as a product of the package
- Add types into the target which make use of dynamic data variations, in particular Step 9 from the tutorial: https://swiftpackageindex.com/swiftylab/metacodable/v1.3.0/tutorials/metacodable/dynamic
- Create an Xcode project for an iOS app which imports the product from the package.
- Add code-signing for your app
- Build and Archive from Xcode Product menu (or using
xcodebuild archive)
Expected behavior
I should be able to archive the product.
Actual behaviour
Build script fails because build tools cannot find the executable tool ProtocolGen.
Showing All Issues
sandbox-exec: execvp() of '//Users/daniel/Library/Developer/Xcode/DerivedData/Posts-aaxhnzolyyfxrgcsibzfeeijakbj/Build/Intermediates.noindex/ArchiveIntermediates/Posts/BuildProductsPath/Release/ProtocolGen' failed: No such file or directory
Screenshots
Environment (please complete the following information, remove ones not applicable):
- OS: macOS
- Version 14.4.1 (23E224)
- Xcode Version 15.3 (15E204a)
- Swift $ swift -version
swift-driver version: 1.90.11.1 Apple Swift version 5.10 (swiftlang-5.10.0.13 clang-1500.3.9.4)
Target: arm64-apple-macosx14.0
- CocoaPods N/A
Additional context
I have created a small project to demonstrate this issue: https://github.com/danthorpe/metacodable_demo
A possible solution, would be to export ProtocolGen as a Swift artefact bundle, and reference this as a binary target in your Package.swift. e.g. how SwiftLint is packaged. In this project, on macOS, the dependency is a binary target instead of the source code executable.
Describe the bug
xcodebuild archivefails in the following scenario.To Reproduce
Steps to reproduce the behavior:
MetaCodable,HelperCodersand uses theMetaProtocolCodableplugin.xcodebuild archive)Expected behavior
I should be able to archive the product.
Actual behaviour
Build script fails because build tools cannot find the executable tool
ProtocolGen.Screenshots
Environment (please complete the following information, remove ones not applicable):
swift-driver version: 1.90.11.1 Apple Swift version 5.10 (swiftlang-5.10.0.13 clang-1500.3.9.4)
Target: arm64-apple-macosx14.0
Additional context
I have created a small project to demonstrate this issue: https://github.com/danthorpe/metacodable_demo
A possible solution, would be to export
ProtocolGenas a Swift artefact bundle, and reference this as a binary target in your Package.swift. e.g. how SwiftLint is packaged. In this project, on macOS, the dependency is a binary target instead of the source code executable.