Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
Getting started with Nintendo Switch Development using devkitpro on macOS

Getting started with Nintendo Switch Development using devkitpro on macOS

Prerequsite: Ensure Xcode command line tools are installed

xcode-select --install

Install the devkitpro Package Manager

  1. Download the latest dekitpro-macpman-installer.pkg from the GitHub releases page.

  2. Install it with:

    sudo installer -pkg /path/to/devkitpro-pacman.pkg -target /

Install the libraries and tools for switch development

Install the switch-dev package group using dkp-pacman.

sudo dkp-pacman --noconfirm --sync switch-dev

Update your shell runtime configuration

  1. Create ~/.bash_profile or edit it if you have one already and add the following envrionment variables:

    export DEVKITPRO=/opt/devkitpro
    export DEVKITARM="${DEVKITPRO}/devkitARM"
    export DEVKITPPC="${DEVKITPRO}/devkitPPC"
    export PATH="${DEVKITPRO}/tools/bin:${PATH}"
  2. Source your updated ~/.bash_profile

    source ~/.bash_profile

Your first build

Devkitpro comes with example code installed at ${DEVKITPRO}/examples. You can use this code to test your toolchain or as a boiler plate for your first project.

cp -r "${DEVKITPRO}/examples/switch/templates/application" /tmp/example
cd /tmp/example

You should now have a file in the current directory called example.nro.

Using NetLoader and nxlink to test your build

  1. Launch the hbmenu using your favorite method. I'm partial to the RCMLoader myself.


  2. Ensure that your Switch is connected to Wifi (not in Airplane mode) and press 'Y' to start NetLoader


  3. In your build directory, run nxlink with the IP address shown on the NetLoader screen:

    nxlink --address example.nro
  4. You should see your example code running.



Huge thanks to for making this process so easy. Follow them on Twitter and support them on Patreon


This work is licensed under CC BY-NC version 4.0 © 2020, Josh Enders. Some Rights Reserved.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment