Hi,
I’m currently working on Flexmojos and the Mavenizer to finally build valid iOS
packages.
Flexmojos was producing IPA files for quite some time now, but the files
weren’t runnable. When comparing the not working versions Flexmojos produces
with the working ones IntelliJ produces, I noticed that the Flexmojos one has a
file “Payload/{ApplicationName}.app/{ApplicationName}” which is empty, while
the one produced by IntelliJ isn’t.
So, I IntelliJ to run in debug mode so I could inspect the full command
IntelliJ executes and couldn’t find a difference to mine. Still the output is
different.
I then noticed the sizes of the swf file which is embedded in the IPA file was
greatly different. It however always matched the size of the one built by the
compiler. So, when IntelliJ built the SWF, this is a lot smaller than if I
build this with Flexmojos.
I can package the SWF built by Flexmojos as an Android application, but not as
iOS.
Now I dumped the content of both swfs with swfdum and compared the output. I
noticed these differences:
- A huge amount of the dump deals with font glyfs the Flexmojos
version contains a lot more of the font “glyph” elements
- The SWF built by Flexmojos contains one “DoABC” entry for every
referenced class (I think) however the one built by IntelliJ contains only two
(with the names “frame1” and “frame2”
- Image resources seem to be encoded differently in the
“DefineBitsLossless2” elements.
So, is the difference that eventually the SWF created by IntelliJ doesn’t embed
any referenced classes … sort of like having all dependencies “external”?
Chris