views:

119

answers:

6

Hello All...

Some of our application is already in AppStore...

But suddenly one thing comes into my mind, that I want to clear before submitting my next application.

The thing is : As a programmer's point of view, should we require to handle if iPhone Device is jailbreaked ? If yes, then how we can tackle with this ?

Thanks in advance....

+2  A: 

If you would like to cut off a large group of users, then sure, go ahead and require it.

Unless your application specifically requires it, there should be no reason to force users to have a jailbroken iPhone or a non-jailbroken iPhone.

webdestroya
+1  A: 

If you program is legitimate (no private API calls etc), then you should not concern yourself with JB. You don't need to handle anything differently if the users phone has been JB'd. If it has, and your software doesn't run (say memory issues because they are using backgrounder to run 2 other things) then that's their problem not yours. Make your code well behaved, not leak memory, dump cache's etc with memory warnings, and you should be fine.

Andiih
+1  A: 

As you asked for the "programmer's point of view", I'd say: make sure your app runs on as many devices as possible.

Meaning: as long as you app is safe to run on an iPhone whether it's JB or not, I wouldn't care.

Select0r
+3  A: 

On a general note, jail-breaking the device is an issue between the user, Apple and potentially the carrier. You are not a side in this relationship, and the user has no contractual obligations to you with regards to their device.

You could choose to attempt detecting jail-broken devices in an attempt to prevent piracy of your app. However:

  • If the device is jail-broken, there's nothing you can do to reliably verify it's not jail-broken, since none of the OS APIs (including networking) is guaranteed to function as you expect. Your code could be running in a non-jail-broken simulation on top of jail-broken device.

  • Of course, you could check by attempting to do one of the things you currently know Apple actively prevents apps from doing. However, there's no guarantee that Apple is not going to allow that particular action in future. And, there's the chance that your app might get rejected because you are attempting to do something prohibited by Apple.

  • There is no official criteria from Apple on what constitutes a jail-broken device and what does not. And even if there was, you are not guaranteed to be notified in a timely manner (or at all) by Apple if they decide to change any such criteria. But even assuming you do get notified somehow, you can't update your app quick enough to avoid falsely detected jail-broken devices, thus potentially denying access to your app to legitimate users.

Franci Penov
A: 

One thing I have found, at least early on (not seen it for a while) is that most reports I got of strange behaviour with my app (vConqr) turned out to be from people with jailbroken phones. That's not to say I think that's good reason to block them. But if you do any sort of custom crash reporting, or other diagnostics it could be useful to log the fact to save time on troubleshooting.

Phil Nash
A: 

Do a search on the Internet. You'll find several articles that shows some ways you can detect a pirated app. I make no claim on their effectiveness, but I do use some of these in my own apps. These techniques do not try to detect if a phone is jailbroken; they focus on detecting if your app has been tampered with.

HZC
Every anti-crack method will be cracked in a near future, always. I would use that techniques to warn the user with something similar to that "I know that you've not paid for my app that took N hours to develop, and I am OK with that, but it would be nice that if you like my App you support it."
Adirael