views:

749

answers:

3

I downloaded a pre-release version of the iPhone SDK and tried to update one of my existing apps using a binary I built with it. Obviously you are not supposed to do this but I had forgotten about the warning when I installed the pre-release SDK. Anyway - I have two questions:

  1. Can I simply set the base SDK to an earlier version in the build settings and get around this problem?

  2. If not, then what should I do?

+5  A: 

You need to download the release version of Xcode with the release iPhone SDK. You can't use the SDK downloaded from the iPad beta version for any release products.

Just go to http://developer.apple.com/iphone/index.action and click on iPhone SDK 3.1 and download it. Then build your app bundle with that and submit it to Apple.

Brandon Bodnár
You can install the SDK's in two different directories. So you can use both the beta stuff and the production stuff. Works like a charm.
bartvdpoel
+2  A: 

Before you download a pre-release version of the SDK from developer.apple.com, there are several prominent warnings, one of which clearly states that pre-release versions of Xcode / iPhone SDK can NOT be used to build production binaries. So the answer to 1. is an emphatic no.

As far as I can tell, the only option to be able to build production binaries that iTunes Connect will accept is to delete the pre-release version of Xcode / iPhone SDK and re-install the older stable version.

Prairiedogg
+1  A: 

If you upgraded using the beta download (as opposed to installing on a fresh box that has never seen SDK or Xcode), set the base SDK to a released version of the OS. Compile a Distribution build, submit to the app store. The old SDK is still there, so that will get used. All of the prominent warnings I have seen state the the SDK cannot be used, without mention of Xcode.

Before anyone scoffs, note that I submitted an app on March 13 using the version of Xcode (3.2.2) included in Beta 4, setting Base SDK to 3.1. It was approved on the 15th. I've also done this during the 3.0 beta for 2.x apps.

EDIT: on the other hand, acceptance apparently isn't always guaranteed (note that this person had also submitted an app that did get accepted): http://stackoverflow.com/questions/2466399/the-binary-you-uploaded-was-invalid-a-pre-release-beta-version-of-the-sdk-was-us

mikestew
I've actually had a similar experience. I submitted a binary with an earlier pre-release and had it accepted. However I think things may have changed with the most recent pre-release, iPhone OS 3.2 beta 5, which is the one that gave a rejection today. Either that or they added stricter validation on the server side.
Prairiedogg