139

I still have Snow Leopard. I have Xcode 4.2 for iOS development. This morning I upgraded my iPhone and iPad to iOS 5.1.

But Xcode 4.2 is not detecting my device for testing. I could not find the iOS 5.1 SDK image on Apple's developer site, for Xcode 4.2.

I don't want to do upgrade to Lion to get XCode 4.3 at this time.

Will I able to use Xcode 4.2 (on Snow Leopard) for iOS development now?

Nina
  • 1,579
  • 2
  • 21
  • 51
jpsasi
  • 1,905
  • 2
  • 18
  • 29

15 Answers15

213

To get Xcode 4.2 on Snow Leopard to run code on a device running iOS 5.1 you can do this:

  1. If you have another Mac running Lion and Xcode 4.3.1 you can copy the files from:

    /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/5.1 (9B176)

  2. Place the copied files in the equivalent place on your Snow Leopard Mac: probably

    /Developer/Platforms/iPhoneOS.platform/DeviceSupport

  3. Similarly copy the iOS 5.1 SDK files found in this directory:

    /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk

  4. Also copy 'version.plist' from the Lion machine in the iPhoneOS.platform folder to the Snow Leopard machine.

  5. Re-start Xcode on the Snow Leopard machine and re-connect the devices and it seems happy enough.

If you don't have access to a machine with Lion and Xcode 4.3.1:

  1. You can get the files out of the 4.3.1 DMG which can be downloaded from Apple here: Downloads for Apple Developers.

  2. Mount the DMG, Show Package Contents on the Xcode icon and drill down to

    /Volumes/Xcode/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport

  3. Follow the steps above.

You might find it more convenient to use Apple's proprietary ditto method (sudo ditto src dest) in the terminal window to copy the folders.

Note,this hack will also work for latest iOS 6 SDK.

Ajay Sharma
  • 4,509
  • 3
  • 32
  • 59
