How to install service on macOS with custom arguments in install4j? - install4j

The Install a service action supports calling the service executable with custom arguments on windows. I don't see any option to do that on macOS. Is that possible?
One workaround seems to be to create a separate service launcher for macOS that passes in the arguments, but I'd like to avoid creating separate launchers for each OS if possible.

The "Install a service" action implements several OS-specific features for services that depend on the capabilities of the OS. The "Windows arguments" property is a such a case. macOS does not have an "arguments at install time" feature for daemons, so the action does not support it.

Related

Porting a pywinauto script from Windows to X11/Xlib

In my organization, I have been using pywinauto to automate some UI procedures that could not be done using the sole command line interface.
In an effort to move away from windows, I am evaluating the effort to port the UI automation script to a Linux environment (our tool has a Linux version, including a similar GUI).
I have had a look at the python-xlib project. But I have the feeling that it is more a framework to develop native X11 applications rather than perform tests on an existing application (I could not find anything like find_window etc...).
Do you have any advice for an X11 framework to automate UI procedures?
Based on several inputs, I finally came up with the following suggestions:
use pywinauto which has some beta level of Linux support (this support is based on pyatspi2).
use directly pyatspi2 to interact with the widgets if they are exposed. To browse through the exposed widgets of the application you want to automate, you can use accerciser.
finally, many framework exist to use only click + keys + mouse locations and are based on image comparison. There are many around, I have not yet tested any of them.
Finally, since my script is meant to run in a docker environment in CI, I installed Xvfb to run the automation in headless mode, without graphics HW.

install4j GUI/Console mode testing automation

I started exploring the capabilities of install4j. Are there any utilities/capabilities by which we can automate the testing of install4j GUI & consoles.
We have to come up with an installer that has pretty good number installer panels with multiple inputs and validations, so automating the testing of screens is a priority for us.
I see that installanywhere has a built in utility for this, is there a similar capability in install4j?
As of 6.1 there is no GUI testing functionality in install4j, it is planned to be implemented in a future version.
One way to do it at this point is by starting the installer in console mode (with the -c argument) and by using expectj to drive the user input.

Building customer based installation packages with install4j

I am developing an application which has customer specific configuration (2 text and 2 binary files). The use case supposes that customer downloads an installation package (I am going to use install4j) and install it on target platform (Mac or Windows). So all installation packages should be different for different customers.
I am considering 2 possible scenarios for implementation:
Generate new installation package per customer request on server side (cons: I need to have install4j for Linux, which is server platform)
Have a half-generated installation package and inject customer data somehow to the package by customer request (cons: I am not sure this is quite possible at all)
I never used install4j before and don't know how to implement 1 or 2. Their documentation is far from ideal. They doesn't have examples or consider cases like this, so any suggestion is very appreciated.
You cannot modify an installer after it has been built. The main reason is that it would break code signing. So you would need to generate a new installer for each configuration. If you deploy on Mac OS X and Windows, you need install4j Multi-Platform Edition which also works on Linux.
Alternatively, you could ask the user to provide credentials in the installer, then you could download the appropriate files on demand with "Download file" actions.

How to add additional installer to start menu using ClickOnce

I have created a solution that comprise of a WPF application and a mobile device application. What I am trying to figure out is how to facilitate the installation of the mobile application.
When I publish and install the WPF desktop application it creates a start menu folder for the application. Optimally I would like to add the mobile application .msi to this menu but I'm not sure if this is supported by ClickOnce.
Any advice or guidance would be most hopeful.
I suggest looking at Inno Setup. Its a free installer for windows applications and has a simple scripting/wizard process. It'll provide this and all the normal installer functions (install location, start menu, desktop icon etc). It also provides an uninstaller

setup for multi platform app

Let's say you have an app in Mono .net implementation.
Now you want to create a setup - that targets multiple platforms(mac,linux, windows).
What would you use to create such setup? Are out there any oss projects?
Targeting only windows is easy - i would use WiX...
Well, IMHO, most Linux users would mock you outright / would feel offended if you tried to ask them to run a "setup program", as most of them always do what I like to call the three command install.
Now, I'm not sure about cross platform compatibility, but http://nsis.sourceforge.net/ (Nullsoft Install System) is my favourite.
Actually, come to think of it, the entire installer-setup program thing is pretty windows centric...