Quantcast
Channel: Adobe Community : All Content - AIR Bugs and Performance Issues
Viewing all articles
Browse latest Browse all 1419

iOS app starts with black screen when compiled via ADT (Flex 4.6, AIR3.7)

$
0
0

I was using Flex 4.6 with AIR 3.1 in Flash Builder 4.6 on Windows 7. I used two build methods: 1) "Export Release Build" in Flash Builder during development and 2) the ADT toolchain on my build server.

 

For the ADT method I would create AIR intermediate files using:

 

"C:\Program Files (x86)\Adobe\Adobe Flash Builder 4.6\FlashBuilderC.exe" --launcher.suppressErrors -noSplash -application org.eclipse.ant.core.antRunner -data [PATH_TO_SOURCE] -file [PATH_TO_BUILD_XML] [PROJECT_NAME]

 

Where my build.xml looks like:

 

<?xml version="1.0"?><project default="main">    <target name="main">        <fb.exportReleaseBuild project="[PROJECT_NAME]" basefilename="[BASE_FILE_NAME]" verbose="true" destdir="bin-release" />    </target></project>

 

From these intermediate AIR files I would create my APK and IPA files using ADT like so (shown for iOS):

 

echo [CERTIFICATE_PASSWORD]|"C:\Program Files (x86)\Adobe\Adobe Flash Builder 4.6\sdks\4.6.0\bin\adt" -package -target ipa-test -provisioning-profile [PATH_TO_MOBILE_PROVISIONING_FILE] -storetype PKCS12 -keystore [PATH_TO_DEV_CERTIFICATE] [OUTPUT_PATH] [PATH_TO_IOS_AIRI]

 

This procedure produced working iOS and Android apps as well.

 

I decided to upgrade AIR to version 3.7. I used the overlay proceedure described here (http://helpx.adobe.com/x-productkb/multi/how-overlay-air-sdk-flex-sdk.html). I also updated the namespace in my project to reflect the new AIR version. Using "Export Release Build" in Flash Builder produces working copies of both the iOS and Android apps. Furthermore, the secondary method (used on my build server), produces both APK and IPA files without error. The APK works just fine but the IPA does not. When running the app on an Apple device, it starts up with a black screen and stays this way.

 

To summarize:

 

  • Flex 4.6, AIR 3.1: "Export Release Build" and ADT tool chain produce working APK and IPA files.
  • Flex 4.6, AIR 3.7 using overlay procedure: "Export Release Build" produces working APK and IPA files, ADT tool chain produces working APK file but IPA file loads black screen on Apple devices.

 

More notes:

 

I had made a back up of the "4.6.0" directory that holds the Flex and AIR SDK files. If I replace the overlayed Flex 4.6.0 SDK directory with the original (which contains AIR 3.1) and revert the namespace back to 3.1 in my project, everything goes back to normal and I get working apps via both methods described above.

 

Edit: I also should note that I've tried many other combinations of Flex and AIR (Flex 4.9.1 from Apache and AIR 3.5/3.6), which all produce the same issue. It seems that the overlay procedure breaks something for ADT with iOS specifically...

Edit 2: I also noticed that the IPA files output by methods 1 and 2 are slightly different. Opening these with 7-Zip I see that most of the files are the same, but some differ slightly in size (this was due to 'ipa-test' vs 'ipa-ad-hoc'). The odd thing is that in the IPA file that does not work (produced via the ADT method), the SWF file is named "swf3465180827438224920.tmp" while the SWF in the IPA that was created using "Export Release Build is named "[PROJECT_NAME].swf". It almost appears as though ADT fails to rename the temporary SWF file. I also realized that the "Export Release Build" method likely used '-target ipa-ad-hoc', so I tried this in the ADT method with the same result.

 

Any thoughts?


Viewing all articles
Browse latest Browse all 1419

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>