How to get older SDK and do I need to? - iphone

I have OS 10.6 on my mac. I started with iphone SDK for snow lepard which builds for SDK 3.0 to 3.1.2. I'm ready to submit my app to the store. I'd like older iphones to use it as well. I can't find Apple's link for SDK 2.2. Only the link for the 3.1 sdk.
Do I need to release the app built with 2.2 ? If so where can I find it?
Can iphone users update the OS on their phones?
Thanks,

Actually, on my mac, (10.6.2) iphone sdk will build 'down' to 2.2.
And yes, iPhone users can upgrade (and downgrade) their OS. -- but you knew that since you've got an iPhone for testing right?
:)

In the XCode, you can either specify which SDK to use to build your application or which OS version to use to test your application. See this guide for more details.

Related

iOS 4.3.1 on the phone - does it work with XCode 3.x ? or only 4.0.1?

I upgraded my iPhone to the latest OS (4.3.1) yesterday, and noticed there is no corresponding XCode 3.x release, only a 4.x release (4.0.1).
Since upgrading I am getting warnings when I try to install apps on the device using my development certificates (Application failed codesign verification).
Not sure if the OS upgrade on the Phone and the error message are related, so I'm just asking the question if anyone else had this happening?
And are we supposed to use XCode 4.0.1 when we develop for the 4.3.1 iOS release or can we use a 3.x version as well?
The Xcode version number isn't important, but the SDK version number is. You can get the latest SDK with either Xcode 3.2.6 or Xcode 4.0.1 at the time that I'm writing this.
You can still download the XCode 3.2.6, it goes with the SDK 4.3, and it is free to download.
You can try with XCode 4 as well, but you have to either to have an iPhone or Mac Developer account (99$/year) or you need to buy it from the AppStore
It still works, however of you first attach your iPhone to Xcode it will ask you to download the debugging symbols off the phone. Answer Yes to this question and you are ready to go.
However there is one more thing: usually Apple makes restrictions about the SDK you should use when submitting apps to the store. So if you want to submit an app it could be that you have to use the most recent SDK.
Deploying an application directly from XCode 3.2.6 on a device where iOS 4.3.1 has just been installed won't work.
First, you need to open XCode's Organizer window and ask to collect information from the device. Then it will work fine.

Which iPhone SDK to use for compatibility

i'm writing my first iPhone app with aim to upload it to the AppStore and don't understand one thing:
Most popular games on the AppStore have compatibility with iPhone OS 3.0 or later. I have currently installed iPhone SDK 4.0 i believe.
I want my app to have the same compatibility starting from 3.0, do i have to install and use in development an earlier SDK, like 3.0 to achieve that goal or i can somehow use the latest SDK?
Thanks for any help!
You should always build against the most current SDK, that is 4.1 at the moment. You can set your minimum requirement differently though, i.e. 3.0.
To be able to upload your application to appstore you must build it using SDK 4.0 at least.
Then in build target settings you can specify minimum OS version your application can be run on - check "iPhone OS Deployment Target" setting.
Remember that if you use some APIs that are available not on all OS versions you support you should do run-time checks for them to avoid application crashes.

Simulate iPhone 3.0 with SDK 4.0

