When our app detects it is running on an iOS device that has been jailbroken (hacked to circumvent Apple's App Store and the In-App Purchase payment system), we replace our usual user-interface with a simple message. The message explains that instead of normal operations, this app is refusing to run. All functionality is removed.

How can I word this message? I want to avoid sounding offensive or accusatory, for two reasons:

  • The user may be nearly innocent. Perhaps their cousin was "doing them a favor" by jailbreaking the device, but the user did not comprehend the nature of the act.
  • There may be some other weird problem (bug) triggering our jailbreaking-detection into reporting a false-positive.
  • 1
    Perhaps you could start be explaining to us why you consider this detection necessary. – IMSoP May 27 '14 at 22:59
  • 1
    @IMSoP Jailbreaking means the user can defeat the In-App Purchase payment system of Apple's App Store, thereby giving them unlicensed access to our encyclopedia-like content. – Basil Bourque May 27 '14 at 23:26
  • Aha. That would be an important detail I would want to see in the message as a user: "Our app relies on the in-app purchase system provided by the Apple App store; since this can be circumvented on a jailbroken phone, this application will refuse to run in that situation." (There are plenty of things wrong with that wording, but leading with the reason, rather than the policy seems important to me.) – IMSoP May 27 '14 at 23:30
  • @IMSoP That's a helpful thought. – Basil Bourque May 27 '14 at 23:31
  • "The user may be nearly innocent." There are plenty of legitimate reasons to jailbreak that are not to avoid paying for apps/content. Your presumption of guilt is already pretty offensive. – JamesRyan May 28 '14 at 12:06

Firstly, you should consider that you're fighting an uphill battle—if your app is popular enough, the other guys are probably able to patch your app to remove any checks you may perform.

If you do decide it's worth the effort, the first place to start is Apple's guidelines for alerts.

As with any other error message, you should include three things:

  1. A very short error title, phrased in the imperative (users should be able to read this quickly without thinking too hard)
  2. A (slightly) longer error description with justification of the behaviour (this is useful for users to Google the problem)
  3. A clear call to action for the user (what the user can do next)

In this case, the seemingly appropriate behaviour according to Apple's guidelines is:

Jailbreak Detected
Your phone appears to be jailbroken, and so for security reasons [App Name] cannot be loaded.
[More Info] [Quit]

That having been said, Apple explicitly says you should not quit your app programmatically. Since your app is apparently non-functional on jailbroken devices, I'm not sure what alternative you have to a Quit button. Perhaps a deliberately non-functional version of your app's starting screen (in which case the button just becomes OK).

In my example, the More Info button would take the user to Safari with details of your justification, and—importantly—instructions for how the user can report a false positive to you.

For completeness, here are some other examples of a similar message from other apps (including one from Apple's iBooks):

Example jailbreak detection message Example jailbreak detection message Example jailbreak detection message The way iBooks handles jailbreak

And here's a pretty familiar one from Microsoft that is deliberately worded to avoid being too accusatory toward the user:

Microsoft's piracy detection behaviour

  • 1
    I would avoid the quit alternative. I've had a couple of apps refused because of in-app termination functionality. In those cases, the apps had to run in a certain geolocation regions to be allowed, and we chose to force the users to terminate if they were in a different region. Not appreciated by Apple. – Babossa May 28 '14 at 0:18
  • @Babossa: so how did you solve it? With an "OK" button that takes the user to a non-functional app? – Kit Grose May 28 '14 at 1:37
  • Something like that, yes. I think the alert comes back when you tap OK. It's not a good user experience really... – Babossa May 28 '14 at 6:14

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.