electron/docs/development/build-instructions-osx.md
trop[bot] 9ba95e2018 docs: Update reference to xcode 8.3.3 (backport: 3-0-x) (#16270)
* Update reference to xcode

* Update to reflect use of 10.12 SDK
2019-01-04 15:41:46 -05:00

104 lines
2.5 KiB
Markdown

# Build Instructions (macOS)
Follow the guidelines below for building Electron on macOS.
## Prerequisites
* macOS >= 10.11.6
* [Xcode](https://developer.apple.com/technologies/tools/) >= 8.2.1
* [node.js](https://nodejs.org) (external)
* Python 2.7 with support for TLS 1.2
## Python
Please also ensure that your system and Python version support at least TLS 1.2.
This depends on both your version of macOS and Python. For a quick test, run:
```sh
$ python ./script/tls.py
```
If the script returns that your configuration is using an outdated security
protocol, you can either update macOS to High Sierra or install a new version
of Python 2.7.x. To upgrade Python, use [Homebrew](https://brew.sh/):
```sh
$ brew install python@2 && brew link python@2 --force
```
If you are using Python as provided by Homebrew, you also need to install
the following Python modules:
* [pyobjc](https://pythonhosted.org/pyobjc/install.html)
## macOS SDK
If you're developing Electron and don't plan to redistribute your
custom Electron build, you may skip this section.
Official Electron builds are built with [Xcode 8.3.3](http://adcdownload.apple.com/Developer_Tools/Xcode_8.3.3/Xcode_8.3.3.xip), and the MacOS 10.12 SDK. Building with a newer SDK works too, but the releases currently use the 10.12 SDK.
## Getting the Code
```sh
$ git clone https://github.com/electron/electron
```
## Bootstrapping
The bootstrap script will download all necessary build dependencies and create
the build project files. Notice that we're using [ninja](https://ninja-build.org/)
to build Electron so there is no Xcode project generated.
```sh
$ cd electron
$ ./script/bootstrap.py -v
```
If you are using editor supports [JSON compilation database](http://clang.llvm.org/docs/JSONCompilationDatabase.html) based
language server, you can generate it:
```sh
$ ./script/build.py --compdb
```
## Building
Build both `Release` and `Debug` targets:
```sh
$ ./script/build.py
```
You can also only build the `Debug` target:
```sh
$ ./script/build.py -c D
```
After building is done, you can find `Electron.app` under `out/D`.
## 32bit Support
Electron can only be built for a 64bit target on macOS and there is no plan to
support 32bit macOS in the future.
## Cleaning
To clean the build files:
```sh
$ npm run clean
```
To clean only `out` and `dist` directories:
```sh
$ npm run clean-build
```
**Note:** Both clean commands require running `bootstrap` again before building.
## Tests
See [Build System Overview: Tests](build-system-overview.md#tests)