i have xcode 3.1.3 and xcode 3.2.1 installed
For sure now I use 3.2.1 with Sdk 4 to develop new apps.
But what if I like to test a App compiled with sdk 4 on a
simulated iphone that would just have 3.0??
As BaseSDk i use 4.0 and as target 3.0
In xcode 3.1.3 i could select a simulator down to 2.x but with sdk 4.0
i only have the option 4.0 iphone or 3.2 ipad
Example> i know iAd is not supported before 4.0 so I set the
framework to weak. But just to be sure all works fine I really
would like to test my app in a simulator that simulates an iphone with 3.0
thx
chris
The new simulator does not seem to be able to run the old simulator OSs (3.2 being the oldest it'll run). I tried moving them over from old SDK installs and several variations and "no go".
You can check that you aren't using methods defined in the new SDK, when you set the base SDK to 4.0 but set the Deployment to to 3.1.3, for example. For a blog post on how to do this see this blog post, and note my comment on an easier way to do the last two steps (no need to edit the project file as a text file).
inside the iphone sdk dmg file, there should be a folder called packages. in it, you'll find packages like iPhoneSDK3_0 and iPhoneSimulator3_0. Install them to be able to use them in xcode.
Correct me if I'm wrong, but I think a device with 3.0 installed can't even run apps compiled with 3.2 or 4.0. Furthermore, Apple now only accepts iPhone apps (including updates of existing apps) linked against the 4.0 libraries, which won't run on OS version 3.0 devices.
So why do you want to test your app on a 3.0 device?
Try setting the architecture you want to build for in the Xcode project preferences and rebuilding.
If this doesn't work, completely uninstall Xcode and downgrade. You have to completely uninstall because your system must have updated the frameworks for 4.0.
Hope this helps

App that compiled and worked in SDK 3.1.2 crashes with SDK 4, Xcode says base SDK missing

I developed ipod sdk application in iphone sdk version 3.1.2.Its work well in ipod.Now i build the app and installed application via itunes in iphone4 , its not work well.It make crashes a lots of time.
I upgraded the sdk version to 4.0. But when i open my application it says base sdk is missing.
Can any one help me ?
Thanks in advance...
Can i revert my iphone os 4.0 to 3.1.2...?
It's seems the previous SDK versions have been removed by Apple. Since you have a paid developer account, you should be able to download the previous SDK Versions separate from Apple's Developer site.
regards

If I install the 3.0 SDK, can I still make 2.0 compatible apps?

I've been putting off installing the 3.0 beta SDK in case I can't make apps to target 2.0. If I install 3.0 on my computer and iPhone, will I still be able to submit apps to the app store for users with 2.0 iPhones to download? Will I have to wait until 3.0 is released to submit more apps?
Actually, I suggest testing on OS 3.0 as it's a requirement your app doesn't break on the new OS.
"New iPhone applications will be
rejected unless they are ready for
Apple's forthcoming iPhone 3.0
firmware upgrade, developers have been
informed."
You can still build for 2.* but I can see how testing on only one device can make you nervous. There is no way to rollback to a previous OS once 3.0 has been installed. So, if this device is also your everyday cell phone, make sure you accept possible bugs. (though I haven't heard of any seriuous problems. OS 3.0 is worth it)
As for the issue you address. Apple says:
"iPhone SDK for iPhone 3.0 can not be
used for submitting iPhone OS 2.2.1
applications to the App Store."
I think they didn't express themselves too well. While technically spoken, they are right, you just have to select SDK for 2.2.1, and you're good to go.
Yes you can build 2.* apps. No you can't submit pre 3.0 apps to the app store. I can't paste the link for you since I am considered a new user, so just google "iPhone 3.0 app submit".
I understand that you wrote this a while ago and you've already accepted an answer, but I have some more advice:
You should install two copies of the SDK, the latest stable version (in "/Developer") and the latest beta version (in "/Developer Beta" or similar), as per these instructions.
For building 2.x applications, you set your "Base SDK" to 3.0 and your "iPhone OS Deployment Target" to 2.2.1, as per these instructions.
You can get it free or roll back if you do not like the new software at http://www.felixbruns.de/iPod/firmware/
download then follow these steps
1.) after it downloads open itunes and plugin your ipod/iphone
2.) Hold shift if on windows (Option key on mac) and then click resotre
3.) Select the ipod file and then wait for restore
4.) you will need to set up as new ipod (it will be slow if you restore from backup
The installation of the 3.0 SDK mentions weaklinked frameworks --
The Xcode UI now allows you to
designate a library or framework as
weaklinked, to support building with
newer SDKs while targeting older OS
versions.
I have yet to accomplish this, but will update once figured out.