I was running Xcode 4.2 on Lion 10.7.2 and I have a few applications that needed updating to the Lion sandbox, so I can resubmit them to the Mac App Store (Mac, not iOS). Somewhere along the way I had a popup to update to combo update 10.7.3 and after that everything went wrong.
Verifying and submitting apps was fine if the archive was compiled in 10.7.2 but if it was compiled after the 10.7.3 update it can no longer verify the app. That is right, under 10.7.3 I can still verify apps if they were compiled before the upgrade. Anything compiled after will give me this:
"This bundle is invalid. Apple is not currently accepting applications built with this version of the OS."
After each of the following attempts, I have cleaned, rebuilt the archive, and tried again to verify or submit the application through Xcode Organizer and the Application Loader standalone:
I have tried upgrading to Xcode 4.2.1 by doing a complete uninstall, reboot and install, but nothing.
I read this similar thread and tried using the new Application Loader 2.5.1 and made sure there was no other Application Loader on the system but that didn't work either. Both the the Application Loader via Xcode and run standalone give the same error.
From another thread have tried changing the base SDK to 10.7. I was previously at 10.6 so I can still support Snow Leopard, and yes you can submit sandbox apps built against 10.6 that work in both Lion sandboxed and SL non-sandboxed because I've done it with two apps very recently). Unfortunately, built with 10.6 or 10.7 SDK makes no difference with this error.
I've read that the same error happens when devs try to submit apps built on a beta platform, but I have not been running beta versions of anything, nor have I in the past since I bought this MacBook in August.
Any ideas would be greatly appreciated. Thanks in advance.
Like incarna, I do not have a solution, but I do have a workaround that allowed me to submit to the store. It might be safer to do because there's no tricking involved. This is only useful however if you're building for 10.6, but you can still implement the 10.7 sandbox and keep Snow Leopard compatibility.
If you have another Mac with Snow Leopard, or happen to have dual boot with SL you can install Xcode 4.2 for SL. Dual boot with SL is tricky BTW, because the SL install disc doesn't recognize the partition scheme on Lion machines. I had to use firewire from another Mac and install it to the MacBook in target mode. This is something I've previously done when I first got my MacBook. Google it if you want to know how.
Anyways, I copied the project to the SL partition and opened it in Xcode 4.2. One thing you'll notice is that the GUI doesn't include entitlements or sandbox checkbox options, but you can still see the entitlements and container-migration plist files in the project (assuming you set it up in Xcode under Lion previously). I guess even without 10.7 the compiler with Xcode 4.2 under SL still knows what to do with those files.
I recompiled the project under Xcode 4.2 in SL and verified the archive. All good. Then I shared the app as a .pkg file and saved it to my Lion partition. I installed the .pkg and ran my application in Lion. The sandbox container did migrate properly and the app functioned as expected. After verifying it worked, I booted back into SL and submitted the application.
There you have it. Proof that sandboxed apps can be compiled and submitted in SL, which is still a valid and legitimate platform to deliver from.
Okay, I got it working in a way that's completely unsafe...so I can't really say that this is a great way of fixing this problem.
Anyways:
I took a look at the SystemVersion.plist, and it turns out our build for 10.7.3 is 11D50b (b being beta of course). Of course, 10.7.3 wasn't advertised as a beta...if it was I wouldn't have upgraded.
Basically I changed the SystemVersion.plist in /System/Library/CoreServices to:
You can do this with TextEdit after changing permissions, or if you're familiar with nano, simply:
As always, be extra careful when doing anything with sudo.
From there, I restarted Xcode (make sure you do this, I tried without restarting Xcode and it wouldn't work), cleaned, archived and was then able to submit successfully.
Immediately after this, I shut down Xcode and made sure to change everything back to how it was before:
I would absolutely not try restarting or anything funny like that, dunno what might happen. But this worked for me.
Ok i had the same problem and i also had installed Xcode 4.3 already, because i expected that will solve that issue. Xcode 4.3 requires 10.7.3 so it is not possible to change the SystemVersion.plist to 10.7.2 but just removing the b in end of 11D50b and restarting Xcode let me submit my App.
Edit the values of plist file to upgrade your OSX version to 10.7.4 using below command
sudo nano /System/Library/CoreServices/SystemVersion.plist Original Value:
Build Number: 11D50 ProductUserVisibleVersion & ProductVersion:10.7.3 New Value
Build Number: 11E27 ProductUserVisibleVersion & ProductVersion:10.7.4 Ctrl+O for saving, Now you can install latest XCode
http://cocoauser.wordpress.com/2012/08/03/how-to-install-latest-xcode-in-10-7-3-lion/
Edit 12 March 2012: I contacted Apple directly using a paid support ticket. It turns out that this was a bug within the Mac App Store. Their team has fixed the problem. Submitting With 11D50b should now work.
Solution to the problem on OS X 10.7.3 with Xcode 4.3
You will need to change the SystemVersion file, this can be done with the command sudo nano /System/Library/CoreServices/SystemVersion.plist (ctrl o, to save)
My current file looks like this:
Change 11D50b to 11D50, restart xcode and clean your code. Then submit again. After submitting, remember to change the file back to the original.
Just a quick update that after Xcode 4.3 restarting Xcode will not work since it detects that can only run on 10.7.3 But changing the plist file as explained and then cleaning, archiving and distributing seems to work. I am currently waiting for my app to be approved.