Richard Groves
  • 3,596
  • 3
  • 21
  • 21
  • 3
    Today i have upgraded my system to Lion. Thanks for the Hack. – jpsasi Mar 09 '12 at 11:46
  • Thanks very much :) Worked perfect for me. At least I'll be able to develop with sl for some more time. – OnTheFly Mar 09 '12 at 15:12
  • Thanks, this is almost working for me but when I try to debug an app on the device from XCode it hangs on the launch image. This may or may not be related to the fact that I downloaded the .dmg twice and both times the checksum verification failed, so I skipped it and carried on regardless. – Dan Dyer Mar 09 '12 at 18:13
  • 14
    I fixed the above problem by also copying across the files in /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk. Thanks for this, I can now defer replacing my ancient Mac for at least a couple more months. – Dan Dyer Mar 09 '12 at 18:26
  • can someone explain this step here: then mount the DMG, Show Package Contents on the XCode icon and drill down to? – Vincent Bacalso Mar 14 '12 at 02:19
  • Drill down to: "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/5.1 (9B176)" – Mark Steudel Mar 15 '12 at 22:28
  • Thanks a lot. Dan Dyer's comment also helped. I'm now using iOS SDK 5.1 from Xcode 4.2 – aiham Mar 20 '12 at 02:13
  • Thanks a ton! I had the same problem as Dan Dyer, but copying the file from Dan's comment fixed it. – TheEnigmaMachine Mar 21 '12 at 20:01
  • be sure to also follow the advice to copy the `/Volumes/Xcode/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Develop‌​e‌​r/SDKs/iPhoneOS5.1.sdk` files from the DMG into your `/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/` (and the .plist mentioned in this answer), otherwise debug is fairly broken. You will also want to do a clean build of your project or breakpoints won't work – natbro Mar 22 '12 at 08:33
  • Richard Groves' method worked great for me - thanks. Plus with the debug issue posted by Dan Dyer, turns out that after waiting for 15 minutes (!) after app launch from Xcode, the debugger finally catches up and the app starts working... Not very practical, but keeps me working while waiting for the .dmg download... – SubG Mar 23 '12 at 16:56
  • 6
    @natbro - I still see the 4.3.1 dmg fine at https://developer.apple.com/downloads/index.action# and am currently downloading it. – SubG Mar 23 '12 at 17:02
  • Thanks Substance G, the other download links listed here were failing in various ways, but that page worked fine. – Craig Mar 25 '12 at 20:17
  • thanks @SubstanceG -- it does seem to be back, but seriously, it was not there for me then, though now it is :) still, other info still applies. – natbro Apr 05 '12 at 03:43
  • None of those DMG files at any of the links above would open for me on Snow Leopard - they all said invalid checksum. Luckily, I had an old USB harddrive and installed Lion on it. It doesn't recognize my Bootcamp partition (bad!), but at least I was able to grab the SDK and finish up my app. Thanks. – Lavamantis Apr 20 '12 at 06:51
  • Worked Perfectly for me!!!! I have 10 mac and it was hard to update them all for me just for a silly update done by mistake. You saved my life! :) I wish I could up vote 100 times!! – necixy May 02 '12 at 07:58
  • Works just fine with dmg of latest xcode 4.3.2 dmg and iOS 5.1.1 on xcode 4.2 (old mac mini does not support Lion) – Konstantin Salavatov May 23 '12 at 08:28
  • 1
    XCode 4.3.3 contains it as well and works great. Thanks a lot for this – Krym Sep 14 '12 at 11:23
  • Sweet! Snow Leopard, Xcode 4.2, running apps on iphone 3GS with iOS6 – John Lee Oct 25 '12 at 19:52
  • "iOS Simulator could not find the SDK. The SDK may need to be reinstalled." That's the error I have after following the instructions...." I'm trying to run iOS 6.0 in the simulator – Sr.Richie Nov 23 '12 at 12:34
  • @Richard Groves: is there any way to upgrade IOS 6 simulator for in xcode 4.2 snow leopard as like device SDK? – Vasu Ashok Nov 26 '12 at 07:27
  • This seems to work initially, but I get the following error when I attempt to switch between viewControllers when I test with my device: Error Starting Executable “AppName" Error launching remote program: failed to get the task for process 453. @Richard do you know why? – JRoss Jan 07 '13 at 02:08
  • I also installed the iOS 6.0.1 files from XCode 4.5.2.dmg @HenrikErlandsson, but I get the above error when I attempt to test on my device (iOS 6.0.1). Do you experience any problems? – JRoss Jan 07 '13 at 02:11
  • We tested this before the holidays. I can build fine for an Iphone 4S with latest 6.0.1 (10A523), but not with an Iphone 5 with latest 6.0.1 (10A525). We think the reason XCode can't green-light the device in Organizer has to do with the change in upgrading method (over-the-air, no files to download on developer.apple.com), but if someone succeeds we'd like to hear about it. – Henrik Erlandsson Jan 07 '13 at 07:48
  • It works but Xcode 4.2 but sadly doesn't with Xcode 3.2. Still, it did help me out in other project. :) +vote – Sufian Jan 15 '13 at 09:56
14

You have to get Lion, iOS 5.1 SDK is only for Xcode 4.3.1 which is only available for Lion.

... and your Xcode will not be able to build to your device if you have already updated it to 5.1 because it won't be on that version of Xcode's approved SDKs

Mick MacCallum
  • 129,200
  • 40
  • 280
  • 281
14

I'm working on this now. I have the same issue.

The MAJOR PROBLEMS here are that:

1) Apple never provided a warning dialog that this might disable people developing under Snow Leopard.

2) There is no easy way to undo this.

3) This should not happen on a point release update.

I've tried to install the previous ipsw from 5.0.1 for my Gen 4 IPod Touch from here: where to download ipod touch firmware restore links It will not install.

I've downloaded the Lion Xcode 4.3.1 from here (sign in as a developer first) Lion Xcode 4.3.1

