|
|
@ -3,22 +3,52 @@ Building Mac OS binaries |
|
|
|
|
|
|
|
This guide explains how to build Electrum binaries for macOS systems. |
|
|
|
|
|
|
|
The build process consists of two steps: |
|
|
|
|
|
|
|
## 1. Building the binary |
|
|
|
|
|
|
|
This needs to be done on a system running macOS or OS X. We use El Capitan (10.11.6) as building it on High Sierra |
|
|
|
makes the binaries incompatible with older versions. |
|
|
|
This needs to be done on a system running macOS or OS X. We use El Capitan (10.11.6) as building it |
|
|
|
on High Sierra (or later) |
|
|
|
makes the binaries [incompatible with older versions](https://github.com/pyinstaller/pyinstaller/issues/1191). |
|
|
|
|
|
|
|
Before starting, make sure that the Xcode command line tools are installed (e.g. you have `git`). |
|
|
|
|
|
|
|
#### 1.1a Get Xcode |
|
|
|
|
|
|
|
Building the QR scanner (CalinsQRReader) requires full Xcode (not just command line tools). |
|
|
|
|
|
|
|
The last Xcode version compatible with El Capitan is Xcode 8.2.1 |
|
|
|
|
|
|
|
Get it from [here](https://developer.apple.com/download/more/). |
|
|
|
|
|
|
|
Unfortunately, you need an "Apple ID" account. |
|
|
|
|
|
|
|
After downloading, uncompress it. |
|
|
|
|
|
|
|
Make sure it is the "selected" xcode (e.g.): |
|
|
|
|
|
|
|
sudo xcode-select -s $HOME/Downloads/Xcode.app/Contents/Developer/ |
|
|
|
|
|
|
|
#### 1.1b Build QR scanner separately on newer Mac |
|
|
|
|
|
|
|
Alternatively, you can try building just the QR scanner on newer macOS. |
|
|
|
|
|
|
|
On newer Mac, run: |
|
|
|
|
|
|
|
pushd contrib/osx/CalinsQRReader; xcodebuild; popd |
|
|
|
cp -r contrib/osx/CalinsQRReader/build prebuilt_qr |
|
|
|
|
|
|
|
Move `prebuilt_qr` to El Capitan: `contrib/osx/CalinsQRReader/prebuilt_qr`. |
|
|
|
|
|
|
|
|
|
|
|
#### 1.2 Build Electrum |
|
|
|
|
|
|
|
cd electrum |
|
|
|
./contrib/osx/make_osx |
|
|
|
|
|
|
|
This creates a folder named Electrum.app. |
|
|
|
This creates both a folder named Electrum.app and the .dmg file. |
|
|
|
|
|
|
|
|
|
|
|
## 2. Building the image |
|
|
|
## 2. Building the image deterministically (WIP) |
|
|
|
The usual way to distribute macOS applications is to use image files containing the |
|
|
|
application. Although these images can be created on a Mac with the built-in `hdiutil`, |
|
|
|
they are not deterministic. |
|
|
@ -33,4 +63,4 @@ Copy the Electrum.app directory over and install the dependencies, e.g.: |
|
|
|
Then you can just invoke `package.sh` with the path to the app: |
|
|
|
|
|
|
|
cd electrum |
|
|
|
./contrib/osx/package.sh ~/Electrum.app/ |
|
|
|
./contrib/osx/package.sh ~/Electrum.app/ |
|
|
|