Skip navigation
Currently Being Moderated

air 3.3 and Mac app store?

Jun 12, 2012 9:12 PM

Tags: #application #desktop #3.3

The release notes for Air 3.3 suggest that you can package for the Mac (desktop) app store but I cant find any documentation on how this is achieved? Has any one done this?

 
Replies 1 2 Previous Next
  • Currently Being Moderated
    Jun 25, 2012 3:43 AM   in reply to smallblueprinter

    Just bumping this thread, I'm also looking for how to package an AIR3.3 for Mac appStore.

    (Which nested bundles needs to be signed, how do I enabled app-sandboxing which is now a requirement)

     
    |
    Mark as:
  • Currently Being Moderated
    Jun 25, 2012 10:53 PM   in reply to smallblueprinter

    I am curious about this as well.

     
    |
    Mark as:
  • Currently Being Moderated
    Jun 26, 2012 7:21 AM   in reply to smallblueprinter

    I agree, the AIR SDK documentation is poor on this subject.

    Some guidelines would be appreciated.

     
    |
    Mark as:
  • Currently Being Moderated
    Jun 26, 2012 8:49 AM   in reply to smallblueprinter

    I have the same problem. Today i try to add app for air bundles to sandbox but always prompt Quarantine resolution refused. However when i remove sandbox everything is all right(Before we had submitted to Mac App Store, id is 530075950). I searches to search, discover the problem goes to go up in open directory eventually that using function for openWithDefaultApplication of file class.

    Test source files:http://www.iyoya.com/soft/test/openWithDefaultApplicationTest.zip

     
    |
    Mark as:
  • Currently Being Moderated
    Jun 26, 2012 2:33 PM   in reply to Jack Zhang

    Didnt Adobe promise improved Mac App Store support??? YES they did....

    I expected the ease of the Air for iOS Exporter

    The new publish options in CS6 does only help 50% +  the rest is guesswork !! SHAME!!!..

    the provided information  about this is non existing.

     

    Anyway  this  one of a kind walkthrough by Pigsels can get you on the right track

    http://pigsels.com/2012/04/air-app-store-publishing-guide/#more-23

     

    only Terminal codesign and productbuild  part is needed

     

    Post if you make it

     
    |
    Mark as:
  • Currently Being Moderated
    Jun 26, 2012 2:39 PM   in reply to Solveig79

    That guide no longer works since Apple now require the applications to run in a special sandbox mode.

    I assumed this was one of the improvements in AIR3.3, but I can't find any information about it from Adobe.

     
    |
    Mark as:
  • Currently Being Moderated
    Jun 27, 2012 12:06 AM   in reply to zworpp
     
    |
    Mark as:
  • Currently Being Moderated
    Jun 27, 2012 6:28 AM   in reply to zworpp

    I also followed this guide, I had no problem with packaging and signing but I can't find any information about sandboxing apps for Mac AppStore with AIR.

    I think I will use this guide provided by Apple:

    https://developer.apple.com/library/mac/#documentation/Security/Concep tual/AppSandboxDesignGuide/AppSandboxQuickStart/AppSandboxQuickStart.h tml#//apple_ref/doc/uid/TP40011183-CH2-SW3

    and try to figure out how to adapt it to AIR.

     

    I will let you guys know how I'm doing.

     

    But I wish Adobe can tell us what imporvement they made to Captive Runtime to make it more compatible to Mac AppStore.

     
    |
    Mark as:
  • Currently Being Moderated
    Jul 2, 2012 11:44 AM   in reply to Idden-0o

    news? this is really annoying...

     
    |
    Mark as:
  • Currently Being Moderated
    Jul 17, 2012 2:05 PM   in reply to Gennaro Graziano

    Thanks for your reply, but we are speaking about packaging for Desktop. Now the apple require the sandboxing in your app, and we don't know how to. We can't upload our APP on Mac App Store cause the sandbox is not enabled. How can we enable it? (sorry my English)

     
    |
    Mark as:
  • Currently Being Moderated
    Jul 17, 2012 5:25 PM   in reply to Gennaro Graziano

    We are discussing the Captive Runtime feature of Adobe AIR3, which is unrelated to Adobe Captivate.

     

    Could you please try and contact someone on the AIR team?

    I'm sure there are more users than us on this forum wondering the same thing.

     
    |
    Mark as:
  • Currently Being Moderated
    Jul 19, 2012 11:47 AM   in reply to zworpp

    EDIT : I have completely rewritten my post and made it complete so that if anyone subbles directly on this, all infos and links on building on the app store are on the same page.

     

    Air 3.3 DOES support sandboxing for the Mac App Store. You have to enable it in the .app entitlements, just as you have to do it when coding directly from XCode.

     

    Our App just got approved today using those exact steps!

     

    1 - Follow all required step to build your (yet) unsigned .app. There is a pretty complete walkthrough here, just add the following steps to the codesign related steps : http://pigsels.com/2012/04/air-app-store-publishing-guide/ .

     

    2 - You now need to add 2 icons in the generated YourApp.app/Contents/Resources/Icons.icns file : 512x512 and 1024x1024 (yeah, that's huge, it's for retina display). I did this on Windows using a trial version of IcoFx, I don't know on Mac but a little googling should do the trick in no time. Note that you MUST do this before signing the app.

     

    3- Create an entitlements.plist file that defines sandboxing as enabled

     

    entitlements.plist :


    <?xml version="1.0" encoding="utf-8"?>
    <plist version="1.0">
       
    <dict>
           
    <key>com.apple.security.app-sandbox</key>
           
    <true/>
       
    </dict>
    </plist>

     

    4- When you codesign your application, define entitlements with previously created file. This will NOT overwritte the Info.plist file found in YouApp.app/Contests. Also note that paths can be relative.

     

    codesign command :

    codesign -f -v -s DEVELOPER_CERTIFICATE_NAME --entitlements /path/to/entitlement.plist /path/to/YourApp.app/


    source : http://stackoverflow.com/questions/8385252/how-to-build-sandboxed-app- without-xcode

     

    NOTE : I don't know if you need to enable sandboxing for each of the Adobe bundles you have to sign with your developer certificate. In the end, I didn't do it, we'll see what Apple will decide.

     

    5 - Confirm that sandboxing is enabled by running the following command. Don't forget the lonely ' - ', it specifies standard output as display output. You should see the path of the executable followed by the content of your entitlements.plist file. If not, you did something wrong and you should check out step 1,2 or 3 again.


    codesign display entitlements command :

    codesign --display --entitlements - /path/to/YourApp.app

     

    6 - Package and submit your app by following the rest of the instructions on http://pigsels.com/2012/04/air-app-store-publishing-guide/ . Note that you MUST specifiy /Applications as the installation path or else you won't be able to submit your app to Apple

     

    product build command

    productbuild –component /path/to/bundle.app INSTALLATION_PATH /path/to/installer.pkg –sign INSTALLER_CERTIFICATE_NAME

     

    There you go!

     
    |
    Mark as:
  • Currently Being Moderated
    Jul 20, 2012 8:25 AM   in reply to kboilydev

    Excellent, thank you Kboilydev!

    This seems to work for me also, in cue for the manual approval now.

     
    |
    Mark as:
  • Currently Being Moderated
    Jul 26, 2012 6:36 AM   in reply to smallblueprinter

    This became a little confusing.

     

    So there is this guide with AIR 3.2 that is huge (but fortunally exist):

    http://pigsels.com/2012/04/air-app-store-publishing-guide

     

    However meanwhile was realease the AIR 3.3 with Mac App Store with better support but there is no documentation about that.

     

    Meanwhile same users report that the apps are rejected about sandbox security in Mac App Store.

     

    Meanwhile same other users found the workaround.

     

    So, in short what part of the http://pigsels.com/2012/04/air-app-store-publishing-guide guide is to follow (using AIR 3.3) with what kboilydev have founded (by the way, thank you ) ?

     
    |
    Mark as:
  • Currently Being Moderated
    Jul 26, 2012 7:01 AM   in reply to hferreira.80@gmail.com

    Hello hferreira.80@gmail.com,

     

    In fact all you have to do is replace step 3 ("Codesign inner Adobe bundles with your developer certificate") from the Pigsel guide and replace it with steps 1 to 5 from my post. My step 6 is referring to the "Creating an installation package" part of the guide, I've just copy/pasted the command and warned that INSTALLATION_PAH must be set to /Applications now or else the app will be refused on upload to Apple.

     

    Hope that helps you!

     
    |
    Mark as:
  • Currently Being Moderated
    Jul 26, 2012 7:01 AM   in reply to hferreira.80@gmail.com

    This is how I did it.

     

    I followed the guide at pigsels but made these changes.

     

    1. Right after creating the .app, I added the 512 and 1024 icons to the icon file using Icon Composer on my Mac, it's a part of Xcode.

    2. Then I continued with the pigsels guide but before I created the installer I did the entitlements step as described by Kboilydev.

     

     

    Make sure you have the latest version of Xcode or Icon Composer might not support the 1024 icon size.

     
    |
    Mark as:
  • Currently Being Moderated
    Jul 26, 2012 7:06 AM   in reply to zworpp

    Thank you, thank you both kboilydev and zworpp.

     

    I will follow all the steps with the exceptions that you guys gentle answer me and see what I can get

     
    |
    Mark as:
  • Currently Being Moderated
    Jul 26, 2012 5:22 PM   in reply to hferreira.80@gmail.com

    I have bought the Apple developer program, generate and download my certificates, follow all the steps and when I try to codesign my app file, I get the following error: object file format unrecognized, invalid, or unsuitable

     

    Note: My app was created with Flex and the app file was created with AIR 3.3 capitva runtime thru Flash Builder 4.6.

     
    |
    Mark as:
  • Currently Being Moderated
    Jul 27, 2012 5:19 AM   in reply to hferreira.80@gmail.com

    You need the application to be in a ".app" format, not .air or .dmg . You can't do this through Fash Builder and must run the adt command manually on your compiled myApp.swf and myApp-app.xml (and all other required assets) using the "-target bundle" switch. this will create a .app file. You can refer to Packaging a captive runtime bundle for desktop computers for more informations.

     

    So, compile your project and then bundle with adt.

     
    |
    Mark as:
  • Currently Being Moderated
    Jul 27, 2012 6:23 AM   in reply to kboilydev

    Once again, thank you kboilydev

     

    I will try this today

     
    |
    Mark as:
  • Currently Being Moderated
    Jul 27, 2012 6:01 PM   in reply to hferreira.80@gmail.com

    Well, the current release of Flash Builder 4.6, can build one app file with the captiva runtime and I tought that something was wrong, so go thru the command line adt process and after sucessfull build I get the same error.

     

    The next step was to try to re-sign another app that I previous have installed in my system (a copy of one app file from the Mac App Store) just for in case something external to the AIR/Flex environment and I get the same error !!!

     

    So, I go thru the XCode -> Preference -> Downloads -> Install Command Line Tools (this will update my previous version of the command line tool codesign) and voilá. I can now create one app file directly from the Flash Builder 4.6 and simple code sign the file from the command line tool. After all the problem was with one old command line tool installed in my system

     

    What I waste of time but also experience gain (I'm a Mac user only from 3 month).

     

    Well, I go now for all the process, publish in the markeplace and see if my app will also been approved.

     

    Thank you very much for your guides

     
    |
    Mark as:
  • Currently Being Moderated
    Jul 31, 2012 4:10 PM   in reply to hferreira.80@gmail.com

    I just sucessfull upload my first apk with 0 errors and 0 warnings in the ApplicationLoader

     

    So, even one Adobe Flex app can be upload to the Mac App Store thru Adobe AIR 3.3

     
    |
    Mark as:
  • Currently Being Moderated
    Jul 31, 2012 4:21 PM   in reply to hferreira.80@gmail.com

    It works

     

    This is my first game for Mac App Store... with sandbox enabled!

    http://itunes.apple.com/us/app/lights-off-pro/id537931008?mt=12

     
    |
    Mark as:
  • Currently Being Moderated
    Jul 31, 2012 4:30 PM   in reply to Gennaro Graziano

    By the way. How many time they took to approve your app ?

     

    Since this is not the iOS marketplace (maybe less then 1% of the size of the iOS), they have much more less to approve daily !

     
    |
    Mark as:
  • Currently Being Moderated
    Jul 31, 2012 4:50 PM   in reply to hferreira.80@gmail.com

    7 days

     
    |
    Mark as:
  • Currently Being Moderated
    Jul 31, 2012 4:54 PM   in reply to Gennaro Graziano

    It's less then my first iOS app (more or less 3 weeks) but even so it's a long time.

    It's not on my hands now, so just wait.

     

    I have create a long sh script to all this process: macappstore.sh

     
    |
    Mark as:
  • Currently Being Moderated
    Aug 7, 2012 6:00 AM   in reply to hferreira.80@gmail.com

    After about 15 days I finally got my game RIFT approved by apple.

    So yes, the steps posted in this thread works. Just wish Adobe would publish an offical doc for this.

     
    |
    Mark as:
  • Currently Being Moderated
    Aug 17, 2012 1:28 AM   in reply to smallblueprinter

    Well, after 15 days my app finally enter in review process so at least it should be fine in all this process but unfortunally it was my first rejected app because of 2 simple reasons:

    1. I have one mobile menu item that knows to the user my mobile version (iOS and Android) and Apple dont allow that;

    2. My app starts with a very simple "1.0 like" interface that user can expand with a menu item called "install apps" that is no more than activate/visible modules already available but the term "install" generate a big confusion because Apple dont allow install/download external apps.

     

    I remove the advartising menu item of the mobile edition and change the "install apps" title to "activate apps".

    Lets see and many days thei took the app again and if this time they approve

     
    |
    Mark as:
  • Currently Being Moderated
    Aug 22, 2012 3:16 PM   in reply to hferreira.80@gmail.com

    Ho man, second rejection !

    It works great in development environment but failled because I use remote procedure call (for a sync feature with a backend).

    The entitlements.plist as mention above it's the mininum requirement for the app is proper sandboxed but then we have to enter new keys when using the system resources. In my case I only have to add the key security.network so the Apple stuff can check this key and decide if will be approved to use this resources or not the app and without the key the sandbox simple block the use of this resource.

     

    For a complete list just check this: http://developer.apple.com/library/mac/#documentation/Miscellaneous/Re ference/EntitlementKeyReference/Chapters/EnablingAppSandbox.html

     

    Let's see if this time will be approved or not

     
    |
    Mark as:
  • Currently Being Moderated
    Sep 7, 2012 3:40 AM   in reply to hferreira.80@gmail.com

    After 4 rejections and a lot of waiting time my app was finally aproved

     

    So, yes, it's possible to upload to Mac App Store apps developed with Adobe Flex 4.6 and Adobe AIR 3.3 with a few patchs after compile the package.

     

    Thank you all for your support

     
    |
    Mark as:
  • Currently Being Moderated
    Oct 24, 2012 6:36 AM   in reply to hferreira.80@gmail.com

    please help! I'm receiving the "Contents/Frameworks/Adobe Air.framework/Versions/1.0 Payload not declared in PackageInfo." error when I try to upload via Application Loader.

     
    |
    Mark as:
  • Currently Being Moderated
    Oct 24, 2012 11:10 AM   in reply to alex2stf@xtzy

    I have hear all the info you need.

    Just code sign until you dont get any more errors.

     
    |
    Mark as:
  • Currently Being Moderated
    Oct 25, 2012 6:27 AM   in reply to hferreira.80@gmail.com

    i code signed everything, sandbox is enabled, but i still receive this error:

    "Contents/Frameworks/Adobe Air.framework/Versions/1.0 Payload not declared in PackageInfo."

     

    According to this post: http://kevin.colyar.net/2011/02/submitting-a-macruby-app-to-the-mac-ap p-store/ I thought there might be a problem between Framework version "1.0" folder and the sim link "Current"

    Anyway, i removed the sim link, and renamed folder "1.0" as "Current" and guess what: my application was finally submitted thru Application Loader, but of course, my binary was invalid. It seems that Application Loader read twice the Framework resource folder. 

    It seems that i know the issue, but i don't know how to resolve it.

    Is there any way i can have only one folder in "framework/Versions" folder?

     
    |
    Mark as:
  • Currently Being Moderated
    Oct 25, 2012 6:37 AM   in reply to alex2stf@xtzy

    Uhmm I remember the symlink being there when I code signed, should not be a problem.

     

    Just be careful in fact that the symlink IS there. If it's not, build again with adt.

     

    BTW, if I remember correctly I was getting errors if I codesigne'd some files. Here's what you should sign :

    /Contents/Frameworks/Adobe\ AIR.framework/Versions/1.0/Resources/AdobeCP15.plugin

    /Contents/Frameworks/Adobe\ AIR.framework/Versions/1.0/Resources/Flash\ Player.plugin

    /Contents/Frameworks/Adobe\ AIR.framework/Versions/1.0/Resources/adobecp.plugin

    /Contents/Frameworks/Adobe\ AIR.framework/Versions/1.0

    /Contents/Frameworks/Adobe\ AIR.framework

     
    |
    Mark as:
  • Currently Being Moderated
    Oct 25, 2012 6:48 AM   in reply to kboilydev

    my symlink is there, i code signed everything, sandbox is enabled... stars in the sky... but i still receive the error 

     
    |
    Mark as:
  • Currently Being Moderated
    Oct 25, 2012 11:40 AM   in reply to alex2stf@xtzy

    My complete "Flex AIR Desktop build script":

     

    cp Info.plist myapp.app/Contents

    cp Icon.icns myapp.app/Contents/Resources

    rm myapp.app/Contents/Frameworks/Adobe\ AIR.framework/Versions/Current/Resources/WebKit.dylib

    codesign -f -v -s "My name" myapp.app/Contents/Frameworks/Adobe\ AIR.framework

    codesign -f -v -s "My name" myapp.app/Contents/Frameworks/Adobe\ AIR.framework/Versions/1.0/Resources/AdobeCP15.plugin

    codesign -f -v -s "My name" myapp.app/Contents/Frameworks/Adobe\ AIR.framework/Versions/1.0/Resources/Flash\ Player.plugin

    codesign -f -v -s "My name" myapp.app/Contents/Frameworks/Adobe\ AIR.framework/Versions/1.0/Resources/adobecp.plugin

    codesign -f -v -s "My name" --entitlements entitlements.plist myapp.app

    productbuild --component myapp.app /Applications myapp.pkg --sign "My name"

     

    I hope that now I can see more than stars

     
    |
    Mark as:
  • Currently Being Moderated
    Oct 25, 2012 11:58 AM   in reply to hferreira.80@gmail.com

    That look pretty good to me... what version of AIR are you using?

     
    |
    Mark as:
1 2 Previous Next
Actions

More Like This

  • Retrieving data ...

Bookmarked By (3)

Answers + Points = Status

  • 10 points awarded for Correct Answers
  • 5 points awarded for Helpful Answers
  • 10,000+ points
  • 1,001-10,000 points
  • 501-1,000 points
  • 5-500 points