App Icons not included in build from Xcode
You are not alone.
In my project, I found that a previous AppIcon resource that was working fine no longer resulted in an app icon being rendered. A range of experimentation found the following:
- An AppIcon resource copied in from another project where the AppIcon worked, resulted in the AppIcon working in this project, suggesting there was something wrong with the specific original AppIcon resource that wasn't working.
- Copying the image files from the non-working to the working AppIcon asset resulted in the working one now failing also.
- Creating a new AppIcon resource, and inserting the original app icon images likewise led to a blank app icon.
Combined together, the points to this stage suggested perhaps there was something wrong with the image files themselves. I therefore tried various steps to resolve this:
- Re-exporting all the icon sizes with my usual pre-processing app Prepo. Ensured that my source image did not contain transparency. Inserting those re-created icon images still resulted in a blank app icon.
- Re-creating all the icon sizes with a different process, via Sketch, and inserting those icon images into the same AppIcon resource resulted in the app icon working.
- Creating a new AppIcon resource, and inserting the Sketch-created images resulted in the app icon still working.
All of the above suggests that there is something in Xcode 9 which rejects or fails to use previously working app icon images, and that some processes to create app icons that previously were fine produce images that Xcode 9 cannot use. Perhaps there is something within the png specification which is a valid png, but not an acceptable app icon to Xcode 9. The most obvious thought is that app icons with transparency might be rejected, but I do not believe the icon images I was using contained transparency and I tried to eliminate this in my testing above.
A completely separate cause that has been reported for some users is related to CocoaPods integration. See discussion with possible temporary fix here and a pull request that has been created for Cocoapods that theoretically addresses this issue. I say theoretically addresses because I've tried implementing both of these solutions, and neither of them resolved the issue on the project where I've encountered it.
For clarity, make sure that the color profile is set to: sRGB IEC61966-2.1. My icons had no color profile before I stumbled across this issue.
I'm sure other color profiles must work but I haven't done the testing to be sure.
This can be done in preview by:
- Tools → Assign Profile
- Select sRGB IEC61966-2.1
When you do a Get Info on the icons it should now say the correct Color Profile.
After trying various solutions like "Asigning color profile (sRGB IEC61966-2.1) to icons" and "CocoaPods solution" stated above, or "Changing App Icon Source name to different asset name in proect setting",I found one very basic solution as follow:
- Clear your project.
- Clear derived data at (~/Library/Developer/Xcode/DerivedData/)
- Go to "Project -> Build Phase"
- Find "Copy Bundle Resources and drag it as the last item of the list".
- Uninstall application if it is already there, and run project.
Find screenshot for better understanding.
Note: You can check, what is creating problem for app-icon in your project by simply changing position of "Copy Bundle Resources" to upward direction.