Our app can not be built with Xcode 14.3 because UIContentConfiguration.makeContentView() in UIKit in iOS 16.4 suddenly has the @MainActor annotation added.
Expecting @MainActor from the callers quickly bubbles up so that basically the entire view layer of the project needs to use actors. (Concurrency check is kept at the default minimal.)
Surely this is not the intended way to force everyone to start migrating to actor usage? Based on many topics about concurrency issues on the Swift forums we were content with waiting until most flaws have been figured out.
I hope I'm just missing something obvious here.
Post
Replies
Boosts
Views
Activity
CoreUI is sending warning messages to the Xcode console when creating a UIImage from an image file with Mac idiom from the asset catalog, while running on Catalyst.
My target is set to support running on Mac Catalyst with Optimize for Mac enabled (the latter seems to be the most important part).
Loading the image into a UIImage with the designated initializer and presenting it in a UIImageView produces the following console messages:
2023-02-15 10:53:18.014394+0100 CatalystImageConsoleMessage[64253:8834791] [framework] CoreUI: _Bool CUIValidateIdiomSubtypes(NSInteger, NSUInteger *) got a device subtype '32401' that it match with idiom '7':mac. Assuming subtype should be 0 instead.
2023-02-15 10:53:18.014446+0100 CatalystImageConsoleMessage[64253:8834791] [framework] CoreUI: _Bool CUIValidateIdiomSubtypes(NSInteger, NSUInteger *) got a device subtype '32401' that it match with idiom '7':mac. Assuming subtype should be 0 instead.
2023-02-15 10:53:18.014503+0100 CatalystImageConsoleMessage[64253:8834791] [framework] CoreUI: _Bool CUIValidateIdiomSubtypes(NSInteger, NSUInteger *) got a device subtype '32401' that it match with idiom '7':mac. Assuming subtype should be 0 instead.
2023-02-15 10:53:18.014533+0100 CatalystImageConsoleMessage[64253:8834791] [framework] CoreUI: _Bool CUIValidateIdiomSubtypes(NSInteger, NSUInteger *) got a device subtype '32401' that it match with idiom '7':mac. Assuming subtype should be 0 instead.
Working with more than a handful of images from the catalog makes the Xcode console output borderline unreadable because of these messages. The console doesn't have an option to filter out messages (and in general we consider it bad practice to ignore messages on the console).
Tested on Xcode 14.2 with macOS 13.2.
You can find a sample project at https://github.com/tamasjager/CatalystImageConsoleMessage.