Build Apps For Mac



Info

The.app file is a Mac application archive file, which contains the Mac app. If the build is signed correctly, the.app file can be installed on a device corresponding to the provisioning profile used when signing. More details about code signing and distribution with App Center can be found in App Center's macOS code signing documentation. Optimizing apps for Mac means building in different mechanisms, like keyboard and mouse support, and considering how a larger screen changes your content. 'The two are completely different. Native Mac apps built with Mac Catalyst can share code with your iPad apps, and you can add more features just for Mac. In macOS Big Sur, you can create even more powerful versions of your apps and take advantage of every pixel on the screen by running them at native Mac resolution. Apps built with Mac Catalyst can now be fully controlled using just the keyboard, access more iOS. Build apps for Mac OS X / macOS. MacOS scripts are too complex. Always build on latest Mac OS version. The resulting DMG should also work on Mac OS X version n-1 & n-2 Set QMAKEMACOSXDEPLOYMENTTARGET=10.X in buildspecs/configmac.pri We recommend setting X.

Don’t expect that you can build app for all platforms on one platform.

  • If your app has native dependency, it can be compiled only on the target platform unless prebuild is not used.

    prebuild is a solution, but most node modules don’t provide prebuilt binaries.

  • macOS Code Signing works only on macOS. Cannot be fixed.

Free public Electron Build Service is used to build Electron app for Linux on Windows. On macOS/Linux you can build Electron app for Windows locally, except Appx for Windows Store (in the future (feel free to file issue) electron-build-service will support Appx target).

Build apps for mac windows 10Build

You can use build servers — e.g. Travis to build macOS/Linux apps and AppVeyor to build Windows app.

By default build for current platform and current arch. Use CLI flags --mac, --win, --linux to specify platforms. And --ia32, --x64 to specify arch.

For example, to build app for MacOS, Windows and Linux:

Build performed in parallel, so, it is highly recommended to not use npm task per platform (e.g. npm run dist:mac && npm run dist:win32), but specify multiple platforms/targets in one build command.You don’t need to clean dist output before build — output directory is cleaned automatically.

Sample .travis.yml to Build Electron App for macOS, Linux and Windows¶

sample .travis.yml

Sample appveyor.yml to Build Electron App for Windows¶

Use AppVeyor only if: you need to build AppX, or your app has native dependency and prebuilt binary is not provided.

Otherwise see above sample .travis.yml to build Windows on Linux using provided Docker image.

sample appveyor.yml

macOS¶

All required system dependencies (except rpm) will be downloaded automatically on demand on macOS 10.12+ (macOS Sierra). On Travis, please add osx_image: xcode10.2 (see above sample .travis.yml).

To build rpm: brew install rpm (brew).

Linux¶

Top apps for mac

You can use Docker to avoid installing system dependencies.

To build app in distributable format for Linux:

To build rpm: sudo apt-get install --no-install-recommends -y rpm (or sudo yum install rpm-build).

To build pacman: sudo apt-get install --no-install-recommends -y bsdtar.

To build snap if and only of you have custom stage packages (if you don’t have custom snap build configuration, you don’t need to install). See snapcraft in Store.

Build Apps For Mac

To build app for Windows on Linux:¶

Docker (electronuserland/builder:wine) is recommended to avoid installing system dependencies.

  • Install Wine (2.0+ is required) — see WineHQ Binary Packages.
  • Install Mono (4.2+ is required) if you want to use Squirrel.Windows (NSIS, default target, doesn’t require mono).

To build app in 32 bit from a machine with 64 bit:¶

Travis Linux¶

Xenial is required.

Travis macOS¶

macOS 10.14+ is required.

Docker¶

To build Linux or Windows on any platform.

Warning

You cannot build for Windows using Docker if you have native dependencies and native dependency doesn’t use prebuild.

See example Docker usage on a CI server in the sample .travis.yml.

Note

Do not use Docker Toolbox on macOS. Only Docker for Mac works.

Build Electron App using Docker on a Local Machine¶

Build Apps For Mac Os

  1. Run docker container:

  2. Type in yarn && yarn dist

Build Apps For Mac

Best Free Apps For Mac

If you don’t have dist npm script in your package.json, call ./node_modules/.bin/electron-builder directly.

Or to avoid second step, append to first command /bin/bash -c 'yarn && yarn dist' You can use /test.sh to install dependencies and run tests.

Tip

If you don’t need to build Windows, use image electronuserland/builder (wine is not installed in this image).

Provided Docker Images¶

Build Apps For Mac Without A Apple Computer

  • electronuserland/builder or electronuserland/builder:12 — NodeJS 10 and required system dependencies. Based on builder:base. Use this image if you need to build only Linux targets.
  • electronuserland/builder:wine — Wine, NodeJS 10 and required system dependencies. Based on builder:10. Use this image if you need to build Windows targets.
  • electronuserland/builder:wine-mono — Mono for Squirrel.Windows. Based on builder:wine. Use this image if you need to build Squirrel.Windows target.
  • electronuserland/builder:wine-chromegoogle-chrome-stable and xvfb are available — you can use this image for headless testing of Electron application. Based on builder:wine.
  • electronuserland/builder:base — Required system dependencies. Not supposed to be used directly.

My project link a .a static library, and when I try to build for Mac os, I get an error:

Building for UIKit for Mac, but the linked library 'libprotobuf.a' was built for <unknown>. You may need to restrict the platforms for which this library should be linked in the target editor.


Apple Mac Build

But the ibprotobuf.a did contain x86_64, lipo -info is:


Architectures in the fat file: /Users/power/Documents/trunk/isdk/apple/protocolbuffer/Products/ios/libprotobuf.a are: armv7 i386 x86_64 arm64

Best Apps For The Mac


Top Apps For Mac

And I also choose macOS + iOS platfroms in the tartget -> Build Phases -> LinkBinary With Libraries.
So I can't find any other ways to solve this issue.
Is this Xcode 11 bug? or any workaround way?