Adobe Air App EXE on a USB Stick - windows

EDIT: As it turns out, the issues described here were caused by an outdated version of the Adobe Air runtime. The Air app I had written was compiled for Air 2, but the computers were running Air 1.5. Updating the computers to Air 2.7 (the current version at the time of writing) fixed the problem. Unfortunately, running a newer Air app in an older runtime generates a misleading error. Beware!
ORIGINAL POST:
I'm building an Air app for internal use at my company. I need to install the app to a USB data stick, so that the installed app may be quickly moved from one computer to another. This works just fine on Macs, with the .air generated .app program running just fine on whatever Mac it is moved to.
When I do this on Windows, however, it only works on the computer that performed the initial installation of the .air file. Moving the stick to a different computer and running the program .exe results in an error message: "The installation of this application is damaged. Try reinstalling or contacting the publisher for assistance".
Is this the expected behaviour? Is there any way to run an AIR .exe on a USB data stick regardless of the computer that generated the EXE?
Just to be clear: I'm not looking to move the installer between computers, but the .exe that results from running the installer. I want to run the .air installer once, take the .exe result, put it on a data stick, and then run that .exe on any computer.

Simple recipe to make a portable Adobe AIR app
Ingredients:
A whole ziplock of Adobe AIR SDK, recently harvested from Adobe's server farm.
One .air package, fresh.
Command-line to taste.
Steps:
Extract the .air package with a 7-Zip blender.
In this folder bowl, whisk in the bin/adl.exe and runtimes/air/win from the SDK.
Take the META-INF/AIR/application.xml yolk and set aside.
Make sure to have adl.exe, win/ and application.xml in the folder casserole.
Add a pinch of adl -runtime win application.xml and let it simmer.
Optional: if you want shortcut sauce, just take note of the folder's location in your filesystem kitchen and re-write the parameters above so they have full paths to the win runtime and application.xml.
Finally, most .air will come with a baker's dozen .pngs in the icons directory. You can use an icon oven to grill these into a golden crispy icon.ico to be used in the shortcut sauce.
Bon appétit.

Compile the app to a native exe: http://www.beautifycode.com/compile-air-to-native-dmg-or-exe-files-with-ant. That should do the trick!
and http://help.adobe.com/en_US/air/build/WS789ea67d3e73a8b22388411123785d839c-8000.html
Update: for full stand alone operation look into shu-player, or http://dmartin.org/weblog/how-run-adobe-air-apps-windows-without-admin-rights

There's an easy method I always use (and I have never met the cases it hadn't worked).
Compile ".air" package, install it on your computer. After that, copy the following files from the app folder (keeping the directory structure intact) and run on any Windows machine which has the AIR framework installed.
Minimum set of files to copy:
\META-INF\AIR\application.xml
YourApp.exe
YourApp.swf
Once again, the limitation - your app can only be run on Windows.

In AIR 3 (in Beta right now), you can package an app as a "captive runtime bundle." On Windows this produces a folder that includes your app and the runtime itself. You can run the app from this folder without installation. Of course, some features won't work without installation. For example, registering file types for your app requires registry entries on Windows, so you would need an installer for that (or a utility program that set the required registry values would work, too)

Related

How to install mac os apps with script?

I live in a country which almost no buty use Mac, so I grew up in IT without any knowledge regarding Mac OS.
At the moment I am working in a company which have lots of people who uses Mac PC's, because of the Covid-19 situation, most of them working from home and we are implementing Checkpoint and Fortigate in few of our branches around the country, I was able to make a Batch script to install a costume Forticlient with all the configuration inside it, the script first importing the registry then installing the app itself, after that copying the RDP file to the desktop of the user, all this was packed into Self extracted zip file, and everything is installed in silent mode.
How can I achieve the same in Mac OS?, I was able to download the Microsoft Rdp package and the checkpoint and fortigate packages (there is .pkg and .dmg file).
I have a Catalina and Mojave VM to do the tests.
I've searched the web and found out that Apple has some simple scripting language which called "Apple script", does this language can accomplish this task? or I should look for another solution?
Thanks alot for your help.

Creating a Mac OS application installer from .Net Core project

I am completely new to Mac OS and I have an application written in .Net Core codebase. Now all I want is to get it installed on Mac OS machines. My question is how can I create an installer (.DMG) file? At the moment My Visual Studio on Windows has created a .dll file with all other dependencies in the folder. Also for now most of the configuration values I have hard-coded but in the release build it has to be chosen by an end-user. So how can I prompt them for required directories? If you can provide me a link for documentation tool or any kind of suggestion would be greatly appreciated. At the moment if I want to run my application on Mac I have to use Terminal and then dotnet myApplication.dll in order to run application. My end goal would be to ask user for all required file paths and at the end create a System level Daemon (similar to windows service) to keep it always Alive. Would Xcode help in this situation? I already tried to open my .Net core project using xcode but it failed to load saying unsupported proect type.
Thanking in advance for your help!
If you wanted to use the standard macOS Installer to distribute your .net Core app, you would need to create a .pkg file. There seem to be ways to do this on the console or with Third Party Tools
sudo pkgbuild -install-location /Applications -component /path/to/your/application ./Desktop/YourPackage.pkg
There is an older manpage for pkgbuild, or you can try running man pkgbuild on your Mac.
I haven't tried this, but creating a .pkg is the normal way to install stuff on a Mac for applications where you can't just drag/drop the .app into the Application folder. (macOS applications are actually Directories with a special structure)
A .DMG is just a disk image - it doesn't "do" anything, it's just a container for files. You can create one with Disk Utility.

