Error message
ERROR: ERROR ITMS-90047: "Disallowed paths ( "iTunesMetadata.plist" ) found at: Payload/iPhoneApp1.app"
This error is the result of a change in Apple's App Store verification process to prevent users from hitting issues like Bug 29180. This specific error is not related to the particular version of Xamarin you have installed, so downgrading will not help.
Steps to solve
Use these steps if you have upgraded to the following versions (or higher). If using older versions of Xamarin see the "old workaround" section below.
- Xamarin Studio 5.9.1.3
- XamarinVS 3.11.458
- Xamarin.iOS 8.10.0.303
Since Apple now requires 64-bit support for all uploads the App Store, these steps also assume the use of the Unified API.
For IDE builds in Xamarin Studio on Mac
Create an archive using the "Build -> Archive for Publishing" menu item.
Use the "Sign and Distribute" button in Xamarin Studio as described in the docs to create the
.ipa
.Submit the
.ipa
file using Application Loader.
For command line builds on Mac
Ensure "Project Options -> iOS IPA Options -> Include iTunesArtwork images" is not checked and "Build ad-hoc/enterprise package (IPA)" is checked.
If you prefer, you can instead edit the
.csproj
file in a text editor and manually add the 2 corresponding properties to thePropertyGroup
for the configuration that will be used to build the app:<BuildIpa>true</BuildIpa> <IpaIncludeArtwork>false</IpaIncludeArtwork>
Build the app from the command line using either
mdtool
orxbuild
.Submit the
.ipa
file using Application Loader.
For command line or IDE builds with XamarinVS
Ensure "Project Properties -> iOS IPA Options -> Include Artwork in IPA" is not checked. (Or manually set the
BuildIpa
andIpaIncludeArtwork
properties as mentioned above.)Build the app.
Submit the
.ipa
file using Application Loader.
To submit a .xcarchive
using Xcode rather than Application Loader
If you wish to use Xcode to submit the app after running "Build -> Archive for Publishing", then you will either need to use the "Old workaround" or manually remove the iTunesMetadata.plist
file from the .xcarchive
bundle. This behavior is intentional for now: it allows the same .xcarchive
bundle to be used both for App Store distribution as well as Ad Hoc distribution.
Old workaround
(From Bug 29180, Comment 0.)
Using a text editor, add the following lines at the bottom of your iOS app project's .csproj
(before the closing </Project>
line):
<Target Name="_CompileITunesMetadata" DependsOnTargets="_DetectSdkLocations;_DetectAppManifest;_GenerateBundleName;_CompileAppManifest">
<Message Text="Skipping CompileITunesMetadata task to prevent inclusion of iTunesMetadata.plist in the IPA" />
</Target>
This will stop the iTunesMetadata.plist
file from being included in the .ipa
in the first place.
EDIT July 06: Remove outdated content.