I don't know how much you can help me because its under the NDA, but I recently updated to the OS 4 beta 3 xcode version. My project worked fine under 3.2 but under 4.0 parts are a not quite right I assume because it is still being developed.
Every other installation of the beta sdk I could go into the project settings and select the iPhone 3.2 sdk and then change the target iPhone OS in the top left of Xcode but not this one. If I select 3.2 it still loads on 4.0 it seems I only have the 4.0 simulator and the iPad 3.2 simulator.
Any ideas how to get the 3.2 Simulator back?
Download the 3.2 sdk from the iPhone
Program Site.
Install it in a directory seperate
from the 4.0 beta sdk.
Use the xCode in the 3.2 directory
for access to the current sdk
versions, and the Xcode in the 4.0
directory to play around with 4.0
Remember if you want to submit an app to Apple you will have to build it with a non-beta toolchain. I recommend never updating your sdk to a beta version, but instead keeping the beta in a seperate folder.
It would seem that Apple has not included the older iPhone simulators in the latest beta version of the SDK. There is almost a 1GB dif between the two installations.
There may be a way to add all the old simulator and device SDKs by installing all the packages in the old version of the SDK (the newer one is missing the folder) but after trying to install just the ones I needed with no success I just reinstalled the old Xcode instead which fixed the problem.
Related
I'd like to ensure some backward compatibility for my apps by compiling them using the older SDKs to test for newer classes and methods. However, Xcode is only available with SDKs for the latest iOS versions.
I've downloaded and installed the iOS 3.1.3 SDK (using the method described here) and that works fine. My code is full (not so full :-) ) of __IPHONE_OS_VERSION_MAX_ALLOWED, __IPHONE_OS_VERSION_MIN_REQUIRED and such respondsToSelector.
This works right now for the iOS 3.1.3 SDK, but what if in the future I wanted to repeat this process with the 4.0 SDK? Is there a general process for installing older SDK versions in the latest Xcode?
You can't install old 3.1 SDKs on Xcode 4. You can set the Deployment target lower to allow testing on devices running older OS versions than your current SDK installation. The only current way to completely ensure backward compatibility, while running more recent versions of Xcode, is to keep a device that runs iOS 3.x, and test on that device. (...because it is claimed that the old Simulators/tools sometimes actually allows APIs that won't run on an actual device with an OS of the same version).
Other methods include installing the different versions of iOS developer tools in a separate Developer_XYZ directories, and or keeping around a bootable HD with the older iOS developer tool installation (say Snow Leopard with Xcode 3.x, since Lion might only support running Xcode 4.x).
For whatever reason (I had to do it to debug an Apple bug), if you still need to install an older SDK to your existing Xcode, follow these steps :
Install the older Xcode package
Copy the older Xcode SDK to the new Xcode
Example
(/old/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk to /new/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs)
Restart your 'new' Xcode
You will see the old SDK in the build setting option (base sdk)
This is very similar to a couple of other questions on stackoverflow, but they all seem to be from last year and referring to lower version numbers.
I have:
xcode version 3.2.5
A distribution build with Base SDK = Latest iOS (currently set to iOS 4.2), iOS Deployment Target = iOS 3.2
I've tried the following without much luck:
Deployed to a device (not the simulator)
Setting the iOS Deployment target to 3.0, 3.2, 4.0, 4.1 and 4.2
Cleaned my xcode cache
Deployed through Application Loader and Organizer
Did a clean build
Reinstalled xcode <-- turns out this was the problem - need to check that it's the final version (ie, xcode_3.2.5_and_ios_sdk_4.2_final.dmg) and not the beta version
Tried finding a version of the SDK < 4.2 to install, but apple seems to remove all old versions from their developer site
I'm sure iOS 4.2 should be out of beta now, so I don't think this is the issue either.
Any other ideas? Is there any way of getting more information about the versions of the SDK that apple want?
Very frustrating indeed!
I had this problem yesterday and solved it by redownloading XCode from the developer center and reinstalling it. For some reason, the dmg file on my disk was from 19th of November (no, it was not a beta), and the release date of the SDK is 22nd on the iOS Dev center. Check if your local copy was downloaded before that. It just automagically worked after a reinstall. I built the binaries against SDK 4.2 and set the deployment target to 3.1 if that helps.
I am not sure at the moment, did apple rerelease SDK 4.2 with XCode 3.2.5 at some point without changing the version? Anyway, hope that helps, it worked for me.
i have download Xcode SDK 4.2(xcode_3.2.5_and_ios_sdk_4.2_final.dmg) from Apple developer site and installed successfully . when open my old xcode project it shows baseSDk missing ,when i try to change project setting ,i have found and set base SDk as 4.2 it works fine
my problem is ,in Base SDk list it shows
(iOS 2.1, iOS 2.2, iOS 2.2.1, iOS 3.0, iOS 3.1, iOS 3.1.2, iOS 3.1.3, iOS 4.2)
There is no iOS 4.0 and iOS 4.1 (which i have used before 4.2). anything wrong in my installation???? Plz help me to correct my mistake
Thanks in advance
This does happen. I generally just use the latest SDK as base SDK. You support the latest version and forget abt the older versions[apple style]. This way your app can take advantage of all the latest functionality.
One thing you must remember is that the Base SDK is different from the deployment target.
base SDK is the latest SDK your project will use and support.
deployment target is found in target->getInfo; this is the minimum version that your app will support.
4.2 is a free upgrade and most of them would upgrade, so i'd set the deployment target as 4.0 or at the least 3.0. who uses 2.x anymore?
if you really want 4.0 and 4.1 as well, you have to install the old 4.1 GM as a parallel Xcode IDE or follow this link and get support for all the versions in a single XCode IDE.
http://chris-fletcher.com/2010/08/28/howto-install-iphone-sdk-2-0-3-1-for-xcode-3-2/
I'd suggest building using 4.2 but follow the link and install all the simulator SDKs for old versions so that you can test the app on those versions of the simulator.
Nothing went wrong here. That's how Apple forces the developers to always use the latest SDK to develop.
I am currently using XCode 3.2.2 and iOS SDK 3.2. With these I can produce binary which works on iPhone 3.1.3. If I upgrade to XCode 3.2.4 and iOS 4.1, would I still be able to build binaries for iPhone 3.1.3 device? If no, can I install both, or it's tricky?
Eiko is correct, what's more I believe that apple will no longer accept applications built with pre 4.x SDK.
To get this set up you need to change the following settings
Set the "Base SDK" in your projects settings to the newest version number of iOS whose features you may want.
Set the "iPhone OS Deployment Target" to the oldest version number of iOS that you will support.
Courtesy of CocoaWithLove
Regarding installing multiple versions, it's not tricky... just awkward. The release versions of XCode are installed into the /Developer directory. To install multiple versions you need to move the /Developer directory to something else e.g. /OldXCode and then install the new version (Which is put into /Developer)
Hope that helps
You can, and you should, always use the latest SDK.
You can easily build agains 4.1 and still target 3.x - in fact most developers do this at the moment.
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