How does Adobe Creative Suite 5’s Packager for iPhone actually work?
There’s been a lot of online punditry (some of it more eloquent than others) about Apple’s disallowing Packager as a source of iPhone/iPod touch/iPad applications, but what I’m curious about is, how did it work to begin with? I’m kind of surprised there hasn’t been more discussion about this. (With one caveat, see below.)
I know that the mechanism isn’t merely a non-varying standard interpreter, that reads in the actual Flash data and executes it, because that was illegal even before the latest Apple changes, and because Adobe says so: “iPhone applications…are compiled into standard, native iPhone executable packages and there is no runtime interpreter that could be used to run ActionScript bytecode within the application.”
Does this mean Adobe is generating a native binary, i.e. they’ve gotten into the low-level compiler business? Are they hacking clang? Or gcc? Are they generating an Xcode project?
My impression is that the provisioning step that’s needed to create an iPhone app needs to be done within Xcode. Has Adobe managed to sidestep this (I can’t see how), or do they make something that still needs to be “compiled” again within Xcode before the app’s really done? I have no plans to buy CS5 myself, so I’ll have to rely on the generosity of the Internet for my answers.
This isn’t just a question about Flash, though. Presumably Unity and MonoTouch have the same technical issues. (And the same legal issues, but both companies appear to be following a “hope for the best” approach in that regard, which surprisingly appears to be working, at least so far.)
I downloaded Unity a while ago, and I’ll be investigating it to find my own answers. Right now, Unity itself is crashing on me, so that might take a while.
Caveat from above: one reason nobody’s talking about this might be that these products enforce a “Fight Club”-style rule over their users, i.e. if you know enough to talk about us, don’t talk about us. I hope not, though.