AppDeployer is an application, that allows to deploy Qt apps on remote PC.
- Your app is built. After successful build process, you connect to host app.
- App checks, if there's an instance of the copied app - if so, AppDeployer kills it.
- Executable of the built app is sent to host.
- AppDeployer runs freshly copied executable.
- AppDeployer reads running app's logs, from "/logs/latest.log" file, and sends them to the client
- If app quits - server disconnects from the client
- If the client disconnects - the app is stopped.
AppDeployer assumes, that your app:
- Is targeted to Windows
- Is being built based on the "Release" kit
- Generates log file in real-time to "{parentDirOfExe}/logs/latest.log"
- Single line of log follows below format:
[LOG_TYPE] ( qrc:filePath:method:line) - Sample log message!
or, if you don't need to print file URLs:
[LOG_TYPE] ( ::-1) - Sample log message!
- Clone, and build AppDeployer using the "Release" kit of Qt version, that is >= 5.15. You also need to run windeployqt on the built executable, to make it work.
- While in your app's project, in Qt Creator go to Options > Kits
- Clone your kit, and name it, so you can remember it.
- Go to Projects > newly-created-kit > Run, click Add..., and select Custom Executable, and then OK.
- Setup executable: point it to the built AppDeployer executable. Set command-line arguments, where -s describes your app's executable name, -r remote host IP address. If the remote has a custom port set, you can also put it here by the -p parameter. Note: Working directory must be set to application's executable parent dir - if your exe is placed somewhere else, than build directory, you need to specify it, like on the screenshot below:
AppDeployer is by default running in server mode using the 8129 port. The server is minimized to the system tray, from where you can exit it at any time. If you want to change the port, you can pass the -p parameter using command-line, or batch file.
AppDeployer should be built using at least Qt 5.15 version.
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.