
Executable that you will use to export icon images.

#Swift appicon android#
The main takeaway I have from this puzzle is that file casing matters when building cross-platform apps, especially because both Android and iOS are Unix-like and are case sensitive. Define two products in your Package.swift: Library that will contain your icon source code. Rebuilt and deployed and app icon was there again – but, as the masked magician would say, now we know the secrets! Now we know the secrets! Mystery solved! csproj file to use lowercase versions of the file names in elements. I deleted the build cache, reverted all changes, and then modified the.
#Swift appicon mac#
I confirmed this by going into the build cache folder on Mac ( /User/Library/Caches/Xamarin/mtbs/builds): Output casing matches. csproj file, not the one which the files had originally. This would normally not be a problem, as Windows is case insensitive, but macOS/iOS is not! It turns out that while copying the project files to the output, Visual Studio uses the casing specified in the. csproj originally used the one with uppercase “P” in the filenames. At first glance it seemed Visual Studio just included the same files twice, just without the false modifier, so the new copy was actually visible in the Solution Explorer.Īha! ipad vs iPad! Could it be the uppercase? The Contents.json file referenced the lowercase versions of the image files, but. It was great it now worked, but why? Luckily, the answer is really close now. To my surprise – it worked! The app icon was now there, smiling at me from the iPad’s home screen: Huh, it works? But… why? I thought this can’t change anything, but went ahead and tried to run the app again, just to be sure. What I got were now essentially two copies of the same images in the project – once as part as the Asset Catalogs and once in the Media.xcassets folder: Two copies now There I saw the Media.xcassets folder and right-clicked it and selected Include In Project. If Visual Studio thinks the image files are missing, let’s include them “by force”! In Solution Explorer, I clicked the Show All Files button on the top. csproj – something really funky is going on here! Include those files! Why would the file not exist? It is clearly visible in the asset editor and it is in the. The file for the image set “AppIcons” does not exist. png in the Build Output window and found 18 messages like this: But out of curiosity I made a search for. It’s redundant but it’s just how VS works.Īt first glance, this seemed to lead nowhere, as I previously confirmed the references were, in fact, present in the. csproj file as well as the Assets.xcassets Contents.json file.

Unlike Xcode, VS requires a reference to each iOS asset. You should see a bunch of warnings about missing. Let’s solve this mystery together! Suspicious build outputĪfter a while searching the internet I came onto this Stack Overflow answer by mamcx for a similar problem (emphasis mine):ĭid you check the build warnings when you compiled the app. I asked Fons if he would be willing to provide me access to the repo so that I could run it locally on my Mac, to check if it is not some kind of caching issue – but that wasn’t the case either and the icon was still missing.
#Swift appicon simulator#
Even then, the Simulator still kept showing the same old default iOS app icon.
