---
name: flutter-setting-up-on-macos
description: Sets up a macOS environment for Flutter development. Use when configuring a macOS machine to run, build, or deploy Flutter applications for iOS or macOS.
metadata:
  model: models/gemini-3.1-pro-preview
  last_modified: Thu, 12 Mar 2026 22:12:50 GMT

---
# Setting Up a macOS Environment for Flutter Development

## Contents
- [Prerequisites](#prerequisites)
- [Tooling Configuration](#tooling-configuration)
- [Workflow: Configuring macOS Tooling](#workflow-configuring-macos-tooling)
- [Workflow: Validating the Environment](#workflow-validating-the-environment)
- [Troubleshooting](#troubleshooting)

## Prerequisites
Ensure the following baseline requirements are met before configuring the macOS-specific toolchain:
- macOS operating system.
- Flutter SDK installed and added to the system `PATH`.
- Active internet connection for downloading toolchains and dependencies.

## Tooling Configuration
macOS desktop development requires specific Apple toolchains to compile and debug native Swift and Objective-C code. 
- **Xcode**: Required for compiling macOS desktop applications.
- **CocoaPods**: Required for managing native dependencies used by Flutter plugins.

## Workflow: Configuring macOS Tooling

Copy and follow this checklist to configure the macOS build environment.

- [ ] **Install Xcode**: Install the latest version of Xcode from the Mac App Store or the Apple Developer portal.
- [ ] **Configure Command-Line Tools**: Link the Xcode command-line tools to the installed Xcode version. Run the following command in the terminal:
  ```bash
  sudo sh -c 'xcode-select -s /Applications/Xcode.app/Contents/Developer && xcodebuild -runFirstLaunch'
  ```
  *Conditional*: If Xcode is installed in a custom directory, replace `/Applications/Xcode.app` with the correct absolute path.
- [ ] **Accept Xcode Licenses**: Accept the required developer licenses by running:
  ```bash
  sudo xcodebuild -license
  ```
  Read and agree to the prompts.
- [ ] **Install CocoaPods**: Install CocoaPods to handle native macOS plugin dependencies.
  ```bash
  sudo gem install cocoapods
  ```
  *Conditional*: If CocoaPods is already installed, ensure it is updated to the latest version (`sudo gem update cocoapods`).

## Workflow: Validating the Environment

Execute this feedback loop to ensure the environment is correctly configured for macOS desktop development.

- [ ] **Run Validator**: Execute the Flutter diagnostic tool with verbose output:
  ```bash
  flutter doctor -v
  ```
- [ ] **Review Errors**: Check the `Xcode` section in the output. 
- [ ] **Fix & Retry**: If errors or missing components are reported under the Xcode section, resolve them according to the output instructions, then re-run `flutter doctor -v` until the Xcode section passes.
- [ ] **Verify Device Availability**: Confirm that Flutter recognizes the macOS desktop as a valid deployment target:
  ```bash
  flutter devices
  ```
  *Success Criteria*: The output must contain at least one entry with `macos` listed as the platform.

## Troubleshooting

If the validation workflow fails, apply the following resolutions:

- **Missing Command-Line Tools**: If `flutter doctor` reports missing tools, ensure the `xcode-select` command was run with `sudo` and points to the correct `.app` directory.
- **CocoaPods Not Found**: If CocoaPods is installed but not detected, verify that your Ruby `gem` binary path is included in your shell's `PATH` environment variable.
- **Device Not Listed**: If `flutter devices` does not list `macos`, ensure desktop support is enabled in your Flutter configuration:
  ```bash
  flutter config --enable-macos-desktop
  ```