How to create an MSI installer using OS X?

I already cross-compiled my program for Windows, I now have an EXE and a directory which must reside alongside that EXE in the same directory.
So I need to create an MSI, that places them in the appropriate place (whatever that is) and handles the uninstall too, in a way that is organic with the operative system.
There are Windows tools that do just that, but I haven't been able to find any for OS X. Is there any?
tl;dr:
I am on OS X
I cross-compiled my program for Windows
using OS X, I need to create an installer for Windows, such as an MSI
I DO NOT need to create an installer for OS X, such as a DMG or whatever. I need to create an installer -->FOR<-- Windows, such as an MSI.
I just "happen" to be trying to use OS X to do it.
Using Wine only counts if that program is known to run fine with Wine.
Using a Virtual Machine doesn't count since it is using Windows, which is what I ruled out in this question.
It seems that msi-packager is your solution.
"Build MSI (Windows Installer) packages on Mac and Linux."
https://www.npmjs.com/package/msi-packager
Would it be acceptable to create an EXE-based installer instead of an MSI?
I use InstallBuilder to build installers on OS/X. InstallBuilder is a cross-platform program. There is a version that runs on OS/X and builds both EXE installers for Windows (though I have not tried that combination), as well as DMG/APPs for OS/X.
The InstallBuilder documentation mentions that it cannot build MSIs, because InstallBuilder provides functionality for which there is no equivalent in MSI.
I suggest installing InstallBuilder on your Mac, selecting "Windows" as your output format, and see what happens.
InstallBuilder is one of the better installer builders that I've worked with. It's powerful and comprehensive. Not cheap though. At $995, it's till cheaper than spinning your wheels with WiX. There is a free trial version.
Although WiX is not available for OSX, there's a port of it using the wine library. You can find it in msitools as wixl which can easily installed through brew.
brew install msitools
It sounds like you're looking for the DMG Installer specification for Mac. It's a similar function as MSI in that it is a single file containing the install components needed for an app.
Keep in mind that Mac OSX apps are very different. They are more similar to Windows directories than EXE's. They contain a sub-folder structure which includes the components of the app. If you right click on a Mac app and select "Show Package Contents" you will see a "Contents" top tier folder with everything underneath the app. Just mentioning that as it greatly impacts the lack of need for an uninstall as you simply highlight an app and click delete to remove it and all of its components. There are exceptions of course, but Mac users appreciate when dev's stick to this format.
For DMG this link may help: Demystifying the DMG

Preferred Mac OS X installer

I need your help in choosing a Mac OS X installer version for my application, since I'm not a native Mac user (I am a Windows user).
As far as I know there are two popular installer versions: the regular setup wizard, and the one that uses a window in which you drag the file into the applications folder. Which is preferred and why?
If your application is entirely self contained with all its resources bundled in a single .app package (which is the preferred structure for Mac applications) then use drag and drop installation. If it isn't possible to bundle your application in this way then use an installer .pkg.
There may be other solutions that are appropriate for certain types of application. For example I develop a large Java application that runs on many platforms (including Mac) and we use IzPack to build one installer JAR that works on all platforms. We then package this up as an .exe for Windows users (using Launch4J) and as a .app bundle for Mac users.
If you are not familiar with command line tools or simply not inclined, I would recommend two different IDEs:
Packages - a free and great way to create OSX Installer packages. It is simple to use out of the box, but has great depth for conditional installs.
http://s.sudre.free.fr/Software/Packages/about.html
DMGPackager - shareware - a simple app to create DMG with optional backgrounds, licenses etc.
http://www.skoobysoft.com/utilities/dmgp.html
If you want to distribute, it would be best to sign the installer.

Can an Adobe AIR app be installed on a completely clean Windows system without the use of an install package?

All of the documentation I have seen regarding distribution of Adobe AIR apps suggests that an installer is required to be run in order to get the runtime and the app onto a system.
The environment I am working in requires the AIR runtime, the AIR app and associated DLL's (it will be calling Windows native processes) to be transferred to a clean system and this needs to happen without running an install package. Ideally in the form of just copying the necessary files (DLL's, resources etc..) to where they need to be. Scripts can be used for tasks like adding registry keys and similar requirements. The build needs to be automated in the form of a copy, hence why no installer packages are suitable.
Does anyone know whether this is at all possible with Adobe AIR? Note, the app is Windows-only so cross platform is not a requirement.
Thank you in advance for your help
I'm adding more details in this answer.
In order to use NativeProcess your app must be an EXE compiled by ADT using "extended-desktop." I didn't find much documentation ont his, but a normal air app installs silently like this
C:\AdobeAIRInstaller.exe -silent -eulaAccepted "C:\yourApp.air"
Since the ADT compiled EXE already contains air, you can acutally just do this
C:\yourApp.EXE -silent -eulaAccepted -location "\"C:\WhereToInstall\""
I don't believe you need a redistributable license to do this... but I could be wrong. It's easy to get and free so you might as well.
Where yourAPP.EXE is the extended desktop AIR app compiled by ADT. For compiling an EXE by ADT see: http://help.adobe.com/en_US/air/build/WS789ea67d3e73a8b22388411123785d839c-8000.html
No; this won't be possible. You'll have to install the AIR Runtime on the Windows machine to run an AIR app. And I expect the AIR app won't actually run w/o running the AIR App installer.
You may be able to look into alternate non-AIR options to turn SWFs into EXE. Zinc is one such software to do that.
Or it is possible you can create an invisible installer. I believe if you sign up for redistribution of the AIR Runtime there is a way to make the runtime installer "invisible". I'm not sure about the app, though.

Resources