When a target uses the new 5.9 .embedInCode("Resources") resource type, references to the synthesized PackageResource.Resource_File_Name fail to compile for multi-architecture builds. So swift build works, as does swift build --arch arm64 and swift build --arch x86_64 both succeed, but swift build --arch x86_64 --arch arm64 fails with the error:
Compile EmbedInCodeBug.swift (arm64)
cannot find 'PackageResources' in scope
cannot find 'PackageResources' in scope
Sources/EmbedInCodeBug/EmbedInCodeBug.swift:2:24: error: cannot find 'PackageResources' in scope
let embeddedResource = PackageResources.Hello_Resources_txt
^~~~~~~~~~~~~~~~
Sources/EmbedInCodeBug/EmbedInCodeBug.swift:2:24: error: cannot find 'PackageResources' in scope
let embeddedResource = PackageResources.Hello_Resources_txt
^~~~~~~~~~~~~~~~
Build cancelled
Expected behavior
Multi-architecture builds that reference PackageResources should build without error.
Actual behavior
zap Desktop/EmbedInCodeBug % swift build --arch arm64 --configuration debug
Building for debugging...
Build complete! (3.35s)
zap Desktop/EmbedInCodeBug % swift build --arch x86_64 --configuration debug
Building for debugging...
[3/3] Emitting module EmbedInCodeBug
Build complete! (3.72s)
zap Desktop/EmbedInCodeBug % swift build --arch arm64 --arch x86_64 --configuration debug
0%: Compute target dependency graph
Building targets in dependency order
Target dependency graph (4 targets)
0%: Gather provisioning inputs
0%: Create build description
Build description signature: e0aed507d42bf2bc947c76af5ba2f364
Build description path: /Users/marc/Desktop/EmbedInCodeBug/.build/apple/Intermediates.noindex/XCBuildData/e0aed507d42bf2bc947c76af5ba2f364.xcbuilddata
0%: Build stat cache for /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.0.sdk
0%: Process empty-EmbedInCodeBug_EmbedInCodeBug.plist
0%: Planning Swift module EmbedInCodeBug (x86_64)
0%: Planning Swift module EmbedInCodeBug (arm64)
0%: Emitting module for EmbedInCodeBug
0%: Compiling resource_bundle_accessor.swift
0%: Emitting module for EmbedInCodeBug
0%: Compiling resource_bundle_accessor.swift
0%: Compiling EmbedInCodeBug.swift
0%: Compiling EmbedInCodeBug.swift
0%: Compile EmbedInCodeBug.swift (x86_64)
0%: Compile resource_bundle_accessor.swift (arm64)
0%: Compile resource_bundle_accessor.swift (x86_64)
0%: Compile EmbedInCodeBug.swift (arm64)
cannot find 'PackageResources' in scope
cannot find 'PackageResources' in scope
/Users/marc/Desktop/EmbedInCodeBug/Sources/EmbedInCodeBug/EmbedInCodeBug.swift:2:24: error: cannot find 'PackageResources' in scope
let embeddedResource = PackageResources.Hello_Resources_txt
^~~~~~~~~~~~~~~~
/Users/marc/Desktop/EmbedInCodeBug/Sources/EmbedInCodeBug/EmbedInCodeBug.swift:2:24: error: cannot find 'PackageResources' in scope
let embeddedResource = PackageResources.Hello_Resources_txt
^~~~~~~~~~~~~~~~
Build cancelled
zap Desktop/EmbedInCodeBug % swift build --arch arm64 --arch x86_64 --configuration debug
0%: Compute target dependency graph
Building targets in dependency order
Target dependency graph (4 targets)
0%: Gather provisioning inputs
0%: Create build description
Build description signature: 4b92bb9be231a26aefaa9eea83d17a79
Build description path: /Users/marc/Desktop/EmbedInCodeBug/.build/apple/Intermediates.noindex/XCBuildData/4b92bb9be231a26aefaa9eea83d17a79.xcbuilddata
0%: Build stat cache for /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.0.sdk
0%: Process empty-EmbedInCodeBug_EmbedInCodeBug.plist
20%: Planning Swift module EmbedInCodeBug (x86_64)
20%: Planning Swift module EmbedInCodeBug (arm64)
20%: Emitting module for EmbedInCodeBug
20%: Compiling EmbedInCodeBug.swift
20%: Emitting module for EmbedInCodeBug
20%: Compiling resource_bundle_accessor.swift
20%: Compiling resource_bundle_accessor.swift
20%: Compiling EmbedInCodeBug.swift
20%: Compile resource_bundle_accessor.swift (x86_64)
20%: Compile resource_bundle_accessor.swift (arm64)
20%: Compile EmbedInCodeBug.swift (x86_64)
20%: Compile EmbedInCodeBug.swift (arm64)
cannot find 'PackageResources' in scope
cannot find 'PackageResources' in scope
/Users/marc/Desktop/EmbedInCodeBug/Sources/EmbedInCodeBug/EmbedInCodeBug.swift:2:24: error: cannot find 'PackageResources' in scope
let embeddedResource = PackageResources.Hello_Resources_txt
^~~~~~~~~~~~~~~~
/Users/marc/Desktop/EmbedInCodeBug/Sources/EmbedInCodeBug/EmbedInCodeBug.swift:2:24: error: cannot find 'PackageResources' in scope
let embeddedResource = PackageResources.Hello_Resources_txt
^~~~~~~~~~~~~~~~
Build cancelled
Swift Package Manager version/commit hash
No response
Swift & OS version (output of swift --version ; uname -a)
swift-driver version: 1.87.1 Apple Swift version 5.9 (swiftlang-5.9.0.128.108 clang-1500.0.40.1)
Target: arm64-apple-macosx14.0
Darwin zap.local 23.0.0 Darwin Kernel Version 23.0.0: Fri Sep 15 14:41:43 PDT 2023; root:xnu-10002.1.13~1/RELEASE_ARM64_T6000 arm64
Description
When a target uses the new 5.9
.embedInCode("Resources")
resource type, references to the synthesizedPackageResource.Resource_File_Name
fail to compile for multi-architecture builds. Soswift build
works, as doesswift build --arch arm64
andswift build --arch x86_64
both succeed, butswift build --arch x86_64 --arch arm64
fails with the error:Expected behavior
Multi-architecture builds that reference
PackageResources
should build without error.Actual behavior
Steps to reproduce
Create a new Swift project that looks like this:
Then run:
Swift Package Manager version/commit hash
No response
Swift & OS version (output of
swift --version ; uname -a
)