Posts in Category "Uncategorized"

Troubleshooting common Adobe AIR installation errors with iOS applications

air_3_icon_rgb

By Piyush Bagri

In this post, we will explain the possible causes and solutions for some general errors that may occur when installing an AIR application on iOS devices using Flash Builder, Flash Professional, or command-line. This will help you to narrow down the installation error to a specific cause so that it can be resolved easily.

Installation error: “Application verification failed.”

The possible causes for this installation error along with the solutions to rectify it in each case are specified here.

Wildcard characters used in application id

If you are using any wildcard characters in the application id in your project, for example ‘calculator.debug.*‘, you will get ‘application verification failed‘ error.

Solution: The error will be resolved as soon as you remove the wildcard characters from the application id.

Feature listed in application.xml file is not added in the provisioning profile

If you are trying to compile your IPA with aps-environment key in entitlement.plist tags in application.xml file as shown in the example below and push notification service is not enabled in provisioning profile, then also you will get ‘application verification failed‘ error.

Example: Entitlements tag has been added in application.xml file but the push notification service is not enabled in provisioning profile.

...
<Entitlements><![CDATA[
            <key>aps-environment</key>
            <string>development</string>
             ]]>
</Entitlements>
...

Solution: Simply comment the above section of the code in application.xml or else add the feature in the provisioning profile. You will be able to rectify this error and compile your project. For more details, see Using push notifications in AIR iOS apps.

Wrong certificate used for packaging

You can also get ‘application verification failed‘ error if there is something wrong with the developer certificate that you are packaging your AIR application with. Another reason for the error could be that your device UUID is not listed in the provisioning profile.

Solution: You will be able to install your app on the device when you connect the right certificate with your provisioning profile. To know more about applying for an iPhone developer certificate and creating a provisioning profile, see Obtaining and working with iPhone developer files.


Installation error: “iTunes mobile device library not found. Please check your iTunes installation.”

This installation error is mainly related to the version of Adobe Flash Professional CC and/or AIR SDK that you are using to connect with Apple iTunes while installing the AIR application on your device. You may get this error in the following cases:

Using Flash Professional CC 2014 with iTunes 12.1.2

If you are using Adobe Flash CC 2014 and AIR SDK (any version) with iTunes 12.1.2, you may get this installation error when in your Flash Professional CC project you select:

File > Publish >Install application on the connected iOS device

Solution: This issue has been fixed in the latest Adobe Flash Professional CC 2015 version. With this fix, it can now be used with Adobe AIR SDK (any version) and Apple iTunes version 12.1.2 in Windows environment.

Using ADT version 16 or older with iTunes 12.1.2

If you are trying to install your application on the iOS device by command-line using ADT version (same as AIR SDK version) 16 or older, you can encounter this error. ADT is not able to detect iTunes 12.1.2 library in this case.

<AIRSDK Location>/bin/adt –installApp –platform ios –package <package name>

Solution: It is recommended to use Adobe AIR SDK version 16 or newer to resolve this error. iTunes 12.1.2 library is detected by Adobe AIR SDK 16 or newer versions.

Typically, you want to have the latest version of Adobe AIR. To get it, follow the instructions at Download and install Adobe AIR. However, you can get an older version of Adobe AIR here.

Do you still have problem with the installation of Adobe AIR application? Post your question in the Adobe AIR Installation Issues forum.

August Flash Runtime 18, Labs and Documentation Updates

The August update for Flash Runtime is now available!  This monthly update includes both security and functional improvements and is recommended for our Flash Player and AIR customers.

Complete details can be found in our Release Notes.

We’ve also recently released betas for Flash Player and AIR on labs.adobe.com.  With version 19 we’re introducing concurrency on iOS, new vector and array APIs, and more.

Check these features out and let us know what you think in our beta forums!

AIR 19 Beta

Flash Player 19 Beta

Finally, we’re continuing to improve our documentation by releasing new and improved technical articles.  We hope you find these articles useful.

Hello Triangle

Using Advanced Texture Features in Stage3D

Updates to the release and beta AS3 Documentation

In addition, if you’d like some specific topics to be discussed, let us know, and we”ll be happy to cover it.

Flash Runtime 18 and Documentation Updates

The July update for the Flash Runtime is now available!  This monthly update includes both security and functional improvements and is recommended for our Flash Player customers.

Complete details can be found in our Release Notes and the Adobe Security Bulletin.

In addition to the Runtime update, we’ve also been hard at work improving our ActionScript documentation.  If you have any interest in Stage3D related topics, I recommend taking a few minutes and reading over the following articles:

ATF File Format by Vivek Negi

What is AGAL by Marco Scabia

Improved Resolution of Stage3D Content on Browser Zoom by Channey Park

Flash Runtime 18 has been released!

fp_air

We’re half way through 2015 and we’ve seen significant progress with the Flash Runtimes.  Since January, we’ve had 7 Flash Player and 5 AIR releases and over 25 different public beta updates!  In that time we’ve made hundreds of bug fixes and implemented important new features requested by the community, like VideoTexture and iOS 64-bit support.

