Skip to content
Blog Β» Fresh Mac Mini Setup for React Native iOS Development

Fresh Mac Mini Setup for React Native iOS Development

A developer journey log β€” using a 2024 Mac Mini (Apple M4, 16 GB RAM) to get a React Native project running with full iOS simulator support, multiple GitHub identities, and AI-powered development tools.


🎯 Objective

Set up a clean 2024 Mac Mini for:

  • React Native development
  • iOS builds via Xcode
  • Support for two GitHub accounts (Rover + Client)
  • Enhanced AI-assisted development with GPT-4o (via ChatGPT Desktop + extensions)

πŸ’» Hardware & OS

  • Mac Mini (M4, 16 GB RAM)
  • macOS Sonoma

βœ… Key Decisions

  • Two IDEs for separation:
    • Cursor: Used for AI-first dev with Rover
    • VS Code: Used for Client work
  • GitHub identity separation:
    • Used SSH keypairs and .gitconfig conditional includes per folder
  • Environment-specific folders:
    • ~/dev/rover/ β†’ Rover repos
    • ~/dev/client/ β†’ Client repos

πŸ› οΈ Installations & Setup

1. System Essentials

xcode-select --install
  • Later upgraded to Xcode 16.2 for full simulator compatibility

2. Homebrew (Critical!)

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

3. Package Managers and Runtimes

brew install fnm
fnm install --lts
fnm default lts

brew install rbenv
rbenv install 3.2.2
rbenv global 3.2.2

4. Node/Yarn

corepack enable
yarn -v   # verified v4.9.2

5. CocoaPods for iOS

sudo gem install cocoapods
pod install

6. GitHub SSH Config

Created separate keys and entries in ~/.ssh/config, then separated Git configs via ~/.gitconfig includeIf blocks.


πŸ€– AI-First Development Workflow

1. ChatGPT Desktop App

  • Installed from the [official OpenAI app in App Store]
  • Used native integration with Terminal (on approval)

2. Cursor IDE (AI-enhanced VS Code fork)

  • Used for Rover-specific dev with seamless inline AI completions and support

3. VS Code + Extensions

  • Used for Sidebench (client) work
  • Key extension: ChatGPT – AI Coding Assistant with terminal and code context integration

4. GPT-4o Support

  • All troubleshooting, builds, error decoding, SDK mismatch, and versioning decisions guided via GPT-4o prompts

πŸ”„ .env Setup

Created multiple environment files in root project folder:

.env.dev
.env.staging
.env.uat
.env.prod

Key variables:

  • APP=1 for SignAndGlide / APP=2 for TravAssist
  • ENVIRONMENT=development (or others as needed)

🧩 Troubleshooting Highlights

1. Simulator issues

  • Initially no simulators listed: waited for Xcode 16.2 full install
  • Resolved with: xcrun simctl list devices (post-install)

2. iOS build failures

  • error code 65, Build Failed, and Xcode crashes
  • Solution: upgrade to Xcode 16.2, set active dev dir:
sudo xcode-select -s /Applications/Xcode-16.2.app/Contents/Developer

3. react-native-image-crop-picker failures

  • Missing arch patches for Apple Silicon
  • Reinstalled correct version: yarn add react-native-image-crop-picker@0.41.2

4. Missing environment loading

  • Fixed .env placement, validated via logging process.env.APP

5. Font errors

  • Missing fallback for custom font name: 'Arial Regular' β€” needed mapping or use of iOS-safe fonts

πŸ”‹ Bonus: Power Redundancy

  • Discovered need for UPS battery backup for Mac Mini (don’t just unplug like a laptop) πŸ™‚
  • Considering a solar-powered solution because that would be fun and want to do

πŸ“¦ Final Status

  • βœ… Metro running
  • βœ… iOS app builds cleanly
  • βœ… Correct GitHub account separation
  • βœ… Cursor + ChatGPT integration working
  • βœ… Terminal ChatGPT prompts available

πŸ“Next Steps

  • Automate build scripts and environment selection
  • Setup Android builds
  • Explore devcontainers or VMs for isolating environments
  • Continue using GPT-4o for AI pair programming and deployments

This post was AI aided , developed, debugged, and written with real-time assistance from GPT-4o on a fresh Mac Mini setup.

PNFPB Install PWA using share icon

For IOS and IPAD browsers, Install PWA using add to home screen in ios safari browser or add to dock option in macos safari browser