electrum

Electrum Bitcoin wallet
git clone https://git.parazyd.org/electrum
Log | Files | Refs | Submodules

README.md (2713B)


      1 Building macOS binaries
      2 =======================
      3 
      4 ✗ _This script does not produce reproducible output (yet!).
      5    Please help us remedy this._
      6 
      7 This guide explains how to build Electrum binaries for macOS systems.
      8 
      9 
     10 ## Building the binary
     11 
     12 This needs to be done on a system running macOS or OS X.
     13 
     14 Notes about compatibility with different macOS versions:
     15 - In general the binary is not guaranteed to run on an older version of macOS
     16   than what the build machine has. This is due to bundling the compiled Python into
     17   the [PyInstaller binary](https://github.com/pyinstaller/pyinstaller/issues/1191).
     18 - The [bundled version of Qt](https://github.com/spesmilo/electrum/issues/3685) also
     19   imposes a minimum supported macOS version.
     20 - If you want to build binaries that conform to the macOS "Gatekeeper", so as to
     21   minimise the warnings users get, the binaries need to be codesigned with a
     22   certificate issued by Apple, and starting with macOS 10.15 the binaries also
     23   need to be notarized by Apple's central server. The catch is that to be able to build
     24   binaries that Apple will notarise (due to the requirements on the binaries themselves,
     25   e.g. hardened runtime) the build machine needs at least macOS 10.14.
     26   See [#6128](https://github.com/spesmilo/electrum/issues/6128).
     27 
     28 We currently build the release binaries on macOS 10.14.6, and these seem to run on
     29 10.13 or newer.
     30 
     31 Before starting, make sure that the Xcode command line tools are installed (e.g. you have `git`).
     32 
     33 #### 1.a Get Xcode
     34 
     35 Building the QR scanner (CalinsQRReader) requires full Xcode (not just command line tools).
     36 
     37 Get it from [here](https://developer.apple.com/download/more/).
     38 Unfortunately, you need an "Apple ID" account.
     39 
     40 (note: the last Xcode that runs on macOS 10.14.6 is Xcode 11.3.1)
     41 
     42 After downloading, uncompress it.
     43 
     44 Make sure it is the "selected" xcode (e.g.):
     45 
     46     sudo xcode-select -s $HOME/Downloads/Xcode.app/Contents/Developer/
     47 
     48 #### 1.b Build QR scanner separately on another Mac
     49 
     50 Alternatively, you can try building just the QR scanner on another Mac.
     51 
     52 On newer Mac, run:
     53 
     54     pushd contrib/osx/CalinsQRReader; xcodebuild; popd
     55     cp -r contrib/osx/CalinsQRReader/build prebuilt_qr
     56 
     57 Move `prebuilt_qr` to El Capitan: `contrib/osx/CalinsQRReader/prebuilt_qr`.
     58 
     59 
     60 #### 2. Build Electrum
     61 
     62     cd electrum
     63     ./contrib/osx/make_osx
     64 
     65 This creates both a folder named Electrum.app and the .dmg file.
     66 
     67 If you want the binaries codesigned for MacOS and notarised by Apple's central server,
     68 provide these env vars to the `make_osx` script:
     69 
     70     CODESIGN_CERT="Developer ID Application: Electrum Technologies GmbH (L6P37P7P56)" \
     71     APPLE_ID_USER="me@email.com" \
     72     APPLE_ID_PASSWORD="1234" \
     73     ./contrib/osx/make_osx