Application Loader Error: ITMS-90017: "This bundle is invalid. "

Full error message:  This bundle is invalid. The IPA format requires a top-level directory named Payload, containing only a .app bundle and optional plugins in a Plugins directory.

I’m using the following:

Corona Version 2014.2511 (2014.11.18)

XCode 6.2 with ios 8.2

The ipa I’m trying to use in App Loader works fine when i use xcode to transfer to my phone for testing purposes.  It seems to refer to the fact that the .dSYM file is in the same folder as the .app and not in some Plugins folder but when i manually try to create that Plugins folder and move the .dSYM file there i get another error.

Can anyone help me get around this?

This error is rather straight forward.  A .ipa file is a .zip file, renamed to .ipa which is a folder named Payload and you move the .app file that Corona SDK builds into that folder.  Compress the Payload folder to Payload.zip, then rename it to yourappname.ipa.

You do not need a .ipa file for Xcode, you can transfer the .app bundle on its own.  The .ipa file is used to directly install via iTunes.  Application Loader (for uploading to the App Store) would just use the .zip file that we output.

Why are you making a .ipa file?

Rob

Thanks for the response rob.  

I manually create the ipa to install on my test devices and am now just starting to use the app store.  I just assumed that i would need to load the .ipa file into the application loader.  

When I do a build on Corona, I get a .app and a .dSYM file.  I believe corona is generating the .dSYM because i require the facebook module for facebook integration.  Can I just point the Application loader to the .app file without the .dSYM and have it work?  

I tried using the the .zip file that corona generates with application loader (Version 3.0 (620)) and got a different error.

Error ITMS-90023: Missing required icon file.  The bundle does not contain an app icon for iPad of exactly ‘72x72’ pixels, in .png format for iOS versions < 7.0.

When you build for distribution to the app store, you will get a .zip file.  That’s the file you will use to upload to iTunes with Application Loader.  You get the .app file only (lets forget the .dSYM file for the moment) if you’re using a development profile.  Once you start using a distribution profile (either AdHoc or For the Store) you will get a .app file and a .zip file.

The .dSYM file is there for debugging purposes and could very well be due to the facebook plugin.  You can ignore it.

When installing to your device, we recommend using Xcocde with your device tethered and install the app that way.  You have access to the device’s console log for debugging and you don’t have to sync your device.  You can make screen shots and look at created files in the app’s sand box.  It’s faster and has more features favorable to developers.

Rob

Thanks rob!  I just realized that i did not have all the icon formats done and that’s the new error.  I will get them done and try again.  Hopefully it will work.

Hi Rob,

So, I was able to successfully load the .zip file generated by corona through to the application loader.  But, in itunes connect, I get an “Invalid Binary”  Could this be related to the .dSYM?

I just saw the apple message:  

We have discovered one or more issues with your recent delivery for . To process your delivery, the following issues must be corrected:

Missing 64-bit support  - Beginning on February 1, 2015 new iOS apps submitted to the App Store must include 64-bit support and be built with the iOS 8 SDK. Beginning June 1, 2015 app updates will also need to follow the same requirements. To enable 64-bit in your project, we recommend using the default Xcode build setting of “Standard architectures” to build a single binary with both 32-bit and 64-bit code.

Once these issues have been corrected, you can then redeliver the corrected binary

The dSYM file is never used.  Please ignore it.

As for the 2nd message, what version of Corona SDK are you using?  I’m guessing you are running 2015.2511…  The last public build.  Apple made a change, that requires a later version.  You can grab the latest daily build, to get past this.

See: https://coronalabs.com/blog/2015/01/21/update-on-corona-ios-64-bit-support-and-plugins/

This error is rather straight forward.  A .ipa file is a .zip file, renamed to .ipa which is a folder named Payload and you move the .app file that Corona SDK builds into that folder.  Compress the Payload folder to Payload.zip, then rename it to yourappname.ipa.

You do not need a .ipa file for Xcode, you can transfer the .app bundle on its own.  The .ipa file is used to directly install via iTunes.  Application Loader (for uploading to the App Store) would just use the .zip file that we output.

Why are you making a .ipa file?

Rob

Thanks for the response rob.  

I manually create the ipa to install on my test devices and am now just starting to use the app store.  I just assumed that i would need to load the .ipa file into the application loader.  

When I do a build on Corona, I get a .app and a .dSYM file.  I believe corona is generating the .dSYM because i require the facebook module for facebook integration.  Can I just point the Application loader to the .app file without the .dSYM and have it work?  

I tried using the the .zip file that corona generates with application loader (Version 3.0 (620)) and got a different error.

Error ITMS-90023: Missing required icon file.  The bundle does not contain an app icon for iPad of exactly ‘72x72’ pixels, in .png format for iOS versions < 7.0.

When you build for distribution to the app store, you will get a .zip file.  That’s the file you will use to upload to iTunes with Application Loader.  You get the .app file only (lets forget the .dSYM file for the moment) if you’re using a development profile.  Once you start using a distribution profile (either AdHoc or For the Store) you will get a .app file and a .zip file.

The .dSYM file is there for debugging purposes and could very well be due to the facebook plugin.  You can ignore it.

When installing to your device, we recommend using Xcocde with your device tethered and install the app that way.  You have access to the device’s console log for debugging and you don’t have to sync your device.  You can make screen shots and look at created files in the app’s sand box.  It’s faster and has more features favorable to developers.

Rob

Thanks rob!  I just realized that i did not have all the icon formats done and that’s the new error.  I will get them done and try again.  Hopefully it will work.

Hi Rob,

So, I was able to successfully load the .zip file generated by corona through to the application loader.  But, in itunes connect, I get an “Invalid Binary”  Could this be related to the .dSYM?

I just saw the apple message:  

We have discovered one or more issues with your recent delivery for . To process your delivery, the following issues must be corrected:

Missing 64-bit support  - Beginning on February 1, 2015 new iOS apps submitted to the App Store must include 64-bit support and be built with the iOS 8 SDK. Beginning June 1, 2015 app updates will also need to follow the same requirements. To enable 64-bit in your project, we recommend using the default Xcode build setting of “Standard architectures” to build a single binary with both 32-bit and 64-bit code.

Once these issues have been corrected, you can then redeliver the corrected binary

The dSYM file is never used.  Please ignore it.

As for the 2nd message, what version of Corona SDK are you using?  I’m guessing you are running 2015.2511…  The last public build.  Apple made a change, that requires a later version.  You can grab the latest daily build, to get past this.

See: https://coronalabs.com/blog/2015/01/21/update-on-corona-ios-64-bit-support-and-plugins/