• Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
    Dedicated community for Japanese speakers
  • 한국 커뮤니티
    Dedicated community for Korean speakers
Exit
Locked
0

64bit Windows app for native installs?

New Here ,
Feb 24, 2018 Feb 24, 2018

Copy link to clipboard

Copied

Hello! I currently run a game that uses a native installer for the Windows desktop runtimes to make use of the self-updating capabilities. I noticed that the 64bit Windows version has been out for a while now, but only for captive runtimes.

Are there plans to bring this to native as well or am I out of luck? Just wanting to hear one way or another to see if I should wait it out. I could really use those bits!

TOPICS
Air beta

Views

2.9K

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines

correct answers 1 Correct answer

Engaged , Feb 26, 2018 Feb 26, 2018

Votes

Translate

Translate
Enthusiast ,
Feb 24, 2018 Feb 24, 2018

Copy link to clipboard

Copied

From Adobe release notes, they intend to support the Windows 64-bit AIR runtime only when it is a captive runtime

see 2/22/2018 - Beta - AIR 29.0.0.108​

Combined Windows 32-bit and 64-bit AIR SDK

...

The AIR SDK for 64-bit AIR applications had the functionality to package 64-bit captive applications only.

...

The packaging of shared and native AIR application will not be affected by any of the above-mentioned methods. They will continue to be supported as 32-bit applications on Windows. Also, packaging AIR applications on Mac won’t be affected.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Feb 24, 2018 Feb 24, 2018

Copy link to clipboard

Copied

I had noticed that comment, but I thought that maybe it was their intent for only the present moment. If this is true, that's a pretty big bummer. I've been researching lots of ways to roll my own updater, but none of them are as good as the native application version or are overly complex.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Enthusiast ,
Feb 24, 2018 Feb 24, 2018

Copy link to clipboard

Copied

Personally I would advise to go the captive runtime route and provide your own installer,

under Windows it will allow you to publish your app on the Windows 10 store for example

(something you can not do with a non-captive runtime).

For Windows, you can use many free installers

Nullsoft NSIS (remember WinAmp?)

jrsoftware Inno Setup
WiX Toolset

You have also commercial installers

Flexera Installshield (price are quite high, but if you own a Visual Studio licence you have a licence to InstallShield Limited Edition)

InstallAware (not free, but free 30days trial, free Visual Studio extension, and open source APPX converter)

Advanced Installer (basic features are free see freeware, more advanced stuff are not free see professional etc.)

The freeware version of Advanced Installer should cover most of your Adobe AIR installer needs
eg. it is a visual editor, it takes about 10mn to create an installer.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Feb 24, 2018 Feb 24, 2018

Copy link to clipboard

Copied

Thanks for all of the suggestions! Any of those should work well for the Windows version.

My problem is that my game is constantly updated on several operating systems, so a way to download a new version quickly is important. I need to be able to determine if the user is running 32 or 64bit Windows and also provide Mac support.

Ideally, the app would use a crossplatform launcher that checks the user's OS, downloads the appropriate version and then launches the program. I've been looking all over for something like this, but it's extremely difficult to get working.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Enthusiast ,
Feb 24, 2018 Feb 24, 2018

Copy link to clipboard

Copied

kylem91237550  wrote

Ideally, the app would use a crossplatform launcher that checks the user's OS, downloads the appropriate version and then launches the program. I've been looking all over for something like this, but it's extremely difficult to get working.

I would avoid doing something like that, simply because the installer need to be a native binary for the target platform

on Windows you will either produce a .exe or .msi installer, and on macOS you will either produce a .pkg or .dmg installer

you can not have one single installer that does both.

so, my advice would be to automated the process with an automated build

use whatever you want: ant, make, etc. to produce your Adobe AIR app

with captive runtime you need to be on Windows to produce the Windows version

and need to be on macOS to produce the macOS version
but the "assets" will be similar

then for each platform where you want to distribute your AIR app
you also use an automated process to generate the installers

Under Windows, something like Advanced Installer can create a template
that you can then run on the command-line afterwards

Under macOS, you can find equivalent installer tools

tools like pkgbuild and productbuild (command-line) are installed with XCode
and you can use hdiutil to create a .dmg
see OS X: Creating Packages from the Command Line - Tutorial and a Makefile

see Using Ant to automatically create MacOSX DMG disk images


you can find free GUI tools, for example Packages
(see the resources page which is packed with tons of infos)

you also have commercial tools like DropDMG

most of those tools even with a GUI/IDE will let you generate a kind of template

that you can then reuse in your command-line automated build

So yeah it will require more work from you to organise all that
but it is worth it, once all those building stuff is automated

you'll merely update the version etc.

you will have the luxury to generate installers for many different Windows setup

32-bit and 64-bit, Windows 7/8/8.1 signed installer either exe or msi,

Windows 10 appx installer on the windows store, etc.

And same for mac, wether you want to distribute your own .dmg or

distribute with the mac app store, etc.

Technically by producing professional installers you can reach more users

and avoid the caveat like "huho this app is not signed should I install it or not?"

