Bug 57908 - Actool can't find icon files in AppIcon.iconset
Summary: Actool can't find icon files in AppIcon.iconset
Status: RESOLVED ANSWERED
Alias: None
Product: iOS
Classification: Xamarin
Component: MSBuild ()
Version: XI 10.10 (d15-2)
Hardware: Macintosh Mac OS
: Normal normal
Target Milestone: Future Cycle (TBD)
Assignee: Bugzilla
URL:
Depends on:
Blocks:
 
Reported: 2017-07-03 14:10 UTC by Roy Cornelissen
Modified: 2017-09-26 17:46 UTC (History)
3 users (show)

Tags:
Is this bug a regression?: ---
Last known good build:


Attachments
Sample project, build log and screenshot comparing 2 different IPA's from the same source code (419.34 KB, application/zip)
2017-07-03 14:10 UTC, Roy Cornelissen
Details


Notice (2018-05-24): bugzilla.xamarin.com is now in read-only mode.

Please join us on Visual Studio Developer Community and in the Xamarin and Mono organizations on GitHub to continue tracking issues. Bugzilla will remain available for reference in read-only mode. We will continue to work on open Bugzilla bugs, copy them to the new locations as needed for follow-up, and add the new items under Related Links.

Our sincere thanks to everyone who has contributed on this bug tracker over the years. Thanks also for your understanding as we make these adjustments and improvements for the future.


Please create a new report on Developer Community or GitHub with your current version information, steps to reproduce, and relevant error messages or log files if you are hitting an issue that looks similar to this resolved bug and you do not yet see a matching new report.

Related Links:
Status:
RESOLVED ANSWERED

Description Roy Cornelissen 2017-07-03 14:10:07 UTC
Created attachment 23260 [details]
Sample project, build log and screenshot comparing 2 different IPA's from the same source code

We are using two Mac build agents to build our Xamarin.iOS app. We noticed that one of the agents produces an IPA that causes the iTunes Connect to reject the IPA because of missing icon files.

After investigation, it turns out that the "broken" agent is more up to date, and is using iOS SDK 10.3, whereas the older one has iOS SDK 10.0 installed. The agent with 10.0 produces a valid build from the same source.

Upon inspecting the build logs from the broken build, we notice the following warnings:

2017-06-29T08:28:21.2383890Z 		Tool /Applications/Xcode.app/Contents/Developer/usr/bin/actool execution started with arguments: --errors --warnings --notices --output-format xml1 --output-partial-info-plist /Users/vso113259/vsts-agent/_work/1/s/VFMobileApp/VFMobileApp.iOS/obj/iPhone/Release/actool/partial-info.plist --app-icon AppIcon --compress-pngs --target-device iphone --target-device ipad --minimum-deployment-target 9.0 --platform iphoneos --compile /Users/vso113259/vsts-agent/_work/1/s/VFMobileApp/VFMobileApp.iOS/obj/iPhone/Release/actool/bundle /Users/vso113259/vsts-agent/_work/1/s/VFMobileApp/VFMobileApp.iOS/obj/iPhone/Release/actool/cloned-assets/Assets.xcassets
2017-06-29T08:28:21.8990300Z /Users/vso113259/vsts-agent/_work/1/s/VFMobileApp/VFMobileApp.iOS/obj/iPhone/Release/actool/cloned-assets/Assets.xcassets: actool warning : A 83.5x83.5@2x app icon is required for iPad apps targeting iOS 9.0 and later
2017-06-29T08:28:21.9028570Z /Users/vso113259/vsts-agent/_work/1/s/VFMobileApp/VFMobileApp.iOS/obj/iPhone/Release/actool/cloned-assets/Assets.xcassets: actool warning : The app icon set "AppIcon" has 7 unassigned children.
2017-06-29T08:28:21.9063210Z /Users/vso113259/vsts-agent/_work/1/s/VFMobileApp/VFMobileApp.iOS/obj/iPhone/Release/actool/cloned-assets/Assets.xcassets: actool warning : The file "Icon-App-83.5x83.5@2x.png" for the image set "AppIcon" does not exist.
2017-06-29T08:28:21.9101260Z /Users/vso113259/vsts-agent/_work/1/s/VFMobileApp/VFMobileApp.iOS/obj/iPhone/Release/actool/cloned-assets/Assets.xcassets: actool warning : The file "Icon-App-20x20@2x.png" for the image set "AppIcon" does not exist.
2017-06-29T08:28:21.9135550Z /Users/vso113259/vsts-agent/_work/1/s/VFMobileApp/VFMobileApp.iOS/obj/iPhone/Release/actool/cloned-assets/Assets.xcassets: actool warning : The file "Icon-App-20x20@1x.png" for the image set "AppIcon" does not exist.
2017-06-29T08:28:21.9170630Z /Users/vso113259/vsts-agent/_work/1/s/VFMobileApp/VFMobileApp.iOS/obj/iPhone/Release/actool/cloned-assets/Assets.xcassets: actool warning : The file "Icon-App-60x60@1x.png" for the image set "AppIcon" does not exist.
2017-06-29T08:28:21.9206220Z /Users/vso113259/vsts-agent/_work/1/s/VFMobileApp/VFMobileApp.iOS/obj/iPhone/Release/actool/cloned-assets/Assets.xcassets: actool warning : The file "Icon-App-20x20@3x.png" for the image set "AppIcon" does not exist.
2017-06-29T08:28:21.9241710Z /Users/vso113259/vsts-agent/_work/1/s/VFMobileApp/VFMobileApp.iOS/obj/iPhone/Release/actool/cloned-assets/Assets.xcassets: actool warning : The file "Icon-App-20x20@2x.png" for the image set "AppIcon" does not exist.
2017-06-29T08:28:21.9341530Z /Users/vso113259/vsts-agent/_work/1/s/VFMobileApp/VFMobileApp.iOS/obj/iPhone/Release/actool/cloned-assets/Assets.xcassets: actool warning : The file "Icon-App-76x76@3x.png" for the image set "AppIcon" does not exist.

The "missing" icon resources do exist in the repo, but somehow end up missing in the resulting IPA, causing iTunes Connect to reject it. See attached screen shot (in the ZIP) for a comparison of the resulting IPA's.

These warnings can be easily reproduced with the latest Visual Studio for Mac with iOS SDK 10.3 installed:

- Open attached project in Visual Studio for Mac - this is a stripped down copy of our app, with the exact contents of the IconApp.appiconset folder
- Build the project
- Notice the actool warnings on lines 206-231 of the build log
Comment 1 Timothy Risi 2017-07-03 19:49:54 UTC
I'm not sure how it got into that state in the first place, but I can verify I get the same warnings if I build the repro project.

If I removed all of the images and re-added the same images to the asset file, it builds successfully with no warnings.
Comment 2 Roy Cornelissen 2017-07-04 09:38:52 UTC
Thanks for the reply. Turns out that the images actool is complaining about are present in the project folder on disk, but were missing as <ImageAsset /> reference in the CSPROJ. Like you, I'm unsure how it got into that state.

I added them manually and re-ran the build with the SDK 10.3 agent. The build is now OK.

So somehow a difference emerged between how these SDK's work. Makes me wonder if it would be wise to break the build if actool is giving these warnings, as it produces an invalid IPA in the end.

Anyway, the problem could be resolved by manually fixing the CSPROJ in this case. Thanks for the extra pair of eyes.