Official support for Adobe AIR

Wow that was fast!

I’ll check it out and come back to you to let you know how it goes :slight_smile:

Thanks a lot!

I’m getting closer :slight_smile:
First it prompted this error: pathoftheproject\bin\air\cert\ios\DEV.mobileprovision (can’t find the specified path)
I manually added the cert folder in the bin/air folder and I guess it worked, but I can’t find any .ipa in this bin folder.
However there is a .air, but I can’t open it, it says the file is corrupted.
:confused:

1 Like

Try using the -v, -verbose, flag, when you build. That will let you see what commands the command-line tools use, and that might give us a better idea whether there are some wrong parameters being passed, or what output it should be generating

Hi again, I had to switch to something else, but I’m back trying to package for AIR iOS :slight_smile:

I used the verbose, I fixed some compatibility problem I had in my code, and it seems to work (I got a 30Mo ipa) but there is still a tiny problem, the provisionning profile is “linked” but not the certificat.

Here is the command line:

adt -package -target ipa-test -storetype pkcs12 -keystore C:\HaxeToolkit\haxe\lib\lime/5,7,1/templates/air/debug.pfx -storepass samplePassword -provisioning-profile cert/ios/aDEV.mobileprovision bin/myproject.ipa application.xml -C bin myproject.swf _res/icon-16.png _res/icon-32.png _res/icon-48.png _res/icon-128.png

I added this field in the project.xml

<certificate path="cert/ios/ios_dev.p12" password="mypassword" if="ios" />

but it doesn’t seems to be considered and use default values…

Is there anything I missed? :confused:

I found [this post] (http://www.openfl.org/archive/community/installing-openfl/building-air/) and added those lines:

 < setenv name="KEY_STORE_TYPE" value="pkcs12" if="air"></setenv>
    < setenv name="KEY_STORE" value="/path/to/mycertificate.p12" if="air"></setenv>
    < setenv name="KEY_STORE_PASSWORD" value="aaa" if="air"></setenv>

it seems to work, I can start the app on my iphone, perfect! except I got a white screen on my iphone … :frowning:

Sounds like I still have some stuff to figured out before have it full fonctional :smile:

Thank you! I just opened an issue:

This was originally written for an old, old version of our tools, before we improved our code signing code. It looks like this needs to be updated properly. Thank you for the help! I will look at this.

Maybe a little debugging will help? AIR seems to work great on the desktop, but I’m not quite sure what form of translation they do when going to iOS (Android seems to work fine), if it’s a little more brittle than normal. Maybe some remote debugging will help give an idea of an error code or other bump its hitting?

1 Like

Would be great to have a consistent way of adding provisioning / cert and a proper documentation :slight_smile:

That said, I’m trying to figured out what I need to change to add a debug option or override the application.xml file… sorry for the noob questions!

It should be -debug in order to make it a debug SWF (like openfl test ios -air -debug), I don’t think anything else should be needed, but you can watch the -verbose output and our generated application.xml if there’s anything you would otherwise expect from an AIR debug build normally

1 Like

Haha easy one :blush:
Regarding the application.xml I’d like to add few things and remove others in that generated application.xml file.
Is there a way to override it or should I change the template directly?

Yes, you can override any of our templates by doing something similar to the following:

  1. Create a “templates” folder
  2. Add <template path="to/your/templates" /> to your project.xml (after <haxelib name="openfl" />). The <template /> tag works like a class path, but for template files
  3. In your “templates” folder, mirror the structure found in “lime/templates” or “openfl/templates” for the file you wish to override. The AIR application.xml is “templates/air/template/application.xml”

I would be interested in what you want to change. Since our AIR support is somewhat new, we might not be supporting something we really should. Any feedback on what you’d like to see helps us with knowing what we should A.) wire in behind some other existing feature (like the above certificate feature) or B.) maybe enable by default, or enable using a custom AIR config value

Thanks again

1 Like

Thx,
I’ll give it a try :slight_smile:

On mobile there are actually few things not really useful:

	<systemChrome>standard</systemChrome>
	<transparent>false</transparent>
	<width>800</width>
	<height>600</height>

(I use Starling, and don’t need to force the size / ratio as I handle it in my app).

and at the contrary we need more icons:

  <image48x48>icons/icon_48.png</image48x48>
  <image57x57>icons/icon_57.png</image57x57>
  <image72x72>icons/icon_72.png</image72x72>
  <image76x76>icons/icon_76.png</image76x76>
  <image96x96>icons/icon_96.png</image96x96>
  <image114x114>icons/icon_114.png</image114x114>
  <image120x120>icons/icon_120.png</image120x120>
  <image144x144>icons/icon_144.png</image144x144>
  <image152x152>icons/icon_152.png</image152x152>
  <image512x512>icons/icon_512.png</image512x512>

EDIT: My bad, this one seems to be dynamic (but where if not in the project.xml?)

And sometimes a better control on permissions.

Also on iPhone I’m not sure why, it’s in my template since my first app, but I always add this

<iPhone>
  <requestedDisplayResolution>high</requestedDisplayResolution>
</iPhone>

Hmm, I wonder if we should use a default window width and height depending upon the target AIR platform:

We use width and height 0 on mobile as a default “scale to fit the native screen size” value.

You’re right, we should also duplicate some of our icon code from other targets

vs.

Thanks for the tag for retina display, I bet we could do ::if WIN_ALLOW_HIGH_DPI:: in our template (and use <window allow-high-dpi="false" /> in the project.xml if you need to disable it)

I added a couple new issues to track this, hope to solve this soon :slight_smile:


Hi again!

I’ve just made a round of fixes and changes:

Thanks again for the feedback :slight_smile:

4 Likes

Where can we find the /.lime/config.xml file please? I get the Error: You must define AIR_SDK with the path to your AIR SDK when I try openfl build air.
Edit: I finally found your answer on another post thanks :d
I link them here in case someone else needs it in the future.


2 Likes

Hi there,
I did not test AIR target yet, but I have a question:
Is it possible to create a captive runtime application for desktop?

Thanks for your answer :slight_smile:

1 Like

Yep! openfl build air && openfl deploy air should do it

1 Like

Hi @singmajesty, jumping here too!

How can I specify ios certificate, password and mobile provisioning?

I’ve Using old Signing Certificate feedback and ipa is not generated.

EDIT:

Ok got it, added in project.xml:

<certificate path="/Users/aymeric/Certificats.p12" password=“test.” />
<config:ios provisioning-profile="/Users/aymeric/All_Develop.mobileprovision" />

3 Likes

@singmajesty Thanks for the Adobe Air support.
I am trying out Haxe + OpenFL(8.9.1) + Lime (7.5.0) with Starling(2.5.1). But I keep on getting a error when I try to run/debug the Starling (Haxe) demo in FlashDevelop.
This is what error is saying…
TypeError: Error #2007: Parameter idleMode must be non-null.
at flash.desktop::NativeApplication/set systemIdleMode()
at lime._internal.backend.air::AIRApplication()[D:\HaxeToolkit\haxe\lib\lime\7,5,0\src\lime\_internal\backend\air\AIRApplication.hx:16]

Check this post

Thanks so much! I ended up modifying the Lime lib on my system with the git amend for externs/air/flash/desktop/SystemIdleMode.hx and now works.