the iOS SDK licence allow to sign mac OS desktop apps too
for Windows 7/8/8.1 you will need a code signing certificate
for Windows 10, under the Windows Store you self-sign the app and then the store sign it
(works like Android, developer account cost like $20 or something)

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Feb 25, 2018 Feb 25, 2018

Copy link to clipboard

Copied

Thanks again for those installer recommendations. I think for the initial installers, I will use Inno Setup for Windows and Packages for Mac.

I need to clarify that I meant I wanted some type of launcher that I can easily compile for Windows/Mac that launches before the primary app, checks for updates to that app, and then installs and launches the updated app. For Windows this would be some sort of .exe and for Mac an .app.

I don't want existing users to have to run an installer every single time I update the app, which is frequent. It's a standard in the industry to have patcher that can update pieces of the app instead of requiring the user to launch an installer every time an update is released. It's also not great for the users nor server bandwidth to force them to redownload everything.

I will definitely have users download an installer for the launcher and game executable, but after that I need some type of launcher that is capable of making sure the main AIR game client is up to date. I'm willing to purchase a solution if necessary. This is what I'm looking for, but more of something that doesn't require Mono or another heavy framework: GitHub - dan200/IndieLauncher: A lightweight and unobtrusive launcher and updater for Indie Games

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Enthusiast ,
Feb 25, 2018 Feb 25, 2018

Copy link to clipboard

Copied

Well ... you're targeting the Desktop and it is Adobe AIR
so you can easily build an hybrid app that shares web and desktop apps pros

imho you don't need a separate launcher because who/what gonna launch it before your main app?
usually for those cases apps use a daemon or background service but AIR can not do that

but there is something much simpler and efficient
consider your main SWF associated to your app xml as the launcher/updater

which load a secondary game.swf


when you launch the app (main.swf)
you can check online if there is an update available

and download the new swf and launch that one instead of the now old game.swf

if you want to make it more advanced yeah you can patch the game.swf itself

but if your organise the assets like textures, sounds etc. as separate files
the game.swf should stay small in size and that would be good enough to just overwrite the old one
or accumulate the different game.swf versions
eg. game_1-2-3.swf, game_2-0-1.swf, game_3-2-1.swf, etc.
and use a config file to set the default game.swf to launch

so yeah I would use AIR to actually create that launcher/updater
as imho it is perfect for that

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Feb 25, 2018 Feb 25, 2018

Copy link to clipboard

Copied

I like the idea of having a secondary swf that functions as a loader, capable to downloading a newer swf and then replacing the swf that's currently in the application bundle. I think I ran into a SecurityError when trying to swap files within the folder/mac app, but I could look into it again.

The only thing preventing me from trying that method is the problem of how to update the AIR runtime itself. I wasn't able to find a way to copy new frameworks into the app folder and then remove the old ones, which would then also require the app to restart itself. I could check on my server for a new AIR framework, but getting it in the right spot is presenting an issue.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Engaged ,
Feb 26, 2018 Feb 26, 2018

Copy link to clipboard

Copied

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Feb 26, 2018 Feb 26, 2018

Copy link to clipboard

Copied

hferreira80​ That looks incredible. I see you mention that it has the possibility to cross-compile apps for Windows? I'm currently on a Mac and being able to build without always using a VM would be amazing.

Does the class provide the ability to update the Mac/Windows Framework within the bundle as well? In the "App updates" section it's mentioned that you can update the SWF and other files, but being able to update the framework runtime would make this solution ideal.

If I can get this to work I would be more than happy to help contribute to the project, if you're interested. I know how much time you spent on this and I respect the amount of work you put it, let alone going public with it.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Engaged ,
Feb 26, 2018 Feb 26, 2018

Copy link to clipboard

Copied

"That looks incredible."

Thanks.

"I see you mention that it has the possibility to cross-compile apps for Windows? I'm currently on a Mac and being able to build without always using a VM would be amazing."

Yes. You can use a macOS and compile only once for both macOS and Windows or you can use a Windows and compile once for both macOS and Windows.

"Does the class provide the ability to update the Mac/Windows Framework within the bundle as well?"

Yes.

"In the "App updates" section it's mentioned that you can update the SWF and other files, but being able to update the framework runtime would make this solution ideal."

Yes, you can.

"If I can get this to work I would be more than happy to help contribute to the project, if you're interested. I know how much time you spent on this and I respect the amount of work you put it, let alone going public with it"

I spent weeks to build and test this class until became perfect.

Tested on multiple Windows VMs (from Windows XP to 10) + native macOS.

Is being used daily from many users from all Windows + macOS AIR supported systems.

Updates almost all weeks.

Since the update it's a small footprint, it takes few seconds/moments.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Feb 28, 2018 Feb 28, 2018

Copy link to clipboard

Copied

Thanks again for this! I'm going to look into incorporating this in my project very soon. Would it be okay if I contacted you via email for further discussion? I found one listed from your website. If you have another one you'd prefer you can PM me.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Engaged ,
Feb 28, 2018 Feb 28, 2018

Copy link to clipboard

Copied

LATEST

Yes, you can contact by e-mail.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines