How to install MyMacroHero on iPhone using a Mac

MyMacroHero does what MyFitnessPal does, and MyFitnessPal costs Paid. This guide gets you the free one.

What you end up with

MyMacroHero running on your iPhone. It is free, and it stays free — there is no account, no trial and no subscription at the end of this.

Time
About 59 minutes
Steps
18
Cost
Free

Before you start

These are one-time installs. If you have used Terminal before, you may have them already — the first step checks.

  1. Install Git

    Apple opens a small installer.

    Type this into Terminal, then press Return.

    xcode-select --install

    You know this worked when: Git responds with a version number

  2. Install Node LTS

    Choose the macOS Installer (.pkg).

    Open download

    You know this worked when: Node responds with a version number

Install MyMacroHero

  1. Open Terminal

    Keep it open beside this page.

    You know this worked when: Terminal is open

  2. Check Git and Node

    Git and the current Node LTS are required.

    Type this into Terminal, then press Return.

    git --version
    node --version

    You know this worked when: Git and Node respond with version numbers

  3. Copy MyMacroHero to this Mac

    Type this into Terminal, then press Return.

    cd ~
    if [ ! -d MyMacroHero/.git ]; then
    git clone https://github.com/ahmedabb104/MyMacroHero.git
    fi

    You know this worked when: A MyMacroHero folder appears

  4. Open the MyMacroHero folder

    Type this into Terminal, then press Return.

    cd MyMacroHero

    You know this worked when: Your terminal prompt is inside the MyMacroHero folder

  5. Use the reviewed version

    Type this into Terminal, then press Return.

    git checkout 340acf9e6526cc7a8767e585fee0a28940c7942a

    You know this worked when: Git reports the reviewed commit

  6. Install dependencies

    Type this into Terminal, then press Return.

    npm install

    You know this worked when: The command finishes without an error

  7. Get a EXPO_PUBLIC_OFF_CONTACT key

    Sign in, create a key, and copy it.

    Open the page

    You know this worked when: You have a key on your clipboard

  8. Copy the env file

    Then open apps/mobile/.env and set EXPO_PUBLIC_OFF_CONTACT.

    Type this into Terminal, then press Return.

    cp apps/mobile/.env.example apps/mobile/.env

    You know this worked when: apps/mobile/.env has EXPO_PUBLIC_OFF_CONTACT set

  9. Build the native project

    This can take a few minutes the first time.

    Type this into Terminal, then press Return.

    npm run data:build

    You know this worked when: The command finishes without an error

  10. Install Xcode

    Large — start it early. Open it once afterwards so it finishes installing.

    Open the App Store page

    You know this worked when: Xcode opens without asking to finish setup

  11. Open the iPhone project

    In Xcode choose Open, then pick the ios folder inside MyMacroHero.

    You know this worked when: Xcode opens with the MyMacroHero project

  12. Sign the app with your Apple ID

    Signing & Capabilities, then Team. A free Apple ID works.

    You know this worked when: Signing & Capabilities shows no red error

  13. Plug in your iPhone

    Unlock it, tap Trust, then pick it from the device menu.

    You know this worked when: Your iPhone is selected as the run destination

  14. Press Run

    The ▶ button. The first build takes a few minutes.

    You know this worked when: Xcode finishes with Build Succeeded

  15. Trust yourself on the iPhone

    Settings, General, VPN & Device Management, your Apple ID, then Trust.

    You know this worked when: Your Apple ID shows as trusted

  16. Open MyMacroHero on your phone

    You know this worked when: MyMacroHero opens on your phone

If something goes wrong

Nothing here can damage your computer, and every step can be run again safely. If a command fails, the usual cause is the step before it not having finished.

Still stuck? Tell us what happened and we will fix the guide. Include the step number and we can usually reproduce it.

Have a different setup?