Electron Build Dmg

admin

How to package Electron Desktop Application into executable file (ex. Windows.exe file) Plus how to hide source code into asar file. # Build Command. The build command consists of three main phases: render build, main build, and electron-builder build: Render build: This phase calls vue-cli-service build with some custom configuration so it works properly with electron. (The render process is your standard app.).

If you want to create instead of a Squirrel based installer, a MSI (Microsoft Installer) setup, please follow this tutorial instead.

With it, a developer need only create a single branch of code that can be compiled to each of the three systems. In this article, we walk through developing an automatic build process for this task. We will use the Electron project 'Simple Performance Measurement with Node.js, Electron, OpenFin and Web' to demonstrate this. To build an application for a platform you’ll need to execute the following command in terminal / command prompt. Electron-packager -platform= -arch= optional flags. To build a package from the current directory and for the current platform execute. In this electron packager tutorial we will look at how to create MacOS, Windows and Linux executables with an app icon. This is also a continuation of the Electron app icon post, so start there if you haven’t read it (It’s short, i promise). I add this code to the Electron tutorial app on github.Just look at that repo if you want to see all the code.

As a developer, you may know that Linux has package managers so the developers don't 'need' to make the installers. Developers just need to provide a package for a distribution, each distribution then has a way to install this package and this way can be in a terminal (apt-get) or via a graphical interface, e.g. Ubuntu Software Center. However, Windows is not Linux.

Almost all installers are created by a tool (e.g. WiX, Nsis, Inno Setup and many others). In this article, you will learn how to create an installer for windows using the electron-winstaller module which uses Squirrel, the installation and update framework for Windows desktop apps.

1. Prepare your work area

And with this, we don't mean that you should clean your computer. To make this tutorial easy to understand, we are going to create a folder in the desktop with the name electron-workspace, this folder will contain inside a folder that contains the source code of your Electron Project:

In this case, the folder will be located at C:UserssdkcaDesktopelectron-workspace and the source code of the electron project will be inside of it (myapp-source).

2. Install the Electron winstaller module

Now, we need to install the module that will help us to create the installer, in this case we are going to use electron-winstaller. This NPM module builds Windows installers for Electron apps using Squirrel. Start the NodeJS command prompt and Navigate to the workspace using (note that the module needs to be installed in the workspace, not in your project):

And then install the module with:

After the installation of the module, our workspace will have now 2 folders:

3. Manage desktop shortcuts (install, update and uninstall events)

An application that can be installed, but the executable can't be found to start it once it's closed doesn't work for nothing. Therefore, we are going to use the electron-squirrel-startup module that will help you to achieve our goal. It handles the most common commands, such as managing desktop shortcuts (installation event, update event and uninstall event).

Build

This module needs to be installed inside your project, not in the workspace, therefore navigate to the folder of the source code of your Electron project with the NodeJS command prompt, in this case we are going to use:

And then install the module using:

Dmg

After the installation of the module, we need to instruct with some code what we are going to do. We are going to add some code, specifically in the main.js file of your Electron Project. At the start of your file (after the declaration of the app variable) add the following lines:

The handleSquirrelEvent function expects as first argument the app variable, this function can be added at the end of your main.js file:

Note

The following code will be only executed if the application is within an installer, so this code will be not executed while you work on your project.

The previous code should handle the basic things that happens when a new app is installed in your system e.g the shortcut will be added to the Start Menu and Desktop and it will remove the shortcut when the uninstaller is executed, besides it should work without any modification. Feel free to add more code if you need to.

4. Build your app

The required modifications to accomplish the basic tasks of an installed applications were made, now proceed to build your application. We assume that you know how to build your application using tools like electron-packager. If you don't, please read the following article about how to create a distribution from your app using electron packager in Windows.

After know how to build your application, proceed to do it. Navigate to the workspace (in order to build the project inside of it):

And build the project, for example, we are going to build our project using the following command:

That will create the myapp-source-built-win32-x64 folder inside the electron-workspace folder that has the following structure:

5. Create an installer from your application

Once your project has been built, you can create an installer from it. Create a folder where the installers will be created, specifically in our workspace (C:UserssdkcaDesktopelectron-workspace) with the name you want, in this case it will be myapp-source-built-installers. You won't touch this folder as the installers will be created in the next step automatically. At this step, you should have 4 folders (myapp-source-built-installers is empty):

Download firefox for mac 10.7 5. Now create a script that will create our installers, create the build.js file in our electron workspace (C:UserssdkcaDesktopelectron-workspace) with the following code inside:

Electron Build Dmg On Linux

Note

If you don't feel comfortable working with relative paths, you can use absolute paths in your first try to know what's happening.

Electron Build Dmg

Note

You can change the icon and other properties in the settings of the previous script. Check all the supported options here.

To build an installer from your app, you just need to execute this script. However, in case that you find this error:

The Component/@Id attribute's value, 'your-app-exe-name.exe', is not a legal identifier. Identifiers may contain ASCII characters A-Z, a-z, digits, underscores (_), or periods (.). Every identifier must begin with either a letter or an underscore.

Is necessary to edit the name property of your project in the /your-built-project/resources/app/package.json file and remove or replace all the hyphen (- symbol) e.g if your package.json looks like:

Change it to:

If you already verified this, proceed to execute the build.js script navigating to the workspace with the NodeJS command prompt:

And execute the script:

The installer files will be created and it will took a while. Once the installers are created you will see the following message in the console:

Finally, open the installers folder (in this case located in C:UserssdkcaDesktopelectron-workspacemyapp-source-built-installers) and you will find there 3 installers (msi installer, executable installer and a nuGET package):

You can try to install your app locally executing as administrator the Setup.exe file. Then a mini setup will install the application on your system and you will be able to see it in the start menu of Windows and as a shortcut in the Desktop:

Note

The setup loading animation can be changed if you provide the path of a gif file to show during the installation in the loadingGif option in your build.js script.

Note that the name of the executable, description and other properties can be changed in the package.json of your app and in the options of the winstaller module, for more information please visit the repository to see the documentation.

Important notes

For development or internal use, creating installers without a signature is okay, but for a production app you need to sign your application. Internet Explorer's SmartScreen filter will block your app from being downloaded, and many anti-virus vendors will consider your app as malware unless you obtain a valid cert.

Any certificate valid for 'Authenticode Code Signing' will work here, but if you get the right kind of code certificate, you can also opt-in to Windows Error Reporting. This MSDN page has the latest links on where to get a WER-compatible certificate. The 'Standard Code Signing' certificate is sufficient for this purpose.

Happy coding !