And run some scripts from the Dev Forums here:

sudo cp -R /Volumes/Xcode/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/
sudo cp -R /Volumes/Xcode/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.1.sdk /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/

sudo cp -R /Volumes/Xcode/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/5.1\ \(9B176\) /Developer/Platforms/iPhoneOS.platform/DeviceSupport/
cd /Developer/Platforms/iPhoneOS.platform/DeviceSupport/

sudo rm -f ./Latest

sudo ln -s ./5.1\ \(9B176\) ./Latest

Unmounted the Lion DMG and restarted Xcode. This allowed me to test 5.1 in the simulator but broke every build to every device with a SIGABRT or link error.

I'm off to the Apple store to have them restore my device. If I get any more information, I'll let you all know. This has been a VERY EXPENSIVE and VERY UNPLEASANT surprise.

NANNAV
  • 4,875
  • 4
  • 32
  • 50
Alex Zavatone
  • 4,106
  • 36
  • 54
  • 3
    I entirely agree with you. Apple's behavior on this is beyond irresponsible. It tells you: they just don't care. – EdH Mar 22 '12 at 09:56
  • 3
    I used to love Apple before I became one of the poor bastards who had to develop on the iOS platform. – Alex Zavatone Nov 15 '12 at 15:38
8

Adding to Richards solution above, I found that if you also copy, from XCode 4.3.1 dmg...

edit: updated to correct path within dmg

/Volumes/Xcode/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Develope‌​r/SDKs/iPhoneOS5.1.sdk ~~ (entire directory tree)

to

/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/

XCode debugger will startup correctly (without all the error log and dumps)

ie:
===============================================================================
warning: Unable to read symbols from "dyld" (prefix __dyld_) (not yet mapped into memory).
warning: Unable to read symbols from "SystemConfiguration" (not yet mapped into memory).
warning: Unable to read symbols for /Developer/Platforms/iPhoneOS.platform/DeviceSupport/5.1 (9B176)/Symbols/System/Library/Frameworks/MessageUI.framework/MessageUI (file not found).
warning: No copy of dyld found locally, reading from memory on remote device.  This may slow down the debug session.
warning: No copy of <No file name> found locally, reading from memory on remote device.  This may slow down the debug session.
warning: No copy of <No file name> found locally, reading from memory on remote device.  This may slow down the debug session.
warning: Unable to read symbols for /Developer/Platforms/iPhoneOS.platform/DeviceSupport/5.1 (9B176)/Symbols/System/Library/Frameworks/SystemConfiguration.framework/SystemConfiguration (file not found).
warning: No copy of SystemConfiguration.framework/SystemConfiguration found locally, reading from memory on remote device.  This may slow down the debug session.
warning: Unable to read symbols for /Developer/Platforms/iPhoneOS.platform/DeviceSupport/5.1 (9B176)/Symbols/System/Library/Frameworks/MessageUI.framework/MessageUI (file not found).
warning: No copy of MessageUI.framework/MessageUI found locally, reading from memory on remote device.  This may slow down the debug session.
warning: Unable to read symbols for /Developer/Platforms/iPhoneOS.platform/DeviceSupport/5.1 (9B176)/Symbols/System/Library/Frameworks/AudioToolbox.framework/AudioToolbox (file not found).
warning: No copy of AudioToolbox.framework/AudioToolbox found locally, reading from memory on remote device.  This may slow down the debug session.
warning: Unable to read symbols for /Developer/Platforms/iPhoneOS.platform/DeviceSupport/5.1 (9B176)/Symbols/System/Library/Frameworks/iAd.framework/iAd (file not found).
warning: No copy of iAd.framework/iAd found locally, reading from memory on remote device.  This may slow down the debug session.
warning: Unable to read symbols for /Developer/Platforms/iPhoneOS.platform/DeviceSupport/5.1 (9B176)/Symbols/System/Library/PrivateFrameworks/SpringBoardServices.framework/SpringBoardServices (file not found).
warning: No copy of SpringBoardServices.framework/SpringBoardServices found locally, reading from memory on remote device.  This may slow down the debug session.
warning: Unable to read symbols for /Developer/Platforms/iPhoneOS.platform/DeviceSupport/5.1 (9B176)/Symbols/System/Library/PrivateFrameworks/FTClientServices.framework/FTClientServices (file not found).
warning: No copy of FTClientServices.framework/FTClientServices found locally, reading from memory on remote device.  This may slow down the debug session.
===============================================================================
Community
  • 1
  • 1
