ChatGPT解决这个技术问题 Extra ChatGPT

Is it possible to get the iOS 5.1 SDK for Xcode 4.2 on Snow Leopard?

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?


A
Ajay Sharma

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

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) Place the copied files in the equivalent place on your Snow Leopard Mac: probably /Developer/Platforms/iPhoneOS.platform/DeviceSupport Similarly copy the iOS 5.1 SDK files found in this directory: /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk Also copy 'version.plist' from the Lion machine in the iPhoneOS.platform folder to the Snow Leopard machine. 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:

You can get the files out of the 4.3.1 DMG which can be downloaded from Apple here: Downloads for Apple Developers. Mount the DMG, Show Package Contents on the Xcode icon and drill down to /Volumes/Xcode/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport 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.


Today i have upgraded my system to Lion. Thanks for the Hack.
Thanks very much :) Worked perfect for me. At least I'll be able to develop with sl for some more time.
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.
@natbro - I still see the 4.3.1 dmg fine at developer.apple.com/downloads/index.action# and am currently downloading it.
XCode 4.3.3 contains it as well and works great. Thanks a lot for this
M
Mick MacCallum

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


N
NANNAV

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.


I entirely agree with you. Apple's behavior on this is beyond irresponsible. It tells you: they just don't care.
I used to love Apple before I became one of the poor bastards who had to develop on the iOS platform.
C
Community

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.
===============================================================================

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?)
indeed, you are correct. updating post to reflect your correct path. cheers ~
p
prossel

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


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
"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 :)
The whole iphonedevsdk.com site has been reported, not only this page.
h
hchouhan02

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.


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."
Try this => quit xcode => open xcode => clean project after try to build project.
M
Marcin Ignac

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.


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).]
You can find the .app file in ~/Library/Developer/Xcode/DerivedData/{app name}/Build/Products/Deployment/ (thanks to stackoverflow.com/a/9673810/1208218)
And some more info here in terms of how exactly to get this all running: stackoverflow.com/a/11460561/1208218
b
booker

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.


March 10th: Did not work. Got a message stating the version of the software was not supported for my device, an iPod Touch 4G.
Apple stopped to sign it since last week end
P
Pochi

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.


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
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.
Apparently it will not be necessary to upgrade to Lion first and you can go straight from Snow Leopard to Mountain Lion
e
egincyf

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.


g
gabry

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...


n
nsgulliver

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


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.
r
rakeshNS

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). :)


A
Alex Zavatone

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.


a
art golf

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.