I'm having the same problem ... had an app approved last Friday 10th (originally built in CS5 under the beta program.
Now, have recompiled .ipa file under CS5 only to find iTunes connect will no longer accept uploads (in classic Apple bastardry, it forces us to use a Mac!). Downloaded the "Application Loader" for mac which will neither accept the following >
.ipa files by themselves throw this error "Unable to unzip application"
.ipa files renamed to .zip throw this error "Unable to unzip application"
.ipa files put inside a zip throw this error "Unable to find an application"
Anyone have any idea how we're supposed to upload new versions of our apps onto the app store? This is a pretty big drama so any help is appreciated!
Oliver, the best that I have been able to do so far is to:
rename the file to .zip on my pc
extract the Payload directory
transfer that over to a Mac.
compress the file on a Mac.
give the compressed file to the Application Loader
which then fails because the CodeSignature is a file, not a symbolic link.
I got one step further this morning ... after transferring the Payload to the Mac. ( I put it on the desktop ), open a terminal on the Mac. and type the following commands to re-create the symbolic link.
ln -s _CodeSignature/CodeResources CodeResources
then zip up the Payload using the Mac. compress utility
and give the .zip file to the Application Loader
I still have a problem of an invalid signature ..... but at least the structure of the directory is ok
Yesterday I spent the day downloading the latest Flash CS5 to my Mac. (and then updating it to the latest version)
Doing all the building in the Mac., I had to rename the .ipa to a .zip file (used the mv command in a terminal window), I looked inside and the symbolic link is preserved on the Mac., so you don't have to deal withy that problem. Zip the file up again, and I was able to present it to the Uploader.
I still have the unacceptable signature file problem, so tomorrow I will go through the process of getting another distribution file etc.
Had a breakthrough this morning. I basically had to revoke all my certificates and create new ones again, both developer and distribution, new .p12 file and so on and rebuild.
Zipping up and extracting the payload then transferring to Mac and trying those terminal commands did the trick.
It's now uploading to the App Store. I think they've changed something in the certificates since my originals were issued.
Thanks for your help, hope your app gets submitted soon. Oliver
I finally got it to work. Im using a PC so I had to have a friend upload it. Failed the first time, worked the second.
I revoked my cer's and recompiled the application. I sent the .ipa via email to my friend. Told him to rename the ipa to zip.
He had to unzip it with 7zip and then zip it with the Mac default compression application. Then upload it with the .zip extension.
Now waiting for approval.
Thanks for the help.
I had almost the same problem. I'm on OS X though. I have my issue solved but it took a lot of trial and error. There were enough clues on this thread though to get me there so thanks everyone. Here's what I went through and what I've discovered:
I compile with Flash CS5
(I was trying Christian's way on the commandline but I forget why I couldn't get it to work, must try it again now. ref:
This creates my .ipa file. I don't know if I need to use the commandline, but I did in order to rename the .ipa file to a .zip file. I then double clicked the .zip in the Finder which unzips it with the default OS X app, not 7 zip or something third party. This produces a folder called Payload. If my swf is set in Flash to publish to Main.swf, then inside Payload I see Main.app
I zip Main.app by right clicking it in the Finder and select the Compress option, again, default OS X compression stuff.
This is the correct way to create the ipa file, and produce the kind of zip file that Application Loader wants.
Along the way, I encountered some other distracting problems. I'll explain those now, but they are not related to the actual ipa/zip/unzip problem.
I had two errors, one about a bad bundle ID. This was in fact a typo I had by one letter. In my case it was ca.abcd.abcs in iTunes Connect, and in Flash CS5's settings, it was ca.abcd.abc. That was a forehead slapper I tell you.
The other error was my app not being signed with a proper certificate. I knew I was using my app store certificate, not my dev certificate (this is important btw). I tried revoking my certificate in the app store as @
Hope this helps!
The app store cert and dev cert are different things and created in different areas in the apple developers site. You have to pay for an app store distribution cert. The export you described to make a .p12 from your dev cert is the same process you need to take starting with your distribution cert. In the end you'll have 2 .p12 certs. There's even a 3rd kind, for ad-hoc distubution that you can set up then export as a 3rd .p12 but that's only for distributing to other devices that you want to provide your app to without using the app store, FYI.
In the iOS Provisioning Portal at developer.apple.com, click on Certificates on the left, then there are tabs at the top. The left one is for Development (not app store), the next one is for Distribution (to App Store or ad-hoc). Click Distribution. Make sure you have a cert set up there, then once you see it there, click the download button next to it. Import that cert into keychain. You might also need to import it into xcode, can't remember if that's necessary or automated. Then you'll have the distribution cert in your keychain and will be able to export it as .p12.
I've since done a little more experimenting. For the zip/rezip process, I can do it all in the finder. I don't need to use the command line to rename my .ipa file to .zip. I can also confirm, that Christian's way (http://blogs.adobe.com/cantrell/archives/2010/09/packager-for-iphone-refresher.html) of creating the .ipa file from my swf works on the command line – the change for me was that the app-xml is quite different between the example one I had that came with the air sdk vs the one that the Flash CS5 Packager generated for me. I'm not sure that the schema is different per se, but at a glance the one that Flash CS5 created for me is much more pared down, less nodes. Therefore, perhaps the command line way of doing it was getting messed up by a bunch of nodes I had in there that apply to other AIR targets but not to iPhone targets. Like, I filled in a node that doesn't apply to iPhone so it got confused and stopped, or I was missing certain critical parts.
@Adobe What I feel is really missing is a document online that clearly spells out each node in the application descriptor xml to say what it's for, what's values can be, and when to use it vs when to omit it. For example, one node might apply to Android, but not to iPhone. Or might apply to OS X desktop but not iPhone or to iPhone but not Desktop...Another nice to have would be that the compiler would be more descriptive about a missing or ambiguous/invalid node/node value etc. If such a document exists, please point me to it! It would be awesome to even make an air app that generates this kind of application descriptor xml, which I'd do myself if I knew more about the xml schema rules.