This is my second app being submitted to the Mac app store so I thought I now knew what I was doing, clearly not as I’m getting strange errors with the Application Loader V2.5.1, is anyone else having trouble or does anyone know what might be wrong? The 2 errors I get are:-
X The application is invalid. The executable ((null)) is missing a required architecture. at least one of the following Architecture(s) must be present: i386, x86_64
X Package “com.mycompany.${PRODUCT_NAME:identifier}”: An incomplete bundle at “MyGame” in payload is declared as an upgrade in PackageInfo; an upgrade bundle must be complete.
I’ve done all the plist fiddling, made the icon, tried an intel only build and now a universal build in Unity all to no avail.
It’s not an upgrade its a version 1.0.0, the .app contains the executable etc so what can be wrong?
Please help as I can’t submit until this is fixed.
If you don’t use 3.5 your app will likely be rejected. Apple requires a close button on the game window, which 3.4.2 doesn’t support. You also need to handle fullscreen mode by either adding a quit button or a toggle that escapes fullscreen mode.
As for your first error message, it sounds like you’re choosing a Universal build, which I don’t believe is supported on the Mac store (and isn’t available in 3.5, so this problem will likely go away).
Second one, I don’t know… unless you’re trying to do an Upgrade build. Try doing a Replace.
Oh, and make sure you make a backup copy of your project before opening it in 3.5, just in case something goes horribly wrong during import.
Yes, solved it 2 days ago and uploaded it fine, tying to remember the fix…
I’ll need to go on the Mac to cut and paste what I did…brb.
ok the problem was the name I gave the app in Unity didn’t match the name of the file.app that it created.
In my case in unity player setting under Product Name I had Frontal Assault. but the name of the .app file being created was Full Frontal Assault. Annoyingly codesign doesn’t tell you id didn’t do anything it just silently does nothing but says it did.
So using 3.5.5.f2 and Xcode 4.4.1 build you app in unity with the Mac store verification enabled and use player logs disabled. Run terminal and type:
codesign -f -v -s “3rd Party Mac Developer Application: YOUR NAME” --entitlements
“/myapps/ios/Assault/Assault/Full Frontal Assault.entitlements” “/myapps/ios/Assault/Assault/Full Frontal Assault.app”
productbuild --component “/myapps/ios/Assault/Assault/Full Frontal Assault.app” “/Applications” --sign “3rd Party Mac Developer Installer: YOUR NAME” “/myapps/ios/Assault/Assault/FullFrontalAssault.pkg”
If this doesn’t work follow what I did to find the problem thus:
turn off use mac store validation.
Build game in unity
Run the resulting .app and make sure it works.
do each of the 3 stages above one at a time and make sure it runs after each step.
Whichever step it fails on is the problem and both times this has happened to me it has been due
to my pilot error in naming the app. (Make sure your app has a .app on the end AND make sure you have .app on the end of the file name on the code sign.) let me know how you get on.
Hi Stingman, I was just about to upload my plist but looks like you don’t need it. Prepare for a frustrating ride, I’ve now got 3 things on the mac app store and each and every time I try and upload something it goes wrong, each time for a different reason. The CODESIGN_ALLOCATE problem is a new one introduced when you upgraded to mountain lion. I just wish Unity would at the very least make sure it filled the plist file in correctly and created the icns file with all the required icons, in fact you shouldn’t have to type all that shit in using terminal, there should be a deploy to mac app store option.
Hi arkon Can you please post the entitlements plist file. I uploaded the application and got rejection mentioning to sandbox application. The app store message was as follows :
We’ve determined that this version of the app is does not only address bug fixes and new OS X feature adoption so it must implement sandboxing as of June 1, 2012. See App Sandboxing for more information, links to essential video and documentation to learn how to sandbox your application.
Hello i read about this problem: X The application is invalid. The executable ((null)) is missing a required architecture. at least one of the following Architecture(s) must be present: i386, x86_64.
I tried to submit my Game while using OSx Mountain Lion, Unity 3.5.6 and get the error above when submitting with Application Loader.
Then i read about Universal binary - Wikipedia
So do i understand correctly…it is only possible to send the codesigned apk file with a Universal build of older version of Unity and for example OSx Leopard because it is not possible to build the architecture for Universal Binarys from Unity 3.5.6(newest version)???
So the question for me is how to do on OSx Mountain and Unity3.5.6?
I hope somebody understands my problem.
By the way… i changed my system only to be able to create high resolution .icons (inkl. 1024x1024). And now its so hard to submit a new game with new systems:-(((
My idea is to start a Unity older version where i can build a universal app and try again… i hope thats the way. But maybe somebody just had this problem too and knows a better and faster way?
i am not sure but i think this error: X The application is invalid. The executable ((null)) is missing a required architecture. at least one of the following Architecture(s) must be present: i386, x86_64
…is not a problem with sandboxing? Or i am wrong? Thanks
So i tryed also signing the app with entitlements for sandboxing and get the same error when building the game with Unity 3.5.6:
X The application is invalid. The executable ((null)) is missing a required architecture. at least one of the following Architecture(s) must be present: i386, x86_64
OK now i found the solution and it is uploaded succesfully to AppStore. In my fault i forgot to install the “Command Line”-Tools for xCode 4.5.1 and for Mountain Lion. So the code signing with entitlements did not work correctly before. but i don’t understand the error message i386, x86_64 in relation to the problem. Anyway i hope it helps other Developer here. Don’t forget to install the Command Line Tools for xCode when update to Mountain Lion.
You can found the tools when opening xCode 4.5.1 → xCode → Open Developer Tool → More Developer Tools
After i installed…i opened terminal:
codesign -f -s “3rd Party Mac Developer Application: your name” --entitlements HotRoulette3D.entitlements HotRoulette3D.app
and then
productbuild --component HotRoulette3D.app /Applications --sign “3rd Party Mac Developer Installer: your name” HotRoulette3D.pkg