spiegel-keyman/docs/build/macos.md
2021-06-30 13:03:30 +10:00

2.4 KiB

Setup your Keyman build environment on macOS

Target Projects

On macOS, you can build the following projects:

  • Keyman for Android
  • Keyman for iOS
  • Keyman for macOS
  • KeymanWeb

The following libraries can also be built:

  • Common/Core/Desktop (macOS, wasm targets)
  • Common/Core/Web

The following projects cannot be built on macOS:

  • Keyman for Linux
  • Keyman for Windows
  • Keyman Developer

System Requirements

  • Minimum macOS version: macOS Catalina 10.15 or Big Sur 11.0

Prerequisites

Many dependencies are only required for specific projects.

  • XCode (iOS, macOS)
    • Install from App Store
    • Accept the Xcode license: sudo xcodebuild -license accept

The remaining dependencies can be installed via script: resources/devbox/macos/macos.sh

This script will also update your environment to the values in: resources/devbox/macos/keyman.macos.env.sh

It will also add these environment settings to your ~/.bashrc.

These dependencies are also listed below if you'd prefer to install manually.

Shared Dependencies

  • Shared: HomeBrew, Bash 5.0+, jq, Python 3, Meson, Ninja, Rust, coreutils, Pandoc

    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
    brew install bash jq python3 meson ninja rustup-init coreutils pandoc rustup-init
    
  • Web: node.js, emscripten, wasm-pack, openjdk 8

    brew install node emscripten wasm-pack openjdk@8
    rustup target add wasm32-unknown-unknown
    
  • iOS: swiftlint, carthage

    brew install swiftlint carthage
    
  • macOS: carthage, cocoapods

    brew install carthage cocoapods
    
  • Android: openjdk 8, Android SDK, Android Studio, Ant, Gradle, Maven

    brew install openjdk@8 android-sdk android-studio ant gradle maven
    # update path
    source ../resources/devbox/macos/keyman.macos.env.sh
    # optionally install sdk images
    sdkmanager "system-images;android-30;google_apis;armeabi-v7a"
    sdkmanager --update
    sdkmanager --licenses
    
  • kmcomp (optional): WINE

    • Required to build keyboards using kmcomp
    brew tap homebrew/cask-versions
    brew install --cask --no-quarantine wine-stable
    
  • sentry-cli (optional)

    • Uploading symbols for Sentry-based error reporting
    brew install getsentry/tools/sentry-cli
    
  • Run Android Studio once after installation to install additional components such as emulator images and SDK updates.