Fun with [redacted]
August 21st, 2009
So the whole [redacted] thing is a joke in the Mac/iPhone dev community. Whenever someone wants to talk about something covered under NDA by Apple, they put [redacted] in its place. Hehe
I thought I’d write up a quick post on my experiences upgrading to a pre-release build of the new Mac OS X, Snow Leopard. We were given pre-release copies of the OS and WWDC this year. Because the details of the OS are covered by NDA, I won’t talk about any of the cool new stuff I’ve been playing with (I’m such a tease). But I when I started thinking about doing the install, I couldn’t find any good resources on how to do it properly.
This all started because of a bug in Xcode. There’s a fun bug that sometimes crops up when you assign different project names to different build configs. I do this so that I can call my debug build “DappleDebug” and my release build “DappleRelease”. This is useful when you’ve got 4 different builds on your test device and you’re trying to remember which is which. At any rate, when OS 3.0 came out, something broke in Xcode and now sometimes when you change the project name, Xcode tries to use something else. Very annoying!
I had found a work around which involves duplicating your build config, deleting the old one, then renaming the duplicate. It makes the problem go away temporarily (but it always comes back at some point!) Yesterday this problem cropped up again, except this time my work-around didn’t work, for some reason. The result being that I couldn’t deploy my build to my device at all! After a few hours of trying to get things to work (and rebooting, etc), I said “Screw it! I’m installing Snow Leopard!”
My biggest concern with updating to a pre-release OS was preserving my data, so I spent a couple of hours backing up all my important data to my server and offsite repo. My next biggest concern was making sure that all my user settings trasnfered over. This was the part I couldn’t find any information on. The installation instructions didn’t mention anything, so I assumed it would “just work”. Ha!
I started the installation process off the disk from WWDC (the dev site has a newer release, but it’s a massive download, so I figured I’d just use software updates to update after installing). After it installed, it asked me to create a user account. Huh? Where’s my old one? Hmmm…bizarre. Maybe it will pull it across when I create a new account? Maybe I’d better call it the same thing as the old one. What was the old one called? Crap! I can’t remember!
I created a username that I thought was what I had before. Oops. Wrong. It created a new user. So now I’m in a new OS with no data. Crap! Trying to avoid panicking, I decided to poke around the hard drive and look for my files. Ok, they were still there in the Users folder. Ohhhhh, that’s what my username was. Hmmm…
The installation instructions had mentioned using a tool called “Migration Assistant” to move old user profiles over. I booted that up and discovered that this tool only works to retrieve a user account from another computer or partition, not the same computer and drive.
Trying not to panick, I decided I’d run software update to get the latest build of the OS. Hmmm…and again…and again…and again…and again. Maybe I should have just bit the bullet and downloaded the newest build to start with. 4 or 5 or 10 updates (I lost count) later (each one 500MB to 1.5GB), I ran out of updates.
At this point, I was running out of options. I figured, what the hell, I might as well try creating a new user with the same name as the old one. Maybe that will work? I tried it and it did! When it detected a user folder of the same name, it asked me if I wanted to restore that user. Success!
So now I’m running the new OS, with all my old data intact. Hooray! So while it wasn’t that hard to get working, it certainly feels that way while you’re in the middle of it thinking all your data is gone.
To summarize, the lessons from this story are the following:
- If you’re going to install a pre-release build, just download the latest gigantic build off the dev site and start with that.
- Go into the System Prefs -> User Accounts and record your user account info so that you can just restore it properly the first time.
Other than those two mistakes, things went smoothly. So if you’re going to do this at home, good luck to you!
Owen