It’s time for our next major update of the Flash Runtime.  We’ve hit version 18 and we’ve got some great new features in store for you!  We recommend that everyone take a few minutes to read our official release notes but please feel free to read past the break for a high level description of what’s included in Flash Player and AIR 18.

Continue reading…

Upcoming changes to Flash Player’s extended support release

Beginning August 11th, 2015, we will be upgrading Flash Player’s extended support release from version 13 to version 18.  This change impacts enterprise and IT customers that currently deploy Flash Player using the extended support releases available through our distribution channel.

Adobe makes available the extended support release to organizations that prefer Flash Player stability over new functionality.  We will create a branch of the Flash Player code that we keep up to date with all of the latest security updates, but none of the new features or bug fixes available in our normal release branch.  This allows organizations to certify and stay secure with Flash Player with minimal effort.

To ensure a smooth transition, we encourage IT organizations to thoroughly test our version 18 releases (currently available on labs.adobe.com) over the next couple of months before deploying.

Best Practices for High Performing and Efficient Flash Video

flashvideo

 

Use StageVideo.  Always.

For best video playback performance and to minimize CPU and better battery consumption, using StageVideo for rendering video is strongly recommended.  StageVideo leverages the browser’s hardware accelerated rendering pipeline and GPU wherever available.

Starting with Flash Player 15, and when the swf is compiled for swf version greater than 26, the Flash Player will provide a software version of StageVideo as an automatic failover option when hardware StageVideo is not available.  As such the content does not need to implement a Video object failover.  The Flash Player will always try to use the hardware accelerated StageVideo first and only if the browser version and the GPU version does not support it, then it will automatically fail over to software version without any need to implement any fail overs in the App.

There should no longer be any reason to use the Video object, as StageVideo will always be available.

The StageVideoAvilability in this case will ALWAYS be “available”, the reason will always be “noError”.  If it is not able to support HW StageVideo for some reason and fails over to SW StageVideo, it will indicate that failover with a StageVideoAvailability event, and its property called “driver” will be set to “software”.

Use of wmode=direct is recommended.  For all the newer browsers as mentioned below, all the wmodes will support hardware accelerated StageVideo rendering.  But some older versions of the browsers that do not have hardware rendering support will fail over to software StageVideo if the wmode is not direct.  The only reason to not use wmode=direct will be if the app needs to render html overlays on top of video. Newer browsers will be able to support html overlays on any wModes, but older browsers that do not have hardware rendering support, will not be able to support html overlay for wmode=direct.

On Windows:

IE 11: IE has an accelerated pipeline and the FlashPlayer is HW accelerated in all wmode, so HW StageVideo should always be available.  Note that the decision to use the HW accelerate rendering pipeline reside in IE itself, there are probably cases where it will fallback to older software pipelines when the driver or OS is too old.  It is also possible for the user to disable the HW acceleration in the settings panel.

Firefox: There is currently no HW accelerated pipeline available in Firefox on windows and only wMode direct will have HW StageVideo available all other wMode should failover to SW StageVideo.

Chrome: Pepper has HW acceleration in all wMode, but some restrictions apply.  For example Chrome will refuse to use HW acceleration on Windows XP and it has its own driver blacklisting mechanism.  It is also possible for the user to disable the HW acceleration in the settings panel.  Chrome exposes a somewhat useful page to allow one to see the status of its gpu acceleration: chrome://gpu/

On Mac:

Safari: Apple’s browser uses CoreAnimation to render the HTML pages and all wMode should expose HW StageVideo.

Firefox: This browser also uses CoreAnimation to render the pages and all wModes should expose HW StageVideo.

Chrome: Pepper HW acceleration is available like it is on Windows and all wMode should expose HW StageVideo, with the same limitations as the windows version.

StageVideo should not be used before the availability event is fired.  Before this event, StageVideo is basically not initialized at all.  The timing of this event is somehow dependent on the browser and it should not be guessed.  You cannot base your code on a specific browser/os combination.  This will be true even with the software version of the API.

Just before the StageVideoAvailability event is fired, the StageVideo array is populated with a fixed amount of planes, usually 4.  At that time a stream can be attached to the plane for rendering.

The app should continue to listen for StageVideoAvailability event, if it wants to track HW or SW version of StaegVideo, as the event might be fired again when the status changes.

Once attached to a StageVideo entry, you can play the content and use its properties to move it around, zoom, pan…

 

