Battle for Vesta Bug Details
by john on Jul.22, 2010, under Uncategorized
This is a strange one. Battle for Vesta has run solidly since version 1. No crashes, problems launching, or other problems. For version 2.2 I tested it on my iPhone 3GS, iPhone 3G, and iPad. I also ran it on the iPhone 4 in the simmulator. I didn’t see a problem with any of these systems.
After v 2.2 went live I began to get reviews saying that the app doesn’t do anything. This was concerning as I wasn’t able to replicate the problem on any of my hardware. Eventually it became clear that the problem only affected iPod Touch owners, so I borrowed my brother’s and was able to replicate it.
I started putting breakpoints in my code yet the debugger wasn’t hitting any of them. Finally I put one in main.m and was able to see the debugger hit:
int retVal = UIApplicationMain(argc, argv, nil, nil);
But once it entered UIApplicationMain nothing seemed to happen. It is pretty tough to debug something that the debugger won’t let you see.
I started retracing my steps and looking at what I had done to enable the Retina Display and Universal Binary aspects of the update. The first thing that I did was look at the Info.plist file entries. The Universal Binary instructions that I followed had suggested splitting the “Main nib file base name” entry into two entries: “Main nib file base name (iPhone)” which points to the iPhone (and I assumed iPod Touch) version of the nib file and “Main nib file base name (iPad)” which of course points to the iPad version. That turned out to be the problem. I added the old “Main nib file base name” entry again, pointing to the iPhone/iPod Touch version and everything worked again.
I find it very odd that the iPod Touch wouldn’t look for the iPhone version of the file, but live and learn.
I have submitted a 2.2.1 update to Apple. I’ve also made Battle for Vesta free in the meantime, so that nobody pays money for an app that doesn’t currently run on iPod Touch. Once the update goes live I’ll put the price back at $2.
Update:
The bug also appears on iPhones under iOS 3.1.3 but not iOS 4.
Update 2:
The 2.2.1 update is live. Battle for Vesta will remain free for the rest of the day and go back to its regular price tomorrow.