I have been developing in Xcode 4.1 with iphone of iOS 4.3.5. It was fine without a version mismatch problem. Today, I connected another iphone which has the same version of iOS (4.3.5) and I could not build source code on to the device. The organizer window said,
The version of iOS on “Hee’s iPhone” does not match any of the versions of iOS supported for development with this installation of the iOS SDK. Please restore the device to a version of the OS listed below, or update to the latest version of the iOS SDK; which is available here.
I know it will be solved if I update Xcode or downgrade iPhone. However, I want to know other options if there are any. I really wonder why some devices are fine but others are not.
You can put additional SDKs/Symbols for the iPhoneOS/iPhoneSimulator platforms inside:
and
What I do is download old xcode and new beta xcode, install them to something like /Developer-3.2.3/, then symlink/alias the folders above from the /Developer-3.2.3 to the /Developer.
This lets my 4.1 xcode test on an iOS5.0 phone! The directory paths above might not be exact as I am writing this from my phone but they areaomething close to that. When I get back to my computer I will make sure those directories are correct.
For the simulator versions it would be:
Edit (back at my computer):
Here is what my Developer directories looks like:
In order to do this, you need to install the different versions of Xcode that have different iOS SDKs. To achieve the above, I only installed Xcode 3.2.4, 3.2.4, 4.1, and 4.2 (beta). I use 4.1 as my main
/Developer
directory.Once each Xcode is installed into seperate locations, this is how you would symlink the Symbols/SDKs directories from a non-primary Xcode install to your main install path:
After symlinking each SDK/Symbol directory in your main
/Developer/Platforms/iPhoneOS.platform/DeviceSupport
and/Developer/Platforms/iPhoneOS.platform/Developer/SDKs
directories, open up Xcode, and you should be able to see your device and use it to test builds, etc.Edit 2 (commands explained):
ll
is analias
I made for thels -l
command:ln
(symlink) is a command to create a shortcut/alias. The (very basic) syntax is:Here is the
ln
man pageHere is the
ls
man page