alexwhittemore.com //Blog

11Jul/09260

Developing for a jailbroken iPhone, A to Z (iPhone 3.0)

30rockin

Rockin 3.0

UPDATE: NEWGUIDE NEWGUIDE NEWGUIDE!

Vital iPhone stats for this post:
iPhone version: 3G (should work with 2G and 3GS)
iPhone OS version: 3.0 (rock the hizzouse!)
Jailbreak status: Jailbroken using Pwnage Tool.

The Goal: Get live on-device XCode debugging without being a paying ADC member. This time OS 3.0 style.

26Jun/090

Hold on tight, 3.0 sdk info coming soon

UPDATE 7/11/09: Procedure working great: post here.

Everyone's getting antsy about on-device debugging with SDK 3.0, which as most of us know broke our preferred method. It looks like the only answer may be to use an outdated version of the SDK, but I'm going to look into it asap. My plan was to use an external drive to install a throw-away virgin copy of OSX. That way, I can experiment and play, and just trash things that don't work so that I know EXACTLY how to install properly. Incidentally, I also need to use this setup for a few similar things at work. The problem is that my MBP's DVD burner is a piece of crud. I say that conclusively because everyone else with a Macbook Pro has the same problems after some time. At this point, it still READS DVDs (mostly) but it can't burn to save its life. My OS disks got horribly marred by someone I loaned them to, and while I had backup images on an external drive, they're clearly not helpful if I can't burn disks :) . Today though, I'll have access to fresh, OEM disks, so I'll get my install going, image it with SuperDuper or Disk Utility, and that should be the ticket. I'll keep you updated, but I expect that I might be able to start working on this after work tonight or tomorrow sometime. In the mean time, the best resource on this problem (and the one that I plan to use to get some procedures going) is http://iphonesdkdev.blogspot.com/.

20Jun/096

Jailbroken OS 3.0 is a Buggy Ass Piece of Shit

crashyI hate to have to report this, but it's just sad how crappy the current experience is on 3.0-JB. In some order:

  • Cydia crashes like crashing is its job. Tap search then manage - boom, crash. Uninstall an app - 50% likely crash. click too many items in a row because cydia is slow but you know your way around - crash. In fact, you can really just imagine crashing for a split second, and it will happen, wherever you are. Restoring my phone to its previous state of installed apps was failing so badly that I installed apt and did it from an SSH session. Only to find out that Aptitude is broken. At least there is apt-get, too. But alas, I still didn't get very far, since NONE of the apps I previously had work. Starting, most obviously, with Backgrounder.
  • Backgrounder is (temporarily) dead. This isn't that critical, per se, since apps usually crash while in the background anyway, but I'm annoyed not to have it because at least Pandora would reliably stay alive while you emailed or, to a lesser extent, texted. Now, no matter which method you use to invoke Backgrounder, the invocation tanks MobileSubstrate and sends it into safe mode. Bummer. And Pandora Controls was a nice pairing for backgrounder since you could use it to control Pandora from other apps just like the iPod. Kind of a moot point, if backgrounder is dead, but
  • Pandora Controls just doesn't work, at all. Worse, it causes Pandora to crash on launch. Yay safe mode. Don't install it.
  • I could probably survive in the time being before repairs to the above by using one of my FAVORITE iPod apps, Instinctiv Shuffle. It is basically a smart shuffle hooked into the iPod app that attempts to shuffle your full library based on your mood, and it seems to work pretty well. It pretty much just makes shuffle less random, playing similar songs to the ones you recently didn't-skip, but it's a nice addition for the car. But it doesn't install on 3.0. Boo.
  • hClipboard straight doesn't work. Yeah, there's official copy/paste now, but I liked the templates feature, not having to re-enter email addresses all the time. And I liked a multiple-entry clipboard. And iKeyEx had other cool features.
  • ICY is cool, but also buggy: So far, I've found that you can reliably crash it by cancelling an app install.

And then there are a ton of other stupid issues. Like what's up with this screenshot?

What the hell.

What the hell.

There's no text entry field there, guys. And in general, things seem slower (though some faster). Overall, this could be going better.

All I can say is thank god PdaNet works, since AT&T will inevitably break the official tethering channel. I will admit, the iPhone interface for it is cooler and less goofy, but it also doesn't work (for me, won't connect). And when it does, you'll get charged out the ass for it, which is key too.

9Jun/090

iPhone OS 3.0 Gold Masters Relased

Get them while they're hot! http://www.iphone3g-mods.com/ (coral) has a great list of download links for all the various hardware versions. There are a couple of notes: First, this is intended for developers only. As such, these FW versions lock your phone into "testing mode," meaning you can't then downgrade to an old version. Also, this final pre-release is not jailbroken (rather, it probably is, but the JB is as of yet unreleased). So don't plan to use this on your main device if, like me, you rely on your jailbreak. I'll probably only install this on my iTouch 1G, and wait for a proper jailbreak following the official release.

3Jun/090

New Theme

I've been meaning to do this for a while. I liked the old theme, but it was just too thin. It wasn't really clean enough for my taste when my content was wider than 300px, so here's a new theme I kind of like. I'm actually making my own theme from scratch, and I'm super excited for the things I'm putting in it, but it just won't be ready for a while.

29May/091

Tip For Quick Switching Simulator To Device

picture-3Here's a quick tip I picked up via the Stanford CS193P iPhone Programming (coral) course. Normally, to switch between device and simulator debugging requires going to the Project > Set Active SDK menu. Since I switch between said active SDKs almost every other build at points, the whole menu thing gets annoying. Luckily, it's easy to put this drop-down menu in your toolbar in Xcode.

27May/091

If You’ve Been Living Under A Rock, Check Out This iPhone Course From Stanford

picture-11If you haven't heard about Stanford's iPhone development course (coral), then I'm not sure where you've been. It's certainly had enough publicity that it needs no more introduction from me, but I figure that I might as well lavish it with my praises too.

24May/0955

Soldering The Thinnest Wires Ever Conceived: Headphone Modding

Acrylic insulated wires stink, for sure, but when they're stranded and micro-fine, they stink WAY more.

Acrylic insulated wires stink, for sure, but when they're stranded and micro-fine, they stink WAY more.

I may use this blog to post mainly iPhone or software related articles, but I am an electrical engineering student, and as an EE, I love me some good, clean hardware. Therefore, when my favorite pair of earbuds kicked the bucket the other day, my first thought went to the in-box iPhone headset and, more importantly, how much those earbuds suck. My favorite bang-for-the-buck earbuds EVER are Skullcandy Full Metal Jackets, primarily because I got them at TJ Maxx for $25. In general though, they have silicone pads that seal out sound, instead of the hyper uncomfortable iPod earbuds that fall out and sound like crap. I was super bummed when my FMJs broke, but luckily, the part that broke was on the plug end of the earphones. That is, both earbuds themselves still work fine, only the plug is dead. My thought was to cut the crappy iPhone buds off their cable (which includes a microphone and remote button) and graft on my beloved FMJs.

6May/090

Properly Declaring Methods in Classes

If you're beginning to learn Objective-C like I am, things like this aren't immediately obvious. I was trying to fool around with creating my own class, and I kept getting this warning
warning: no '-blah blah blah' method found along with an accompanying
warning: 'ClassName' may not respond to '-blah blah blah'

The really annoying part was that, despite these warnings, the code still worked just fine. Turns out, my issue was that I had this method in my class implementation (PolygonShape.m):

3May/0913

iTunes Carrier Update Error – Fix

I've been having this really annoying error lately ever since that carrier update that Apple released to add support for AT&T's new microcells. The exact message is this: