On supporting jailbreak users

(Note: This post is a response to, and in part a continuation of, a discussion that happened yesterday on Twitter. A few tweets from that conversation are linked here.)

It’s jailbreak season again, which means it’s time for iOS developers and jailbreak users to start arguing with each other on Twitter. To boil a fairly nuanced debate down to two bullet points:

  • Jailbreak users feel they should get support like any other users.
  • Many developers feel that voiding the warranty on your iPhone also voids the warranty on your apps, and they shouldn’t be required to provide support for jailbroken devices.

It’s true that jailbreaking your iPhone or iPad and installing certain apps and addons can make iOS behave in unexpected ways, but we at Aptfolk feel strongly that it’s good policy to provide support for jailbreakers.

Some developers argue that most jailbreak users are pirates, and probably haven’t paid for their apps. We haven’t seen numbers on this, but none of the jailbreakers on our team—there are several—pirate apps. Many users jailbreak because they prefer to have control over their own devices, and those users don’t deserve to be presumed guilty until proven innocent; we’ve seen where that leads, and we can’t get behind it. But even assuming that our experience is an exception, Daniel Jalkut of Red Sweater Software has already explained why pirate users aren’t entirely a bad thing.

We provide support for users of great Mac and iOS apps, which means that we interact daily with both great developers and great users. It’s important to us and to our clients that users receive polite, respectful support—even when what’s going wrong is their fault. A response like “You’re causing the problem, so please stop bothering us” is never an option. Instead, there are several levels of support you can provide to jailbreak users, each better (from the user’s point of view) than the last:

  1. Blame the user or ignore their question completely. This is the worst possible response. The user, who has likely paid for your app, rightfully feels unheard. They may very well badmouth you or your app on Twitter or another public forum. While this level of support may feel justified, it brings only bad feelings and bad press.
  2. Provide a friendly explanation, in as much useful detail as possible, of what exactly is causing the problem. “A bug in $JAILBREAKADDON* (for example) causes Example.app to crash on launch; if your iPhone is jailbroken, please contact the developer of $JAILBREAKADDON for a fix.” is infinitely more useful to the user than simple ignoring them, and buys you their good will. Depending on who the user is, they may also go out and explain to the rest of the jailbreak community what’s causing the problem, and the issue may get fixed by the developer of the jailbreak software without any further intervention from you. (Aptfolk strives to provide this level of support on behalf of our clients.)
  3. Provide a friendly explanation, in as much useful detail as possible, of what exactly is causing the problem, and express an interest in resolving the problem. “A bug in $JAILBREAKADDON causes Example.app to crash on launch. We’re aware of the problem and have contacted the developer of $JAILBREAKADDON. Unfortunately, we don’t have the time or resources to fix this problem ourselves right now.” This demonstrates that you’re aware that your user has paid for your app, that you respect their time and decisions, and that they need to respect yours.
  4. Fix the bug. We believe in providing the best possible support and this is it. If there’s an easy workaround on the developer side, implement it. This doesn’t mean you should completely refactor your app to solve an issue for just a few jailbreakers, but if the bug can be fixed without breaking anything else, fix it. Your user paid for their device, they (hopefully) paid for your app, and they may even have paid for the jailbreak software that’s causing the trouble; they deserve to be able to use all three as expected.

Of course, providing any support for jailbreak users can be difficult in part because they tend to be quiet about their status. Very few jailbreakers end their support requests with “By the way, I’m running jailbroken iOS 4.3.1 on an iPhone 3GS”. This is often in part because they genuinely don’t think of it as an issue—after all, dozens or hundreds of other apps work just fine on jailbroken devices, so why shouldn’t this one? On the other hand, some users don’t report their jailbroken status because of the stigma that attends it: if they can get their issue resolved without mentioning it, why bother to bring it up when it might make the developer think “Pirate!”?

The stigma against jailbreaking is largely due to the pirates who give honest jailbreakers a bad name. We think the best way to eliminate this stigma is to treat jailbreak status the same way as any other device spec. Treating it this way tends to generate more useful bug reports for developers, which in turn lets them (and us) provide better support for users. And if a few pirates get free support along the way, well, that’s just good karma for the rest of us.

Remember: a user is a user is a user. Treat ‘em right.

*Update 04-09-11: Thanks to @chpwn, the developer of several popular jailbreak apps, who pointed out that MobileSubstrate is rarely a culprit. It was used here as a jailbreak ‘feature’ many people have heard of rather than as a specific example; to avoid adding to the mostly unwarranted concern about MobileSubstrate, we’ve switched in $JAILBREAKADDON instead.