I've discovered what I think is a bug in SwiftUI unless I'm doing something obviously wrong.
I have an Asset Catalogue configured with an image that has variants for "Any" width size class and "Regular" width size class.
When the Image is loaded with the following code:
struct ContentView: View {
var body: some View {
VStack {
Image("icon")
}
.padding()
}
}
when running on an iPad you would expect the image for the "Regular" width size class to be displayed. However, it seems that it is only ever the image for the "Any" width size class that is loaded.
Is this a known issue with Asset Catalogs and SwiftUI?
Asset Catalog
RSS for tagAn asset catalog is a type of file used to organize and manage different assets and image resolutions used by your app’s user interface.
Posts under Asset Catalog tag
29 Posts
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
When attempting to access a PHAsset that is in the hidden folder of iOS26, the PHFetchResult always returns no items, even when the user has granted full access to photos and even when includeHiddenAssets is true.
This is the code suggested by ChatGPT; it always fails:
public func fetchAsset(withLocalIdentifier identifier: String) -> PSSPHAssetImplementing? {
// First try the direct fetch by identifier (fast path)
let directResult = PHAsset.fetchAssets(withLocalIdentifiers: [identifier], options: nil)
if let asset = directResult.firstObject {
return build(from: asset)
}
// Fallback: fetch all assets including hidden, then filter manually
let options = PHFetchOptions()
options.includeHiddenAssets = true
let allAssets = PHAsset.fetchAssets(with: options)
for index in 0..<allAssets.count {
let asset = allAssets.object(at: index)
if asset.localIdentifier == identifier {
return build(from: asset)
}
}
return nil
}
Is it no longer possible to retrieve a hidden photo in iOS 26?
We are unable to access images from an Asset catalog that is part of a dynamic framework that is mergeable, on Debug configuration, when running on an actual device under certain circumstances when using Xcode 16.4 and targeting iOS.
If anywhere in the app we call the Bundle(identifier:) initializer for whatever ID, subsequent calls to UIImage(named:in:with:) for images in the framework's bundle return nil. We have verified that the bundle (path) and the name of image & assets target memberships are correct, and that Assets.car has the images.
Additionally the only way to make UIImage(named:in:with:) work is to use Bundle(for:) where BundleFinder is part of the mergeable library, non private NSObject class. Anything else and the re-exported bundle is returned which has no assets.
Is there a way to access an Icon Composer .icon file in Swift or Objective-C? Any way to get this in an NSImage object that I can display in an image view? Thanks.
Attachments:
Problem Description:
I encountered an issue related to WidgetKit.
Inside a widget, I used the following API:
UIImage(named: "some_pic_in_asset")!
However, in my crash monitoring system, I observed a large number of crashes caused by force-unwrapping a UIImage that could not be loaded.
After analyzing the crash reports and the associated app version information, I found that this issue consistently occurs during the app upgrade process.
For example:
A user installs the app at version A and adds the widget to their Home Screen.
Later, the app is upgraded to version A+1.
Then, in the monitoring backend, I observe many crashes. The crash itself happens under version A, but the report is uploaded under version A+1.
Since crash collection happens in the widget and the report is uploaded by the app, the version mismatch is understandable. I also confirmed that the number of crashes strongly correlates with the number of app version upgrades.
Based on this analysis, I believe that in the upgrade scenario described above, UIImage(named: "some_pic_in_asset") sometimes fails to load the image even though it exists in the asset catalog. Please note that the force-unwrapping operation is not the focus of my concern here.
Question:
Is this a known system issue?
If so, is there a plan for fixing it in future iOS updates?
This started with Xcode 26 beta 7, however it has continued to occur with the release candidate. Whenever I try to compile our asset catalog + icon composer icon for our AppKit/SwiftUI-based macOS app, actool fails with the following exception:
*** Terminating app due to uncaught exception 'IBPlatformToolFailureException', reason: 'The tool closed the connection (AssetCatalogAgent-AssetRuntime)
Last command:
_ON_QUEUE_sendMessage:toChannelReturningError:during:
Backtrace of last command:
0 -[IBAbstractPlatformToolProxy _ON_QUEUE_sendMessage:toChannelReturningError:during:] (in IDEInterfaceBuilderKit)
1 __74-[IBAbstractPlatformToolProxy sendMessage:toChannelReturningError:during:]_block_invoke (in IDEInterfaceBuilderKit)
2 _dispatch_client_callout (in libdispatch.dylib)
3 _dispatch_lane_barrier_sync_invoke_and_complete (in libdispatch.dylib)
4 DVTDispatchSync (in DVTFoundation)
5 -[IBAbstractPlatformToolProxy sendMessage:toChannelReturningError:during:] (in IDEInterfaceBuilderKit)
6 -[AssetCatalogRemoteAgentProxy compileItemsWithCatalogRelativeIdentifierPaths:tagSolutionSpace:andStickerPacksWithCatalogRelativeIdentifierPaths:options:] (in IDEInterfaceBuilderCocoaTouchIntegration)
7 -[IBICLARToolCARCompiler compileCARItems:tagSolutionSpace:options:queue:completionHandler:] (in AssetCatalogCocoaTouchKit)
8 -[IBICAbstractPlatformAdapter compileCARItems:tagSolutionSpace:options:queue:completionHandler:] (in AssetCatalogFoundation)
9 __84-[IBICAbstractPlatformAdapter compileSelectedItems:options:queue:completionHandler:]_block_invoke (in AssetCatalogFoundation)
10 __93-[IBICAbstractPlatformAdapter compileStandaloneCatalogItems:options:queue:completionHandler:]_block_invoke (in AssetCatalogFoundation)
11 __DVT_CALLING_CLIENT_BLOCK__ (in DVTFoundation)
12 __DVTDispatchAsync_block_invoke (in DVTFoundation)
13 _dispatch_call_block_and_release (in libdispatch.dylib)
14 _dispatch_client_callout (in libdispatch.dylib)
15 _dispatch_main_queue_drain.cold.5 (in libdispatch.dylib)
16 _dispatch_main_queue_drain (in libdispatch.dylib)
17 _dispatch_main_queue_callback_4CF (in libdispatch.dylib)
18 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ (in CoreFoundation)
19 __CFRunLoopRun (in CoreFoundation)
20 CFRunLoopRunSpecific (in CoreFoundation)
21 -[NSRunLoop(NSRunLoop) runMode:beforeDate:] (in Foundation)
22 -[NSRunLoop(DVTNSRunLoopAdditions) dvt_spinRunLoopInMode:whileQueue:executesAsynchronously:] (in DVTFoundation)
23 -[NSRunLoop(DVTNSRunLoopAdditions) dvt_spinRunLoopInMode:whileBlockExecutesConcurrently:] (in DVTFoundation)
24 -[NSRunLoop(DVTNSRunLoopAdditions) dvt_spinRunLoopInMode:waitingForSemaphore:] (in DVTFoundation)
25 -[IBCLIImageCatalogToolPersona compileCatalogCollection:withPlatformAdapter:arguments:outputDictionary:] (in ibtoold)
26 -[IBCLIImageCatalogToolPersona invokeArguments:outputDictionary:] (in ibtoold)
27 -[IBCLIImageCatalogToolPersona runSingleInvocation:outputtingToFileHandle:andVerifyingEnvironment:] (in ibtoold)
28 IBCLIServerRunSingleInvocation (in ibtoold)
29 __IBCLIServerRunSingleInvocationWithIODirectedAtPipesAndUnlinkOnSuccess_block_invoke_2 (in ibtoold)
30 __IBCLIServerRunSingleInvocationWithIODirectedAtPipesAndUnlinkOnSuccess_block_invoke (in ibtoold)
31 -[IBCLIErrorForwarder forwardErrorOutputToDescriptor:whileInvokingBlock:] (in ibtoold)
32 IBCLIServerRunSingleInvocationWithIODirectedAtPipesAndUnlinkOnSuccess (in ibtoold)
33 main (in ibtoold)
34 start (in dyld)
I can't seem to get it to compile consistently — it works fine locally.
I would ❤️ a workaround, otherwise I'm not sure that we'll be able to ship an update to our app for macOS 26.
FB20183399
Several app developers are struggling with the inability to provide a separate app icons that looks nice on older macOS versions while at the same time provide Icon Composer icons that look great on macOS Tahoe 26. An ability to provide separate icons is super important to those who have app icons that follow the curvature of the default icon borders (as the corner rounding radius is different for Sequia and Tahoe). Take a look at this for example:
https://github.com/ghostty-org/ghostty/issues/7564#issuecomment-3042061547
Question: Is there a definitive/recommended way to address this issue? How can a developer add a glass icon variant that looks good on Tahoe and provide a bitmap icon for older macOS versions?
Some background info:
Prior to Xcode 26 beta 4, one could add an App Icon to Assets to be used as app icon for legacy macOS versions (Sequia and older) and use a new Icon Composer icon (placed in the project root) for macOS Tahoe 26. Enabling "Include all app icon assets" under target settings ensured that older macOS versions would use the old app icons while Tahoe the new Icon Composer glass one.
Since Xcode beta 4 this technique no longer works. Xcode instead insists on populating Assets.car with Icon Composer generated variants, disregarding the App Icon provided in Assets. Although the App Icon in Assets makes its way to a .incs file in the app bundle's Contents/Resources folder, but that is not used by macOS anymore and is there for some compatibility purposes. The Assets.car file (which matters) only contains the variants generated by Icon Composer and does not contain the png icons provided in the Assets.
A new version of the Configuring your app to use alternate app icons sample code is available for download.
The sample uses Icon Composer files and supports iOS 18 or later.
We have found that on iOS 26 beta some of our app icons built from an Xcode 16 asset catalog containing a single 1024x1024 .png file have a Liquid Glass effect applied to them while others have not.
The documentation states that
If you choose not to use Icon Composer, you can still use an AppIcon asset catalog in your project containing individual app icon images and let the system apply the Liquid Glass material.
and
If you prefer, you can take advantage of the system’s automatically generated treatment that is applied to all app icons.
Is there any insight into how the system treats app icons that have not yet been updated with Icon Composer?
I have an AppleTV app which I released in 2016. I've updated it and released a new version every year without much hassle.
This year, with tvOS 17.2, the layered app icon isn't working right. This is a two-layer image made with PNGs.
When it's selected, it looks right and the layers move correctly:
But when it's not selected, the background layer disappears:
Screenshots are from the simulator but it also happens on the device. It's inconsistent; sometimes it's the front layer that disappears. Occasionally both layers work, but I can't tell why.
I've spent a day trying everything. Very frustrated.
The icon previews correctly in Xcode and in Parallax Viewer.
The image sizes are correct: 400 x 240 for Small, 800 x 480 for Small@2x, 1280 x 768 for Large.
The back layer is a non-transparent PNG.
I tried adding a Large@2x set. Didn't help.
Originally I had a three-layer image with no middle layer PNG. I deleted the empty middle layer, but that didn't help.
All the PNG files are from GnuIMP. Same color space, even.
I was using the filenames tvicon-back-s.png and tvicon-back-s@2x.png. I tried taking out the @ sign in case that was confusing Xcode. (It never has before, but I am flailing here.)
Anybody have any clues? If it's an Apple bug and there's nothing I can do, I'm going to just push the release button and hope it fixes itself someday.
I'm trying to update the icon of my app for watchOS 26, and I'm having troubles providing both a layered Liquid Glass icon for watchOS 26 users and a pre-rendered bitmap icon (in various sizes) for watchOS 11 and older users. Whatever I do; I either get a blurry, scaled-down watchOS 26 icon on watchOS 11; or watchOS 11's bitmap icons on watchOS 26.
While I could get the wanted result on macOS 26 and iOS 26, I simply can't get an equivalent result with watchOS 26.
Hi Support Team,
I am new here. I am unable to add my fonts to the asset catalog there is no option to add new font set when I click the plus sign.
When I drag my files in they show up as data.
I have a Contents.json in the font folder called BeVietnamProFont.font.
Is there something I am doing wrong?
Thanks SO much!
{
"info": { "version": 1, "author": "xcode" },
"properties": {},
"fonts": [
{ "filename": "BeVietnamPro-Black.ttf", "weight": "black", "style": "normal" },
{ "filename": "BeVietnamPro-BlackItalic.ttf", "weight": "black", "style": "italic" },
{ "filename": "BeVietnamPro-Bold.ttf", "weight": "bold", "style": "normal" },
{ "filename": "BeVietnamPro-BoldItalic.ttf", "weight": "bold", "style": "italic" },
{ "filename": "BeVietnamPro-ExtraBold.ttf", "weight": "heavy", "style": "normal" },
{ "filename": "BeVietnamPro-ExtraBoldItalic.ttf", "weight": "heavy", "style": "italic" },
{ "filename": "BeVietnamPro-ExtraLight.ttf", "weight": "ultralight", "style": "normal" },
{ "filename": "BeVietnamPro-ExtraLightItalic.ttf", "weight": "ultralight", "style": "italic" },
{ "filename": "BeVietnamPro-Light.ttf", "weight": "light", "style": "normal" },
{ "filename": "BeVietnamPro-LightItalic.ttf", "weight": "light", "style": "italic" },
{ "filename": "BeVietnamPro-Regular.ttf", "weight": "regular", "style": "normal" },
{ "filename": "BeVietnamPro-Italic.ttf", "weight": "regular", "style": "italic" },
{ "filename": "BeVietnamPro-Medium.ttf", "weight": "medium", "style": "normal" },
{ "filename": "BeVietnamPro-MediumItalic.ttf", "weight": "medium", "style": "italic" },
{ "filename": "BeVietnamPro-SemiBold.ttf", "weight": "semibold", "style": "normal" },
{ "filename": "BeVietnamPro-SemiBoldItalic.ttf", "weight": "semibold", "style": "italic" },
{ "filename": "BeVietnamPro-Thin.ttf", "weight": "thin", "style": "normal" },
{ "filename": "BeVietnamPro-ThinItalic.ttf", "weight": "thin", "style": "italic" }
]
}

