Mac App Store Binary Rejection Question
Asked Answered
N

1

7

I had to change my application's name, it led to a rejection; after changing the name and the respective build settings I submitted the new binary to the Mac App Store with Xcode 4. Xcode uploads it without problem but a few minutes later the binary will be rejected with this message:

Unsupported Architecture - Application executables may support either or both of the Intel architectures:

i386 (32-bit) x86_64 (64-bit)

Other architectures may not be included in submitted binaries. Confirm that your Xcode project's build settings include those architectures and no others.

I triple checked the build settings, and they were the same ones (except for the Product Name) as the initial binary that worked. Would anyone have insight as to what may be causing this problem? I checked the Target's "Architectures" and "Valid Architectures" settings and they are correct.

By an off chance, would the fact that my app ends in an '!' cause problems? i.e."MyApp!.app"

Update: Thought of one more thing, does Apple require you use the latest Xcode version? I have 4.0.0 not 4.0.2.

Norrisnorrv answered 16/4, 2011 at 3:11 Comment(10)
Run lipo -info against your binary(ies) to see for which architectures it’s (they’ve) been compiled.Wagner
I'm getting x86_64 with the Unix Executable File.Norrisnorrv
Hmm, it looks like Apple might have assessed it wrongly, then. Or maybe there’s some bogus entry in the Info.plist file that makes sense only in other architectures? Or some other file in your application bundle…Wagner
Tried it numerous times, even with the Application Loader... May just need to contact Apple directly. ThanksNorrisnorrv
Found the problem after a day of trial and error... Turns out the Growl framework I had included in my application had PPC support, stripped out PPC from it and everything worked fine. No clue why Apple didn't complain about it the first time.Norrisnorrv
Thanks Avizzv92 for you request and these considerations. I have the same problem. After I read what you wrote, I think it is caused by a binary that I have included on which the command "lipo -info" returns: "x86_64 i386 ppc7400". Could you just tell me how did you stripped out PPC?Waltz
Found! ditto --rsrc --arch x86_64 --arc i386 /path/to/binary /path/to/strippedbinaryWaltz
I confirm: with this trick the submission worked fine! THANKS Avizzv92!Waltz
The check for PPC in frameworks has recently been added, it used to be possible to submit with it (though never with PPC code in the main executable).Muttonchops
@Avizzv92: Could you post your solution as an answer (and accept it), so that this question no longer looks unanswered? It's fine to answer your own question.Beadsman
S
1

Make sure you don't have any others defined in Valid Architectures.

enter image description here

Stepp answered 30/8, 2011 at 17:46 Comment(3)
You mean this "Valid Architectures" field be blank? Or is "i386 x86_64" ok?Tallowy
i386 x68_64 should be there, not blank.Stepp
@wrightscs x86_64 I assume you're not referring to the Motorola 68000, though it would be awesome if you could be backwards compatible with those! < All in good fun.Graviton

© 2022 - 2024 — McMap. All rights reserved.