'Electron Builder- DMG in Ubuntu

Electron builder DMG packaging cannot be performed in non Mac platforms according to comments of isuues.

But we can use package dmgs using mkfs.hfsplus. How to integrate electron packager with hfsplus for a direct build?



Solution 1:[1]

You could use either a Makefile or the package.json straight away and chain those commands together.

genisoimage -q -V <A-name-of-your-choice> -D -R -apple -no-pad -m "LICENSE" -m "LICENSES.chromium.html" -m "version" -o ./dist/<A-name-of-your-choice>.dmg ./path/to/dist

Solution 2:[2]

I figured out how to disable screen capture in Flutter Windows Application

API Reference: https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-setwindowdisplayaffinity

Navigate to Project/windows/runner/main.cpp

Add the below code in wWinMain method:

 //DISABLE SCREEN
  HWND code =window.GetHandle();
  SetWindowDisplayAffinity(code, 0x00000011);

main.cpp:

#include <flutter/dart_project.h>
#include <flutter/flutter_view_controller.h>
#include <windows.h>

#include "flutter_window.h"
#include "utils.h"

int APIENTRY wWinMain(_In_ HINSTANCE instance, _In_opt_ HINSTANCE prev,
                      _In_ wchar_t *command_line, _In_ int show_command) {
  // Attach to console when present (e.g., 'flutter run') or create a
  // new console when running with a debugger.
  if (!::AttachConsole(ATTACH_PARENT_PROCESS) && ::IsDebuggerPresent()) {
    CreateAndAttachConsole();
  }

  // Initialize COM, so that it is available for use in the library and/or
  // plugins.
  ::CoInitializeEx(nullptr, COINIT_APARTMENTTHREADED);

  flutter::DartProject project(L"data");

  std::vector<std::string> command_line_arguments =
      GetCommandLineArguments();

  project.set_dart_entrypoint_arguments(std::move(command_line_arguments));

  FlutterWindow window(project);
  Win32Window::Point origin(10, 10);
  Win32Window::Size size(1280, 720);
   
  if (!window.CreateAndShow(L"windows_app", origin, size)) {
    return EXIT_FAILURE;
  }
  //DISABLE SCREEN
  HWND code =window.GetHandle();
  SetWindowDisplayAffinity(code, 0x00000011);
  


  window.SetQuitOnClose(true);
  
  ::MSG msg;
  while (::GetMessage(&msg, nullptr, 0, 0)) {
    ::TranslateMessage(&msg);
    ::DispatchMessage(&msg);
  }

  ::CoUninitialize();
  return EXIT_SUCCESS;
}

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1
Solution 2 Dharman