How do I take an Icon Composer file and bring it into Xcode?
The WWDC 25 session video "Create Icons with Icon Composer", Delivery chapter (around 13:16) was not detailed enough on how to bring the file into Xcode so it will be used for the project.
Once I've saved the Icon Composer file to Finder, where do I import/put it into my Xcode project. I have previous App Icon content in Assets. Do I add Icon Composer file content to Assets in Xcode? How do I make sure Xcode uses the new Icon Composer content in my Xcode project (for iOS) vs. the App Icon asset I currently use?
I have an image in the xcassets file which is localized for different languages. When setting App language to Traditional Chinese, it always displays the Simplified Chinese image. This happens on latest iOS 18.5 system, but not on a lower system version.
The feedback assistant ID is FB17663546
Hello,
At my company, we're trying to run an App Store A/B test on alternate app icons. However, the App Store is rejecting the binary when we upload it (see email below). We're hoping someone out there knows the solution to this issue.
Background
Currently, our app is built with one target from amongst several different schemes. These schemes are used for various versions, including developer debug builds, TestFlight builds, App Store builds, and others. Each scheme has its own distinct app icon specified in Xcode, as shown in the image below:
In our project, we've added the alternate app icons for the two App Store treatments as recommended according to Apple's documentation (we named them "AppIcon-T1" and "AppIcon-T2"). These are located inside our "Images.xcassets" asset catalog.
Each alternate app icon's properties are configured as:
iOS: Single Size
macOS: None
watchOS: None
Appearances: None
Gamut: Any
The Problem
After making the changes above, creating an App Store build succeeds as usual. However, every time we submit an App Store build, we receive this email from Apple:
Please correct the following issues and upload a new binary to App Store Connect.
ITMS-90895: Missing Icon - The Info.plist key CFBundleIcons~ipad.CFBundleAlternateIcons contains an entry “AppIcon-Enterprise” that references asset “AppIcon-Enterprise.” No such asset is present in the asset catalog.
ITMS-90895: Missing Icon - The Info.plist key CFBundleIcons~ipad.CFBundleAlternateIcons contains an entry “AppIcon-Debug” that references asset “AppIcon-Debug.” No such asset is present in the asset catalog.
ITMS-90895: Missing Icon - The Info.plist key CFBundleIcons~ipad.CFBundleAlternateIcons contains an entry “AppIcon-T2” that references asset “AppIcon-T2.” No such asset is present in the asset catalog.
ITMS-90895: Missing Icon - The Info.plist key CFBundleIcons~ipad.CFBundleAlternateIcons contains an entry “AppIcon-T1” that references asset “AppIcon-T1.” No such asset is present in the asset catalog.
ITMS-90895: Missing Icon - The Info.plist key CFBundleIcons.CFBundleAlternateIcons contains an entry “AppIcon-Enterprise” that references asset “AppIcon-Enterprise.” No such asset is present in the asset catalog.
ITMS-90895: Missing Icon - The Info.plist key CFBundleIcons.CFBundleAlternateIcons contains an entry “AppIcon-Debug” that references asset “AppIcon-Debug.” No such asset is present in the asset catalog.
ITMS-90895: Missing Icon - The Info.plist key CFBundleIcons.CFBundleAlternateIcons contains an entry “AppIcon-T2” that references asset “AppIcon-T2.” No such asset is present in the asset catalog.
ITMS-90895: Missing Icon - The Info.plist key CFBundleIcons.CFBundleAlternateIcons contains an entry “AppIcon-T1” that references asset “AppIcon-T1.” No such asset is present in the asset catalog.
Troubleshooting
According to those error messages, the problem is that the alternate app icons aren't being included in the asset catalog. However, we've double-checked that everything seems to be correct in terms of project setup:
The alternate icons are in our "Images.xcassets" catalog (just like our existing app icon)
We made sure that "Include all app icon assets" is checked in our project file under ➤ General ➤ App Icons and Launch Screen
The alternate app icons are specified as App Icons, not Image Sets
The alternate app icons have their target membership set correctly
The alternate app icons are in PNG format at 1024 x 1024 size
If we remove the alternate app icons from the asset catalog and rebuild and resubmit, the App Store issue disappears.
Any help appreciated. Thank you!
Our Apple TV provides UIImages with renderingMode forced to .alwaysTemplate (the images are also configured with "Render As" to "Template image" in the Asset catalog) to UIActions as UIMenuElement when building a UICollectionView UIContextMenuConfiguration.
Problem: these images are not displayed with vibrancy effect by the system.
The issue does not occur with system images (SVG from SF Catalog).
Here is a screenshot showing the issue with custom images ("Trailer" and "Remove from favourites"):
I don't know the underlying implementation of the context menu items image but UIImageView already implements the tintColorDidChange() method and the vibrancy should work if the UIImage is rendered as template.
According to my tests, the vibrancy is correctly applied when using Symbols sets instead of Images sets but I understand that custom images rendered as template should support it as-well, shouldn't they?
I started using on-demand resources for some data assets. After that, the Swift Asset Symbol Extension feature began to fail in the Xcode editor. Even though the app builds and runs fine, the Xcode editor shows errors, indicating that there is no extension variable for my color and image assets.
I submitted feedback and updated it after each new Xcode release. However, I have not received any responses, and the problem persists.
The Xcode versions I tested: 15.3, 15.4, 16.1, 16.2, 16.3
Steps to reproduce this error:
Create a new app project (SwiftUI, Swift).
Create a new color asset named "myBackground."
In ContentView, add a background modifier to a view: .background(Color.myBackground). Auto-completion will work, and there are no issues.
Create a new data asset named "myData."
Add the "On Demand Resource" tag to "myData" with the tag "some_tag."
Create a new color asset named "myOtherBackground" and make its color different from "myBackground."
In ContentView, try to replace the background with Color.myOtherBackground. It will not be listed in auto-completion and will show the error "Type 'Color' has no member 'myOtherBackground.'"
However, it will still compile and show "myOtherBackground" in the preview, simulator, or on the device.
You will start to see the failed "Project Build Preparation" report in the Reports Navigator in Xcode.
According to the report, the "GenerateAssetSymbols" command fails.
Error message:
GenerateAssetSymbols /Users/***/Projects/***/***/Assets.xcassets (in target '***' from project '***')
cd /Users/***/Projects/***
/Applications/Xcode_15.3.app/Contents/Developer/usr/bin/actool --output-format human-readable-text --notices --warnings --export-dependency-info /Users/***/Library/Developer/Xcode/DerivedData/***-***/Index.noindex/Build/Intermediates.noindex/***.build/Debug-iphonesimulator/***.build/assetcatalog_dependencies --output-partial-info-plist /Users/***/Library/Developer/Xcode/DerivedData/***-***/Index.noindex/Build/Intermediates.noindex/***.build/Debug-iphonesimulator/***.build/assetcatalog_generated_info.plist --app-icon AppIcon --accent-color tint --compress-pngs --enable-on-demand-resources YES --development-region en --target-device iphone --minimum-deployment-target 15.0 --platform iphonesimulator --asset-pack-output-specifications /Users/***/Library/Developer/Xcode/DerivedData/***-***/Index.noindex/Build/Intermediates.noindex/***.build/Debug-iphonesimulator/***.build/AssetPackOutputSpecifications.plist --compile /Users/***/Library/Developer/Xcode/DerivedData/***-***/Index.noindex/Build/Products/Debug-iphonesimulator/workoutai.app /Users/***/Projects/***/***/Assets.xcassets --bundle-identifier *** --generate-swift-asset-symbols /Users/***/Library/Developer/Xcode/DerivedData/***-***/Index.noindex/Build/Intermediates.noindex/***.build/Debug-iphonesimulator/***.build/DerivedSources/GeneratedAssetSymbols.swift --generate-objc-asset-symbols /Users/***/Library/Developer/Xcode/DerivedData/***-***/Index.noindex/Build/Intermediates.noindex/***.build/Debug-iphonesimulator/***.build/DerivedSources/GeneratedAssetSymbols.h --generate-asset-symbol-index /Users/***/Library/Developer/Xcode/DerivedData/***-***/Index.noindex/Build/Intermediates.noindex/***.build/Debug-iphonesimulator/***.build/DerivedSources/GeneratedAssetSymbols-Index.plist
/* com.apple.actool.errors */
: error: Could not create a NSArray from '/Users/***/Library/Developer/Xcode/DerivedData/***-***/Index.noindex/Build/Intermediates.noindex/***.build/Debug-iphonesimulator/***.build/AssetPackOutputSpecifications.plist'.
: error: Not enough arguments provided; where is the input document to operate on?
Command GenerateAssetSymbols failed with a nonzero exit code
Hello Everyone Sam Francisco here otherwise known as Ian Francis Creative Director at Primus Films Ltd in the UK. I'm excited today to have Apple invite me to the Developer Forums and indeed honoured to have the chance of creating something that is of interest in the App Store and beyond.
My question is self explanatory really, I am in the Final Cut of 'Metaphor' which is a 42 minutes 17' second Horror Film about Climate Change and I have a deadline set for it's Premiere on YouTube which is this year on April 22nd which as I'm sure you all know is Earth Day.
So although I am quite comfortable and relatively proficient as the film's Writer, Director and Editor I have to confess to being green as tomatoes when it comes to marketing and publicity, and negotiating rights and agreeing deals for example to gain access to the App Store here at Apple with a view to discussing rental or sale options. Even if the film comes away empty handed from the Dorothy Chandler it'll be all set for the Baftas over in the UK and I was wondering how to get discussions going on this and if anyone out there has any knowledge of where I even start I would be very grateful.
Thank you for your time
Ian Francis
Topic:
App Store Distribution & Marketing
SubTopic:
General
Tags:
FairPlay Streaming
Asset Catalog
ARKit
I used to be able to display all app icon assets in the UI using UIImage(named: String)
However, it seems this method has been deprecated in Xcode 16 and the iOS 18.
How can I display app icon assets in the UI now, without duplicating the assets?
We have an existing app in which we have implemented AppShortcuts. The snippet view works fine in iOS 17 while in iOS18 beta, it doesn't able to fetch color from xcassets. If we use system colours or UIColor it's working fine.
Not working
Color("progressColor")
Working
Color(uiColor: UIColor(named: "progressColor")!)
Color.red
Color(hex: "3881d3") // Note: We created Color extension to generate color from hex string.