dklt
  • 1,703
  • 1
  • 12
  • 12
  • I think the path you mean is: /Volumes/Xcode/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs (which is a bit deeper than your post suggests - complicated hierarchy Apple's ended up with isn't it?) – Richard Groves Mar 13 '12 at 11:30
  • indeed, you are correct. updating post to reflect your correct path. cheers ~ – dklt Mar 13 '12 at 11:37
7

There is an answer here that also provides the copy of the simulator v 5.1. No manual operations. Just open the Terminal, copy and paste the provided commands.

http://www.iphonedevsdk.com/forum/iphone-sdk-development/100229-snow-leopard-sdk-5-1-a.html

prossel
  • 111
  • 1
  • 7
  • I followed both Richard Groves and @dklt's set of instructions. It did not work. But I fired the scripts given in this link and it worked like a charm – Vaishnavi Naidu Apr 03 '12 at 13:55
  • "This web page at www.iphonedevsdk.com has been reported as an attack page and has been blocked based on your security preferences." - I would be very careful :) – Roel Van de Paar Jul 12 '12 at 20:37
  • The whole http://www.iphonedevsdk.com site has been reported, not only this page. – prossel Jul 13 '12 at 06:49
5

You can use apps compiled for 5.0 on your 5.1 or 5.1.1 device by compiling them and manually dragging .app file to iTunes. Tried today on 10.6.8 and XCode 4.2.