StageVideo FAQs

  1. Is stageVideos.length>0 even if it’s software StageVideo?
    Yes, length is for stageVideo in general, either hardware or software.  Also, the length of the vector can sometimes be zero.  Rather than polling the length of the stageVideos vector manually, to implement stage video correctly, you should always listen to theStageVideoAvailabilityEvent.STAGE_VIDEO_AVAILABILITY event.  This will inform you about stage video ability.  SW StageVideo is enabled when the swf is compiled for swf version 26 and above, and is supported since Flash player 15.  If so the StageVideoAvilability will ALWAYS be “available”, the reason will always be “noError”.
  2. Is there an API to check if hardware acceleration is enabled (boolean value) or is the presence of stageVideos.length>0 enough?
    Stage video availability event has a property called driver that will be “software” when it is using Software StageVideo.stageVideo.length is not representative of HW or SW StageVideo and should not be used.  With SW StageVideo you can always expect this to be > 0.
  3. How does the value of HW Acceleration in right-click Settings panel impact StageVideo availability?
    It will disable HW acceleration and HW decode. Stage video software and software decode will be used.
  4. What is the best way to check for StageVideo availability before trying to load video content?
    The StageVideoAvailability event is called independent of video playback, so it can be checked at any time.  It is recommended to be checked before it’s used, so it should be checked before it is attached to NetStream.
  5. Is StageVideo available to all streaming formats ?
    Yes, StageVideo rendering is available for progressive, rtmp, appendBytes, or HLS formats.
  6. Where can I find more information on StageVideo?
    Getting started with StageVideo

Clean up NetStream after use

In order to conserve memory usage for video applications, its very important that any GPU or memory resources being consumed by the app are released and cleaned up.

NetStream object holds the buffered video data and handle to HW decoders so its very important that the object is cleaned up after its used.  This is specially important in the case of applications which create multiple NetStream objects and switch between them for displaying ads or to implement video playlists.

To clean up NetStream resources call Netstream.close() which will release all buffers and HW decoders and is ready for re-use if it needs to be recycled for another stream.  If the NetStream isn’t needed anymore, call NetSteam.dispose() instead.  In both the cases, detach the attached StageVideo object to it, by calling StageVideo.attachStream(null) which will also stop video playback and release the StageVideo object for another stream.

Special thanks to Abhinav Kapoor for putting together this article.

April Flash Runtime Updates

Both Flash Player 17 and AIR 17 were updated on April 14th during our planned April release.  This release focuses on security and functional improvements and does not include new functionality.  Flash Player customers that have opted into our automatic update process will receive this release within 24 hours.  AIR runtime customers will see a notification update dialog within 7 days (or the next time you run your AIR based application).  Full details for this release can be found in the our release notes and security bulletin.

Flash Player and AIR 17 Release Notes

Security Bulletin APSB15-06

Attention AIR iOS developers – If you would like to learn how you can use the Adobe Gaming SDK ANE’s in your universal iOS applications, please check out this recent article by our own Abhinav Dhandh!

Gaming SDK ANE’s – Universal 64-bit support

Abhinav provides the reader a high level overview of the included ANE’s and then step by step instructions on how you can modify and rebuild these ANE’s for your projects.

Finally, for those that read the Get AIR blog post by Philomena Dolla back in January, you might have noted that we were at 2.5 billion installations of AIR applications.  A monumental achievement to say the least!  It’s a little less than 3 months later and we’re now at 3.3 billion installations (and over 4 billion installs and updates!)  Congratulations to all of the amazing AIR developers and the enormous success your applications have had across the globe!

Flash Runtime 17 and more!

Flash Player and AIR 17 have arrived!  With this new release we’ve added some excellent features requested by our development community.  We recommend everyone check out the official release notes but I’ll cover some of the highlights below.  We’re also in the process of updating our public roadmap, for those interested in checking out an early preview read past the break!

Continue reading…

Feathers updates to 2.1.0

Congratulations to Josh Tynjala and the Feathers open source project for the release of Feathers 2.1.0 this week. Feathers offers a large collection of ActionScript UI components and layouts for mobile and desktop. Built on top of Starling, Feathers is a key framework in the Adobe Gaming SDK.

feathers-cube-transition

In version 2.1.0, Feathers includes a few new UI components and some new animation options to visually enhance your apps and games.

The AutoComplete component builds on top of the existing TextInput component to display a drop-down list of suggestions that is filtered as the user types.

SpinnerList is a mobile-style list that changes its selected item by scrolling. Items repeat infinitely in both directions – like a reel from a slot machine.

StackScreenNavigator enhances the classic ScreenNavigator component to add a history stack that makes it easier to go back to a previous screen.

The new StackScreenNavigator benefits from a new, expanded collection of animated transitions. In addition to simple transitions that slide screens into view or fade them in and out, Feathers takes advantage of the new Sprite3D feature added in Starling 1.6 to add card-flip and cube transitions that rotate in 3D space. Seven types of transitions are included with Feathers (each offers a number of customization options), and anyone may create custom transitions using familiar Starling animation techniques.

You can find the complete release notes on the project’s Github page. Developers are encouraged to download the latest stable version from the Feathers website.

Adobe AIR and Android 5.0

Google has recently started rolling out an update to Android (OS 5.0 – Lollipop) on select devices. Unfortunately, this operating system upgrade has caused problems with AIR based applications.  We are working closely with Google to fix these issues.  This blog post describes the currently known problems and workarounds that developers can use for new applications.

Update 12/3/2014: Google has reported that this issue has been fixed with Android 5.0.1!  This OTA update is being currently being deployed to devices and we will continue to track the status and welcome your feedback.

Continue reading…