Community > Forums > iPhone Development - iPhone SDK Training > 3.0.1 phone provisioning error solved.
August 15, 2009 8:52:58 AM PDT (one year ago). Seen 780 times.
Photo Marcos Lara
iPhone App Designer
Technolosophy.com
Member since Aug 15, 2009
Location: New York
Posts: 1
Hello Jonathan and the rest of the AO peps...

so on the flight home from the course i figured out what was going on with release 3.0.1 in Xcode.

the problem:
the iPhone SDK 3.0 does not recognize your development iPhone when connected to Xcode in the Organizer that has been upgraded to 3.0.1 via your normal iTunes sync process.

Organizer shows you the following error:

"The version of iPhone OS on iPhoneXYZ does not match any of the versions of iPhone OS supported for development with this copy of Xcode. Please restore the device to a version of the OS listed below. If necessary, the latest version of Xcode is available here.

OS Installed on iPhoneXYZ is
3.0.1 (7A400)

Xcode Supported iPhone OS Versions
3.0 (7A312g)
2.2.1
2.2
2.1.1
2.1
2.0.2 (5C1)
2.0.1 (5B108)
2.0 (5A347)"


the reason:
apparently any version of the SDK (even 3.1 beta) must have the version of the OS installed on the iPhone in question defined within the directory /Developer/Platforms/iPhoneOS.platform/DeviceSupport/

a simple directory listing (ls-l) shows the contents of the /DeviceSupport directory so we can investigate:

lrwxr-xr-x 1 root admin 11 Jun 18 14:06 2.0 (5A345) -> 2.0 (5A347)
drwxrwxr-x 5 root admin 170 Jun 18 14:06 2.0 (5A347)
lrwxr-xr-x 1 root admin 11 Jun 18 14:06 2.0.1 (5B108) -> 2.0 (5A347)
lrwxr-xr-x 1 root admin 11 Jun 18 14:06 2.0.2 (5C1) -> 2.0 (5A347)
drwxrwxr-x 5 root admin 170 Jun 18 14:06 2.1
lrwxr-xr-x 1 root admin 3 Jun 18 14:06 2.1.1 -> 2.1
drwxrwxr-x 5 root admin 170 Jun 18 14:06 2.2
drwxrwxr-x 5 root admin 170 Jun 18 14:06 2.2.1
drwxrwxr-x 5 root admin 170 Jun 18 14:06 3.0 (7A341)
(7A341)


what is of interest here is that each iterations of OS 2.0 "link" back to its root OS release 2.0:

2.0.1 (5B108) -> 2.0 (5A347)
2.0.2 (5C1) -> 2.0 (5A347)


(note the -> symbol represents a file link on OSX and unix in general). the same goes for 2.1.1 -> 2.1n 2.1 being the root OS in this case. so, by this logic if we create a 'link" from OS 3.0.1 to its root release 3.0 (7A341), Xcode should know which properties OS 3.0.1 needs to inherit and hemce not throw an exception in the organizer and allow us to use 3.0.1 on our iPhones without errors.

the solution:
1) open a terminal window as administrator.

2) change to the directory in question to minimize confusion:

cd /Developer/Platforms/iPhoneOS.platform/DeviceSupport/

3) once in the directory /DeviceSupport check for a pre-existing link for 3.0.1.

type ls -l

lrwxr-xr-x 1 user admin date 5 11:27 3.0.1 -> 3.0 xxxx

if a link for 3.0.1 is present and you're still getting the error in Xcode/Organizer then the link was not correctly created and must be removed and recreated.

remove the existing link:
rm 3.0.1

ls -l to double check that you really removed 3.0.1.

4) now we need to create the link for the new OS 3.0.1 to point back to the root OS 3.0 (7A341).

ln is the link command. so type:
ln -s 3.0\ \(7A341\) 3.0.1

the command line will return with no message. ls -l once more to check that the link was created properly. you should see the following:

lrwxr-xr-x 1 user admin date time 3.0.1 -> 3.0 (7A341)

5) restart Xcode and *bang* your iPhone will appear as normal and ready to install apps.

more on how a "link" works with in OSX can be found by typing man ln at the command prompt.

hope that helps,

Marcos



Edited 3 times. Last edit by Marcos Lara on Aug 15, 2009 at 8:52:58 AM (about 15 weeks ago).
August 22, 2009 11:33:03 AM PDT (one year ago)
Photo Pramod Sayanekar
Member since Jul 19, 2009
Posts: 1
Good find Marcos.