Flutter 공식 문서는 iOS용 IPA 빌드와 Android용 앱 번들 빌드를 서로 다른 배포 절차로 안내합니다(iOS 배포 안내, Android 배포 안내). 따라서 Mac mini M4로 Flutter 개발 환경을 구축하면 같은 프로젝트를 두 플랫폼용으로 각각 빌드할 수 있습니다. 다만 이 안내만으로 두 빌드가 기본적으로 동시에 실행된다고 볼 수는 없습니다. 이번 주에는 Xcode부터 설치하고, Flutter 진단을 통과한 뒤 각 플랫폼을 따로 빌드하세요.
이 글은 Mac mini M4에서 처음 Flutter 환경을 구성하는 개발자, 기존 Android 프로젝트에 iOS 빌드 기능을 더하려는 개발자, 팀의 빌드 환경을 검토하는 담당자를 위한 순서 안내입니다.
시작 전 확인할 개발 조건
Mac mini M4는 macOS에서 Xcode를 사용할 수 있는 개발 환경입니다. 그러나 실제 작업 가능 여부는 기기 이름만으로 결정되지 않습니다. 설치하려는 Xcode의 macOS 요구 조건, 사용 가능한 디스크 공간, 내려받기 가능한 네트워크, 그리고 시뮬레이터나 테스트 기기를 함께 확인해야 합니다. Android Studio의 시스템 요구 사항도 설치 전에 확인하세요. 요구 조건은 사용하는 도구 버전과 선택한 구성요소에 따라 달라질 수 있으므로, 특정 저장 공간이나 버전이 모두에게 맞는다고 단정하지 마세요.
특히 다음 조건을 구분하면 설치 후 되돌아가는 일을 줄일 수 있습니다.
- macOS와 도구 호환성: 설치할 Xcode 및 Android Studio의 요구 사항을 각 공식 안내에서 확인합니다.
- 디스크와 네트워크: Xcode, SDK, 시뮬레이터 구성요소를 내려받고 보관할 공간이 필요합니다. 공간이 부족하면 설치나 업데이트가 중단될 수 있습니다.
- 검증 기기: 시뮬레이터는 빠른 동작 확인에 적합하지만, 실제 기기의 연결·설치·서명 동작까지 대신 검증하지는 않습니다.
- 계정과 서명: 개발용 실행과 등록된 기기 설치, 배포용 빌드는 요구 조건이 다릅니다.
Xcode 설치와 iOS 도구 준비
Flutter의 iOS 빌드에는 Xcode가 필요합니다. Xcode 설치 뒤에는 앱을 여는 데서 끝내지 말고, 명령줄 도구와 필요한 플랫폼 구성요소가 준비됐는지 확인하세요. Flutter의 iOS 개발 환경 안내와 Apple의 Xcode 구성요소 설치 안내를 기준으로 작업하면 됩니다.
- Apple의 설치 경로를 따라 Xcode를 설치한 다음 처음 실행합니다. 초기 설정과 추가 구성요소 설치가 끝날 때까지 기다립니다.
- 터미널에서 선택된 개발자 도구 경로를 확인합니다. 다른 Xcode 설치본을 사용해야 한다면 경로를 해당 설치본으로 바꿉니다. 예시는 다음과 같습니다.
bash xcode-select -p sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer - 첫 실행 절차와 라이선스 동의가 끝났는지 확인합니다. Flutter 진단에서 Xcode 또는 라이선스 관련 오류가 나오면 오류가 가리키는 항목을 먼저 처리합니다.
- Xcode 설정에서 필요한 iOS 시뮬레이터 구성요소가 설치됐는지 확인합니다. 사용할 시뮬레이터가 준비되면 Flutter 기기 목록에서도 인식되는지 확인합니다.
명령줄 도구의 경로가 잘못 선택되면 Xcode를 설치했어도 Flutter가 iOS 도구를 찾지 못할 수 있습니다. 시뮬레이터에서 앱을 실행하는 것과 실제 기기에 설치하는 것도 별개입니다. 등록된 기기와 서명 조건은 Apple의 등록 기기 배포 안내에서 확인하세요.
Flutter SDK 설치와 진단
Xcode가 준비되면 Flutter 공식 설치 안내에 따라 SDK를 내려받고, 터미널에서 Flutter 명령을 사용할 수 있도록 실행 파일 경로를 설정합니다. 설치 위치는 직접 관리할 수 있는 폴더로 정하세요. 압축을 푼 경로와 셸 설정에 등록한 경로가 다르면 flutter 명령을 찾지 못할 수 있습니다.
설정 후 새 터미널을 열고 다음 명령을 실행합니다.
flutter --version
flutter doctor -v
첫 명령은 Flutter 명령이 실행되는지 확인합니다. 두 번째는 현재 개발 환경에서 감지된 도구와 누락 항목을 보여줍니다. 여기서 모든 항목을 한꺼번에 추측해 설치하기보다, 표시된 플랫폼별 문제를 하나씩 해결하세요. iOS 항목은 Xcode 경로와 구성요소를, Android 항목은 Android SDK 및 관련 도구를 우선 확인합니다. 해결이 막히면 Flutter 설치 문제 해결 안내와 진단 결과를 대조하세요.
Android Studio와 Android SDK 구성
Android Studio를 설치한 뒤 Flutter 플러그인을 추가하고 SDK 구성을 확인합니다. Flutter의 Android 설정 안내에 맞춰 Android Studio의 SDK Manager에서 필요한 SDK 플랫폼과 도구를 설치하세요. SDK 구성요소의 정확한 목록은 만들 앱의 대상과 Android Studio가 표시하는 안내에 따라 달라질 수 있습니다.
에뮬레이터를 쓸 계획이라면 Android Studio에서 가상 기기를 만들고 실행해 봅니다. Android 에뮬레이터 문서에 나온 절차를 참고하세요. 실행이 실패하면 에뮬레이터 설정만 반복해서 바꾸기 전에 SDK 설치 위치, 설치된 도구, 현재 버전 사이의 호환성을 살펴보세요. Flutter가 SDK를 못 찾는 경우에도 Android Studio에 표시되는 실제 SDK 경로와 진단 결과를 먼저 대조합니다.
SDK 라이선스 관련 오류가 남아 있다면 Flutter 진단의 지시를 따라 승인 상태를 확인합니다. 플러그인이 설치됐다는 사실만으로 Android 빌드 환경 전체가 준비됐다고 판단하지 마세요. SDK 도구와 에뮬레이터가 각각 정상적으로 인식돼야 합니다.
진단 결과를 읽고 플랫폼별로 검증
이 시점에서 flutter doctor -v를 다시 실행합니다. Xcode 관련 오류와 Android 도구 관련 오류를 분리해 처리하세요. 둘 중 한쪽 진단이 통과해도 다른 플랫폼의 빌드가 준비됐다는 뜻은 아닙니다. flutter devices를 실행해 현재 연결된 시뮬레이터나 기기를 확인하고, 목록에 없다면 각 도구에서 해당 기기가 실행 중인지 살펴봅니다.
시뮬레이터가 보이면 Flutter 프로젝트에서 해당 기기를 대상으로 앱을 실행할 수 있습니다. 이 검증은 개발 중 앱을 실행하는 데 유용하지만, 실제 기기에서의 서명이나 배포용 산출물 확인까지 보장하지 않습니다. 처음 설정을 확인할 때는 작은 테스트 프로젝트를 사용하거나 기존 프로젝트의 의존성을 정리한 다음, 플랫폼별 오류를 구분해 기록하면 원인을 찾기 쉽습니다.
설치 뒤 자주 나오는 질문
Mac mini M4에서 Flutter 앱과 iOS 시뮬레이터를 준비하는 순서
먼저 설치할 Xcode와 macOS의 요구 조건, 디스크 여유 공간을 확인합니다. Xcode를 설치하고 초기 설정 및 시뮬레이터 구성요소를 마친 다음 Flutter SDK를 설치하세요. flutter doctor -v와 flutter devices로 도구와 시뮬레이터가 감지되는지 확인합니다. 시뮬레이터가 보이지 않으면 Xcode의 구성요소 설치 상태와 선택된 개발자 도구 경로부터 점검합니다.
Xcode 설치 뒤 Flutter iOS 빌드가 실패하는 경우
Xcode를 설치했는데도 iOS 빌드에 실패한다면 선택된 Xcode 경로, 첫 실행 설정, 라이선스 상태를 차례로 확인합니다. Flutter 진단 메시지에서 Xcode와 관련된 누락 항목을 읽고, Xcode에서 필요한 iOS 구성요소가 준비됐는지도 살펴보세요. 시뮬레이터에서 실행할 때와 등록된 기기에서 실행할 때는 확인할 서명 조건이 다릅니다. 한쪽의 성공을 다른 쪽 검증으로 간주하지 마세요.
Android Studio에서 Flutter용 SDK가 인식되지 않는 경우
먼저 Android Studio의 SDK Manager가 표시하는 SDK 위치와 Flutter 진단이 찾는 위치를 비교합니다. 필요한 SDK 플랫폼과 도구가 설치됐는지, 라이선스 상태에 문제가 없는지도 확인하세요. 에뮬레이터가 시작되지 않으면 SDK 경로뿐 아니라 에뮬레이터 구성과 도구 호환성을 함께 살펴봅니다. 플러그인만 설치한 상태는 Android 빌드 준비가 끝난 상태와 다릅니다.
같은 Flutter 프로젝트에서 두 플랫폼을 따로 빌드하는 방법
두 플랫폼의 진단이 통과하면 실행할 기기와 서명 조건을 확인한 뒤 플랫폼별 빌드 명령을 사용합니다. iOS에는 flutter build ipa, Android 앱 번들에는 flutter build appbundle을 사용합니다. 두 명령이 서로 다른 배포 대상을 만드는 것은 공식 배포 절차에서도 구분됩니다. 명령이 각각 성공하면 해당 빌드 결과를 확인할 수 있지만, 기본 병렬 실행이나 전체 배포 검증을 뜻하지는 않습니다.
두 플랫폼의 빌드 결과 확인
빌드 전에 의존성 상태와 대상 기기를 확인합니다. 개발 중 실행과 배포용 빌드는 목적이 다르므로, 결과를 볼 때도 어느 범위를 검증했는지 구분하세요.
flutter doctor -v
flutter devices
flutter build ipa
flutter build appbundle
iOS 명령은 Xcode 도구 및 필요한 서명 조건에 영향을 받습니다. Android 명령은 Android SDK와 라이선스 상태에 영향을 받습니다. 개발 시뮬레이터에서 실행한 결과와 배포용 빌드 결과도 서로 대체할 수 없습니다. 자동화 환경에서 병렬 빌드를 고려한다면 작업을 분리해 실행하는 방식, 빌드 자원, 서명 정보의 관리 조건을 먼저 정해야 합니다. 자동화 구성이 없다면 순차적으로 빌드하고 결과를 각각 확인하는 편이 문제 원인을 구별하기 쉽습니다.
| 검증 방식 | 확인할 수 있는 범위 | 놓치기 쉬운 조건 | 적합도 |
|---|---|---|---|
| iOS 시뮬레이터 실행 | iOS 개발 중 앱 실행과 기본 동작 | 실제 기기 설치와 배포 서명은 별도 확인 | 개발 확인에 높음 |
| Android 에뮬레이터 실행 | Android 개발 중 앱 실행과 기본 동작 | SDK 경로와 에뮬레이터 구성이 맞아야 함 | 개발 확인에 높음 |
| 실제 기기 실행 | 기기 연결과 설치, 해당 기기에서의 동작 | 플랫폼별 서명 및 등록 조건 | 기기 확인에 높음 |
| 배포용 빌드 | 플랫폼별 배포 산출물 생성 | 서명, 배포 설정, 산출물 검토 | 배포 준비 확인에 필요 |
오류가 나면 flutter doctor -v에서 누락 항목을 확인하고, Xcode 경로와 Android SDK 경로를 각각 점검한 뒤 다시 빌드하세요. 시뮬레이터가 실행되지 않으면 해당 플랫폼 도구에서 기기가 준비됐는지 확인합니다. 서명 오류라면 시뮬레이터 실행 결과와 분리해 계정, 기기 등록, 배포 설정을 확인하세요.
현재 Android 전용이나 Windows·Linux 중심 환경만 있다면 iOS용 Xcode 빌드를 그 환경에서 직접 확인할 수 없습니다. 원격 빌드 환경은 접근 권한이나 작업 상태 확인이 달라질 수 있고, 여러 개발자가 같은 Mac을 공유하면 도구 설정 충돌이 생길 수도 있습니다. 반대로 지속적인 무거운 빌드나 기기 연결이 필요한 작업은 사용 조건을 먼저 검토한 뒤 직접 Mac을 운용하는 편이 나을 수 있습니다. 임시로 iOS 빌드 환경이 필요하다면 VPSSpark의 한국 안내 페이지에서 현재 제공 조건을 확인하고, Xcode 사용 가능 여부가 명확하지 않으면 문의 페이지에서 요구 사항을 확인하세요. Mac mini M4에서는 진단 결과와 두 플랫폼의 개별 빌드 성공 여부를 기준으로 환경 준비를 마무리하면 됩니다.
Flutter 개발 환경을 원격 맥에서 이어가세요
VPSSpark의 맥 미니 M4를 이용해 엑스코드와 안드로이드 개발 도구를 갖춘 원격 개발 환경을 구성해 보세요.
전용 맥 하드웨어에서 아이오에스 앱을 빌드하고 안드로이드 빌드도 함께 진행할 수 있습니다.