New iPhone Developer Agreement Bans the Use of Adobe’s Flash-to-iPhone Compiler
Thursday, 8 April 2010
Prior to today’s release of the iPhone OS 4 SDK, section 3.3.1 of the iPhone Developer Program License Agreement read, in its entirety:
3.3.1 — Applications may only use Documented APIs in the manner prescribed by Apple and must not use or call any private APIs.
In the new version of the iPhone Developer Program License Agreement released by Apple today (and which developers must agree to before downloading the 4.0 SDK beta), section 3.3.1 now reads:
My reading of this new language is that cross-compilers, such as the Flash-to-iPhone compiler in Adobe’s upcoming Flash Professional CS5 release, are prohibited. This also bans apps compiled using MonoTouch and Unity3D — tools that compiles C# and .NET apps to the iPhone. It’s unclear what this means for tools like Titanium and PhoneGap, but it sounds to me like they’re on the wrong side of this new rule, and the folks behind Appcelerator already realize they might be out of bounds. There was no mention of this change during the announcement event today, but the language in the agreement doesn’t leave much wiggle room. It could hardly be more clear if they singled out Flash CS5 by name. (Wonder what Adobe does now? CS5 is _thisclose_to release and the iPhone compiler is the flagship feature in this version of Flash. They’re pretty much royally fucked.) I’m not sure how exactly Apple intends to enforce this, but my understanding is that iPhone apps produced by Flash CS5 are easily identifiable as such by inspecting the contents of the app bundle. I’m not sure if there are any “intermediary translation or compatibility layers or tools” which produce app bundles that are indistinguishable from app bundles produced by Xcode and the official SDK.