Apple Relaxes iOS Development Tool Restrictions
An anonymous reader writes "Earlier this year Apple caused major upset among developers by updating the iPhone developer program license with clause 3.3.1. It basically stopped the use of cross-platform compilers, meaning Adobe Flash could not be used to develop an app for the App Store. The move also put into doubt which other development platforms could be used and generally caused a lot of confusion. Apple has just significantly relaxed that policy and allowed for the use of development tools, as long as 'the resulting apps do not download any code.'"
This is the actual statement by Apple.
Also, I've read some rumors about the next iLife '11 having a new program for creating iOS apps in a similar way to the Android's AppInventor. This new statement seems a like a pointer in that direction, otherwise they would have a hard time arguing about antitrust issues on the App Store...
exp(i*pi)+1=0
It's to prevent/reduce the lawyer-like arguments. The moment a set of guidelines becomes public, people start trying to find loopholes. Arguments about terminology, implementation, and technicalities ensue. Then the rules get updated to account for what's been argued already, which brings in a new set of loopholes. Soon, a whole new industry springs up around just knowing the rules, and the whole process grinds to an inefficient halt.
It's much easier to keep guidelines internal, and only release very general suggestions.
You do not have a moral or legal right to do absolutely anything you want.
Jailbroken and/or pirated apps are easily detected. So easily detected, that Apple doesn't really bother, because apps can do it themselves.
Firstly, an app downloaded from the App Store has DRM on it, which consists mostly of encrypted portions of the binary. That binary is then signed. On running the app, the kernel loads the app, validates the signature, then in-memory decrypts the binary, and finally runs it.
A cracked app can't be re-encrypted for a specific device, so they're shipped decrypted. The kernel, however, cannot load unsigned binaries unless a special flag is set to indicate that it's a decrypted binary that's OK.
An app just needs to check for that flag which exists in its info.plist file. It can do several checks - first, is info.plist in text format (it should be binary XML)? Second, do those keys exist in the file?
The apps that do the obvious checks are quickly re-patched to disable those checks, but there's nothing to say that an app has to pop up an "I'm pirated!" notice - it can silently report its pirated status to the server, for example, but otherwise run normally. Most crackers don't check, and most pirates won't bother. Even the ones running Firewall IP (a really nice firewall alert). You need someone to actually go and sniff the WiFi transmissions to ensure it's sending the same data to the server. Use SSL and you're golden. (Sure the pirate could disable all network access, but then who cares about single-player cheating?).
Also, assets are signed as well, so replacing all the textures with transparent ones also have the exact same issue - you have to go and decrypt the binary, make your mods and set the flag. There are also tests for jailbroken phones as well.
Online multiplayer is not a huge thing on iPhones, iPads and iPod Touches - at least, the ones where you can't do server-side validation of inputs (which you should do anyways). Local multiplayer may be a bigger deal, but there are probably social pressures against that behavior as well.