I recently started to see this icon appear when locally testing my app on iPhone. Android works as intended, and iOS has worked really well until a recent Flutter update. Now, I see a white grid instead of the launcher icon I’ve designated.
This thread from discussions.apple.com says that the white grid app icon is due to an app that has not loaded completely, but even after installation, extensive testing, and disconnecting the phone, the launcher icon remains a white grid.
Things I’ve tried
Starting a debug session in VS Code produces a white grid
flutter run
produces a white grid, as does flutter run --release
Here is a photo of the contents of my AppIcon.appiconset folder:
Its structure is project/ios/Runner/Assets.xcassets/AppIcon.appiconset
, and the size goes from 16 to 1024.
Again, this was working a couple of weeks ago, but the icon recently disappeared without me seemingly doing anything at all.
1
Problem: Contents.json was incorrect
During some Flutter upgrade troubleshooting, my Contents.json file was edited and pointed to default Flutter icons that no longer exist. This meant that the PNG could not be found during compile time, so it left me with the plain white grid launcher icon
Steps
Open the Flutter ios folder in Xcode, click Runner in the navigator, click the Runner folder, then select Assets. Right-click AppIcon in the second-level navigator, then select Delete.
At the bottom of the second-level navigator is a plus sign. Click the plus sign, then select Import from the menu. I previously used https://www.appicon.co/ to generate the folders and files necessary for iOS/Android mobile apps, so I found and selected the folder AppIcon.appiconset and clicked Open.
This generated a new AppIcon element in the second-level navigator, as well as a new Contents.json file to point to the images.
Select your iOS device, then flutter run
. You should see the new launcher image after the build finishes!
P.S. I am not very proficient in Xcode, and I made up some of the verbiage for UI elements based on their function. Apologies if it doesn’t line up with Apple’s documentation.