strangetimes
strangetimes

Reputation: 5213

Images inaccessible from asset catalog in a SwiftUI framework

I've created an iOS framework that contains a single SwiftUI View. I've then added an Asset Catalog with a single image. Trying to access that image from the SwiftUI view doesn't do anything - I see a blank image.

Image("MyImage")

The Xcode Preview doesn't show anything, nor does the view show anything for a test target I wrote that uses the framework.

So the question is - how do I bundle images with a framework that uses SwiftUI? Is this not supported? The only way I could get this to work was to move the image to the test target's asset catalog instead. Unfortunately this means that I cannot preview the designs I'm working on when developing the framework.

Upvotes: 7

Views: 4791

Answers (2)

Asperi
Asperi

Reputation: 258443

By default

Image("MyImage") is Image("MyImage", bundle: Bundle.main)

ie. in bundle of application.

You have to explicitly specify bundle (of framework) in which Assets catalog is located, as

Image("MyImage", bundle: bundle)

where bundle is instantiated in usual way by class or identifier.

Upvotes: 25

Duncan Babbage
Duncan Babbage

Reputation: 20187

Yes, you can load a custom image or custom SF Symbol within a Swift Package.

The SwiftUI invocation is:

Image(“my-symbol-name“, bundle: .module)

Upvotes: 0

Related Questions