MetaCodable
MetaCodable copied to clipboard
Xcode build archive fails
- [x] I have read the documentation.
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,HelperCodersand uses theMetaProtocolCodableplugin. - 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.
@danthorpe this seems more like a bug in Xcode as mentioned here.
i got the same warnngs in xcode 15.4, macbook pro M3, swift version 5.10, i search a workaround is
#if compiler(>= 5.10)
private import XXX
#else
@_implementationOnly import XXX
#endif
so when i can resolve these warnings in future release versions of the MetaCodable?
What warnings are you getting @913868456?
Hopefully this issue is fixed in new swift-build