Hive
SwiftPM artifact bundles are lowered as XCFramework imports
GitHub issue · Open
Summary
Once treats a SwiftPM binary target backed by an artifact bundle as an XCFramework import. It downloads and extracts the archive correctly, then looks for an .xcframework/Info.plist that the artifact does not contain.
Reproduction
The public package Semantical/hegel-swift declares this binary target:
.binaryTarget(
name: "CHegel",
url: "https://github.com/Semantical/hegel-swift/releases/download/artifacts-0.41.0/CHegel-0.41.0.artifactbundle.zip",
checksum: "de2ba0a4b8205475efa5815e27439e83204b106b28815a9d7707fd06d8c256b3"
)
Once lowers it to:
kind: apple_xcframework_import
bundle: .once/out/SwiftPackage_hegel-swift_CHegel_Artifact/archive/CHegel.xcframework
The extracted archive has the SwiftPM artifact-bundle layout:
CHegel.artifactbundle/
info.json
include/
arm64-apple-macosx/libhegel_c.a
x86_64-unknown-linux-gnu/libhegel_c.a
...
Building any target that uses CHegel fails during analysis:
SwiftPackage_hegel-swift_CHegel: XCFramework bundle is missing Info.plist: `.once/out/SwiftPackage_hegel-swift_CHegel_Artifact/archive/CHegel.xcframework`
Expected behavior
Once should read info.json, select the artifact variant for the configured destination, and expose the selected library and headers to dependents. If generic SwiftPM artifact bundles are not supported yet, graph loading should report that format as unsupported instead of deriving an XCFramework path.
Tested with Once 0.57.0 on macOS.
Investigate, reproduce, or fix this item in an isolated repository. Each Flight preserves its outcome and agent session.
Start a Flight and preserve its objective, outcome, and session here.
No GitHub comments yet.