Bug 24412 - iTunesArtwork packaged in AppStore .ipa's, should only be exported in AdHoc ipa's
Summary: iTunesArtwork packaged in AppStore .ipa's, should only be exported in AdHoc i...
Alias: None
Product: iOS
Classification: Xamarin
Component: Tools ()
Version: XI 8.4.0
Hardware: Macintosh Mac OS
: --- normal
Target Milestone: Untriaged
Assignee: Bugzilla
Depends on:
Reported: 2014-11-10 18:00 UTC by Benoit Jadinon
Modified: 2014-11-11 14:00 UTC (History)
1 user (show)

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

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:

Description Benoit Jadinon 2014-11-10 18:00:47 UTC
my client tried to release the ipa and got rejected (ITMS-9000: Disallowed paths ("iTunesArtwork")), apparently, since august, Apple is rejecting ipa's that contain iTunesArtwork files.

problem is, iTunesArtwork shouldn't be packaged when in AppStore release mode, only in AdHoc.

as a quick fix, I removed the iTunesArtwork files from the project settings, and compiled again. 

but I will have to manually add them back for the next AdHoc release, and will probably forgot about them, until my client's next ipa release gets rejected again lol.

I'm using the Beta channel I must say, but I'm not the only one with the problem :

Comment 1 Jeffrey Stedfast 2014-11-10 18:20:53 UTC
Did you enable "Build IPA" in the "iOS Build" settings for your App Store build configuration?

FWIW, the build system doesn't look at the name of the configuration to determine if it is an "Ad-Hoc" vs "App Store" build, it just uses the "Build IPA" setting to determine Ad-Hoc or App Store. For App Store, that setting is off, but for Ad-Hoc it is on.

When the build system makes an IPA, it always includes the iTunesArtwork (and @2x).

I could probably add another checkbox for "Include iTunesArtwork", but I want to make sure that I am understanding the problem correctly first.
Comment 2 Benoit Jadinon 2014-11-10 19:51:32 UTC
Hi, based on your comment, and my recent reading of :
I get the feeling I'm doing something wrong, or at least not as I'm supposed to, because it worked for me in the past.
so, I did not create a new Distribution configuration, I'm using the App Store one, is it bad ?
so for that App Store configuration, I've checked "Build IPA", then I build the app, and send the generated ipa to my client, who manages releasing to the store.
anyway, I get that you don't use the default configuration names for triggering compilation logic, so yes, a "Include iTunesArtwork" checkbox would be nice, it could be unchecked by default for the AppStore configuration, right ?
Comment 3 Benoit Jadinon 2014-11-10 20:03:52 UTC
what you're saying is that when properly Archiving the app, the generated ipa sent to Apple then doesn't contain the said artwork ?

so, 3 months after Apple enforced the policy, am I the only Xamarin developer (besides those on the forum link) who uses the AppStore configuration with "Build IPA" to generate an ipa for my client ? is it so bad ?

Comment 4 Benoit Jadinon 2014-11-11 05:29:06 UTC
I mean I'm compiling with AppStore, then I get the file from the /bin folder
Comment 5 Benoit Jadinon 2014-11-11 05:44:11 UTC
is it me or is that doc page mixing up stuff a bit ?
I mean it's written "newly created AppStore configuration" when the screencaps shows "Distribution" configuration

also, if I want to archive, but not submit to the appstore, should I check "save for enterprise or adhoc deployment" to get the ipa ? will it still be signed for appstore distribution ?

sorry if this ticket becomes a support one, but if you say that archiving or getting an AppStore ipa from the bin folder generates the same ipa in the end, then an checkbox for "include iTunesArtwork" would still be nice, thanks
Comment 6 Jeffrey Stedfast 2014-11-11 12:03:45 UTC
Originally, Xamarin Studio only had Debug and Release configurations, but later I added "App Store" and "Ad-Hoc" configurations so that developers wouldn't need to create a "Distribution" configuration like the doc explains (so yea, you are right, that doc is out of date).

That said, our envisioned workflow (not saying our vision is the best way or the only way) was that developers would archive their project and use the Xcode Archive UI to submit their apps, which would remove the iTunesArtwork images.

Another way is to do an "App Store" build and then use the Project -> Zip App Bundle menu to zip the .app directory that is created via the "App Store" (or any other configuration) build.

When you enable the "Build IPA" checkbox in the configuration, it was assumed that the developer was building for Ad-Hoc distribution.

Clearly, in your workflow, our assumptions do not fit your workflow.

As to why this used to work, apparently Apple used to allow iTunesArtwork images in the .ipa file in the past but recently changed to not allowing it.

Looking through the code, it looks like adding an "Include iTunesArtwork" checkbox is safe and could easily be implemented, so I think that's probably what I'll do.
Comment 7 Jeffrey Stedfast 2014-11-11 13:57:43 UTC
I've implemented this for Xamarin.iOS 8.6 and Xamarin Studio ~5.7 (which I think are due out around February?)

In the meantime, the easiest solution is to just remove the iTunesArtwork images from the project temporarily.
Comment 8 Benoit Jadinon 2014-11-11 14:00:02 UTC
thanks a lot for the clarification and the new feature ;)