Advertisement

iPhone OS 4.0 dev agreement blocks using Flash or Unity as IDEs?

UPDATE: We've heard directly from Unity Technologies themselves, and the company's CEO, David Helgason, has been in contact with Apple over the matter. Helgason says that so far Unity has "no indication from Apple that things are going to change." This is consistent with John Gruber's viewpoint on the new iPhone OS 4.0 dev agreement. Gruber originally thought that Unity3D would be a prime candidate for banning under the new rules, but given that Unity3D is, in Gruber's words, "a pre-processor than a cross-compiler," it's nowhere near as certain that Unity will fall on what Gruber calls "the wrong side of the line" per the new dev agreement. Gruber's opinion on the fate of Flash CS5's iPhone compiler under the new rules is... we'll say, "somewhat less rosy," and given the already strained relationship between Apple and Adobe, he's very likely correct.


Daring Fireball's John Gruber has found an interesting potential "gotcha" in the newest developer agreement for iPhone OS 4.0. In a section titled "PIs and Functionality," there's a sub-section written in a way that could spell the end for translation tools like Flash Professional CS5's Packager for iPhone or Unity Technologies' Unity iPhone Pro. The relevant clause starts out by saying, "Applications may only use Documented APIs in the manner prescribed by Apple and must not use or call any private APIs." That's nothing new, and has already been the basis of many App Store rejections. But it goes on to say that apps "must be originally written in Objective-C, C, C++, or JavaScript as executed by the iPhone OS WebKit engine." This could be interpreted in many ways, if not for the clarification that follows: "Applications that link to Documented APIs through an intermediary translation or compatibility layer or tool are prohibited."

Adobe's Packager for iPhone is a tool that basically "translates" Flash games into iPhone-compatible versions using ActionScript 3. Unity iPhone Pro similarly allows game code to be outputted into Xcode, and from there it's a very short trip to submitting an app to the App Store. Although the code these two tools output is fully iPhone-compatible (it would have to be, or it would never get approval), the new developer agreement could easily be interpreted as saying, "iPhone apps have to be developed from the ground up in Apple's development environment, or we'll reject them."

If true, developers who have depended on tools like Packager for iPhone or Unity are, perhaps justifiably, going to be very displeased that their IDEs are no longer supported. It's easy to see why Apple would make a move like this -- having "ported" apps in the App Store opens the door to bug-riddled apps with potential security holes -- but it's also easy to sympathize with those who would cast such a move as only one more example of Apple's iron-fisted approach to software development on their mobile platforms.

Disclaimer: I am not even remotely close to being a developer, so it's entirely possible that I'm misinterpreting all of this. If I'm off-base and there are any devs out there who'd like to set me straight, let us know in the comments.