Marcin Ignac
  • 59
  • 1
  • 4
  • This worked for me today. I'm on SL with xcode 4.2. [Mac OS X 10.6.8 (10K549). Xcode 4.2 (4C199). iPhone OS SDK 5.0: (9A334).] – martin jakubik Jul 08 '12 at 12:02
  • You can find the .app file in ~/Library/Developer/Xcode/DerivedData/{app name}/Build/Products/Deployment/ (thanks to http://stackoverflow.com/a/9673810/1208218) – Roel Van de Paar Jul 12 '12 at 20:57
  • And some more info here in terms of how exactly to get this all running: http://stackoverflow.com/a/11460561/1208218 – Roel Van de Paar Jul 12 '12 at 23:24
5

if you want to also add iphone simulator 5.1 to your xcode then copy

/Volumes/Xcode/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.1.sdk

entire directory to the following path =>

/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/

after you can also able to use iPhone simulator 5.1 to debug your application.

hchouhan02
  • 948
  • 1
  • 8
  • 18
  • 1
    I get the following errors when I do this @hchouhan02: Interface Builder XIB Compiler Error: "Command /Developer/usr/bin/ibtool failed with exit code 255" and Uncategorized: "Build task failed without generating error messages." – JRoss Jan 07 '13 at 02:45
  • Try this => quit xcode => open xcode => clean project after try to build project. – hchouhan02 Jan 09 '13 at 06:01
4

Download the iOS 5.0.1 firmware of your device on this link : http://www.iphonefirmware.com/firmwares-download.

And do a manual restore on iTunes.

I did it today (March 8) on my iPad 2 and it works, Apple still seems to sign this iOS version.I guess not for a long time, so do it quickly.

booker
  • 1,256
  • 1
  • 12
  • 18
3

It is not possible to use a 5.1 device on xcode 4.2, since you don't want to upgrade, you can use the organizer, select your device, and use the restore feature. You can google for the 5.0.1 version and use that one.

(although upgrading to lion is super cheap)

EDIT: Seems this is possible, scroll up for the highest voted answer.

Pochi
  • 13,391
  • 3
  • 64
  • 104
  • As Mountain lion will be released in couple of months, i dont want to upgrade to Lion now, Assuming that i should be able to upgrade to Mountain Lion from Snow Leopard. I guess i need to find a way to restore iOS 5.0.1 to my device. Thanks – jpsasi Mar 08 '12 at 08:06
  • you are welcome. It shouldnt be that hard to restore, Like i told you before, xCode provides the restore feature (found in the organizer menu window->organizer->devices->RestoreIphone). Btw dunno if you can go straight to mountain lion, as an example you have to pass trough snowleopard to get to lion from leopard. – Pochi Mar 08 '12 at 08:56
  • Apparently it will not be necessary to upgrade to Lion first and you can go straight from Snow Leopard to Mountain Lion – Roel Van de Paar Jul 12 '12 at 20:40
3

I am using Mac OS X 10.6.8 and Xcode 4.2 and also upgraded my iPhone to iOS 5.1. I needed to get a test version onto the device in a hurry yesterday but did't have the time to install Lion and Xcode 4.3.

I've been using TestFlight (www.testflightapp.com) for beta testing. I created an .ipa archive from Xcode 4.2 and was able to install it on my iOS 5.1 upgraded iPhone via TestFlight.

I know it's not an ideal solution but it helped me get out of a tight spot yesterday without resorting to hacks.

p.s. I'm not affiliated with TestFlight in any way.

egincyf
  • 31
  • 3
2

Xcode 4.2 seems no more available on developer.apple.com for snow leopard users :( also for registered paying iOS developer like me...

It seems that at the moment there is no legal way to get it...

gabry
  • 1,370
  • 11
  • 26
2

You must add the Symbols alias too..for example in /Developer/Platforms/iPhoneOS.platform/DeviceSupport/6.0 (10A403) you must add Symbols alias that point to /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk so xcode 4.2 can detect your ios6 device (tested on mac mini 1.5 intel core solo with snow leopard). Cheers

nsgulliver
  • 12,655
  • 23
  • 43
  • 64
Walter
  • 21
  • 1
  • In my case the `Symbols` alias was already there after I had copied the `DeviceSupport/6.0 (10A403)` folder from the Xcode 4.5 disk image. – herzbube Nov 15 '12 at 19:21
1

I think you can test ios 5.1 device in Snow Leopard as explained in above posts. But it is always safe to upgrade to Lion and use the official sdk release. Because we cant predict what issue could happen if we do some "Tricks" on our machine to make it happen and it may happen when in your most unwanted time (like when submitting to appstore). :)

rakeshNS
  • 4,227
  • 4
  • 28
  • 42
1

As of the date of this writing 3/20,2012, Apple is not letting people install previous ipsw files from 5.0.1. If you upgraded your device to iOS 5.1, like I did with my gen 4 Touch, then you either have to get iOS 5.1 running in Xcode 4.2, or you have to revert your device to 4.x, or you replace your device.

I brought my touch to the Apple Store and they replaced it.

If you install the ipsw for 5.0.1, Apple's servers will state that this is not allowed for your device and you will be unable to revert. You'll have to try 4.x to your device or make sure that the iOS 5.1 SDK is running in Xcode 4.2.

Alex Zavatone
  • 4,106
  • 36
  • 54
0

I have found how to solve it!

My system is Snow Leopard 10.6.8, and I have two sets of Xcode of 3.2.5 and 4.2, after I had upgraded my iPad 1 to iOS 5.1, I launched Xcode 3.2.5, it prompted me a window of 'unknown device was found', I answer 'Yes' to download lots of libraries from my iPad, several minutes later, I can debug and run my projects on my iPad!

Then I launched Xcode 4.2 and opened one of my previous projects, I can really debug and run it on my iPad!

In this way you can use either version of Xcode to develop apps on a Snow Leopard system.

art golf
  • 11
  • 1