As it turns out, using Xcode 26 to build my app with iOS 18 and iOS 26 app icons is resulting in the iOS 26 glass icon being used for all iOS versions. The Info.plist that is built into the app by Xcode 26 is making the glass icon the primary icon. All of my existing iOS 18 app icons are being set as available alternate icons.
My original iOS 18 (and earlier) app icon is named AppIcon. The new glass .icon file is named AppIconGlass. In Xcode 26 I updated the App Icon field on the General tab from AppIcon to AppIconGlass.
I just discovered that renaming the .icon file to AppIcon.icon and putting back the App Icon field to AppIcon now gives me the correct icon on iOS 18 and iOS 26.
In other words, if you have an app icon asset and your main app icon is named AppIcon in that asset, then when you add the glass icon from Icon Composer to your project, make sure it is named AppIcon.icon. Then on the General tab, enter AppIcon into the App Icon field. I'm also enabling the "Include all app icon assets" option. Taking these steps will give you the proper icon for a given device with a given version of iOS. The icon from the assets will be used for iOS 18 and earlier. The .icon file will be used for iOS 26.
You might need to do a clean build and delete and reinstall the app in the various simulators and devices after making those changes. This will ensure no leftover baggage from the previous setup is still around.
My app also runs on macOS via Mac Catalyst. I have verified that when run from Xcode 26 on my Mac with macOS 15, I get the older icon. At this time I can't confirm if running the same app on a macOS 26 device will give the new glass icon but I'm hopeful.