macOS용 Qt
macOS용 Qt를 사용하면 Apple의 Mac 컴퓨터 제품군용 애플리케이션을 개발할 수 있습니다.
macOS용 Qt로 개발하려면 시작 가이드를 따라 Qt 예제 및 관련 주제를 살펴보세요.
지원되는 구성
다음 버전의 빌드 환경 및 런타임 대상 플랫폼은 Qt 6.8에서 지원됩니다.
빌드 환경 | 타겟 플랫폼 | 아키텍처 |
---|---|---|
Xcode 15(macOS 14 SDK) 이상 | macOS 12 이상(macOS 15 포함) | x86_64 , x86_64h , arm64 |
참고: 애플의 macOS에 대한 하위 호환성 약속은 일반적으로 새로운 운영 체제 릴리스에서 Qt 애플리케이션이 계속 잘 실행되도록 보장합니다. 발생할 수 있는 문제는 Qt 분기 및 지원 정책에 따라 우선 순위가 지정되고 일정이 정해집니다. 새로운 운영 체제 기능에 대한 지원은 일반적으로 패치 릴리스에 포함되지 않습니다.
빌드 환경
macOS용 빌드 환경은 도구 체인(컴파일러, 링커 및 기타 도구)과 빌드 및 링크하는 macOS 플랫폼-SDK(헤더 및 라이브러리)를 모두 포함하는 Apple의 Xcode 애플리케이션에서 제공합니다. 이 두 가지가 함께 애플리케이션을 빌드하는 방법을 정의합니다.
Apple은 일반적으로 사용 가능한 최신 SDK를 기준으로 애플리케이션을 빌드할 것을 권장(App Store의 경우 필수)하므로 항상 Apple에서 제공하는 최신 Xcode를 사용해야 합니다. 새 Xcode 버전은 이전 macOS 버전에서 실행되지 않을 수 있으므로 시스템의 macOS 버전을 업그레이드해야 할 수도 있습니다.
참고: macOS 빌드 환경은 항상 Xcode를 실행하는 macOS 버전이 아니라 사용 중인 Xcode 버전(해당 툴체인 및 SDK)에 의해 전적으로 정의됩니다.
동작 변경 옵트아웃
최신 Xcode 버전 및 SDK를 사용하여 애플리케이션을 빌드할 때 한 가지 주의할 점은 macOS 시스템 프레임워크가 애플리케이션을 빌드한 SDK에 따라 동작 변경을 활성화할지 여부를 결정한다는 것입니다.
이 기술을 통해 Apple은 이전 SDK에 대해 빌드된 바이너리가 최신 macOS 릴리스에서 회귀 없이 계속 실행되도록 할 수 있습니다.
예를 들어 macOS 10.14 Mojave에 다크 모드가 도입되었을 때 macOS는 10.14 SDK를 기반으로 빌드된 애플리케이션만 다크 모드를 지원하는 것으로 간주하고 이전 SDK를 기반으로 빌드된 애플리케이션은 기본 라이트 모드 모양으로 유지합니다.
이전 SDK에 대해 이전 Xcode 버전으로 빌드하는 것은 이러한 동작 변경을 거부하는 한 가지 방법이지만 최후의 해결책이므로 애플리케이션에 문제를 해결할 다른 방법이 없는 경우에만 적용해야 합니다.
대상 플랫폼
macOS용 빌드에서는 최신 플랫폼 SDK의 헤더 및 라이브러리를 기준으로 애플리케이션을 빌드하는 동시에 SDK 버전보다 낮은 macOS 버전에 애플리케이션을 배포할 수 있는 약한 연결이라는 기술을 사용합니다. 바이너리가 빌드된 SDK보다 낮은 macOS 버전에서 실행될 때 Qt는 런타임에 플랫폼 기능을 사용할 수 있는지 여부를 확인한 후 이를 활용합니다.
이론적으로는 출시되는 모든 macOS 버전에서 애플리케이션을 실행할 수 있지만, 실용적(및 기술적) 이유로 이 범위에는 애플리케이션의 배포 대상이라고 하는 하한선이 있습니다. 배포 대상보다 낮은 macOS 버전에서 바이너리를 실행하면 Qt는 오류 메시지를 표시하고 애플리케이션이 실행되지 않습니다.
Qt는 기본적으로 배포 대상을 CMAKE_OSX_DEPLOYMENT_TARGET
또는 QMAKE_MACOSX_DEPLOYMENT_TARGET
변수를 통해 표현하며, 기본적으로 이 변수는 Qt에서 지원되는 최소 배포 대상으로 설정되어 있습니다.
자신의 코드가 Qt 기본값보다 높은 macOS 버전에서 추가된 API를 사용하고 있고 런타임에 해당 API의 사용을 보호하기 위해 @available
검사를 사용하지 않는 경우에만 배포 대상을 높여야 합니다.
CMake로 배포 대상을 올리려면:
set(CMAKE_OSX_DEPLOYMENT_TARGET "42.0")
또는 qmake를 사용합니다:
QMAKE_MACOSX_DEPLOYMENT_TARGET = 42.0
참고: 배포 대상을 Qt에서 설정한 기본값보다 낮춰서는 안 됩니다. 그렇게 하면 바이너리를 Qt가 실행할 것으로 예상한 것보다 낮은 macOS 버전에 배포할 경우 런타임에 충돌이 발생할 수 있습니다.
Apple 플랫폼에서의 SDK 기반 개발에 대한 자세한 내용은 Apple의 개발자 문서를 참조하십시오.
아키텍처
기본적으로 Qt는 개발 머신의 아키텍처에 맞게 빌드됩니다(인텔 Mac을 사용하는 경우 x86_64
, Apple Silicon Mac을 사용하는 경우 arm64
).
다른 아키텍처에 맞게 빌드하려면 프로젝트 파일에서 CMAKE_OSX_ARCHITECTURES
및 QMAKE_APPLE_DEVICE_ARCHS
변수를 프로젝트 파일이나 명령줄에 추가하면 됩니다. 이를 통해 다른 아키텍처로 교차 컴파일하고 범용(멀티 아키텍처) 바이너리를 빌드할 수 있습니다. 예를 들어 CMake를 사용하여 x86_64
및 arm64
모두에 대한 애플리케이션을 빌드할 수 있습니다:
cmake ~/src/myapp -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64"
또는 qmake를 사용합니다:
qmake ~/src/myapp QMAKE_APPLE_DEVICE_ARCHS="x86_64 arm64"
프로젝트 파일에서 아키텍처를 지정할 때 따옴표로 묶어서는 안 됩니다:
TEMPLATE = app SOURCES = main.cpp QMAKE_APPLE_DEVICE_ARCHS = x86_64 arm64
인텔 Mac의 하위 아키텍처 지원
Qt는 기본 아키텍처인 x86_64
아키텍처 외에도 x86_64h
("하스웰") 하위 아키텍처를 지원하여 인텔 Mac에서 성능을 향상시킵니다.
시작하기
Xcode 설치하기
Xcode는 macOS용 Qt로 개발하기 위한 필수 요건입니다. App Store에서 설치하거나 Apple의 개발자 웹사이트에서 다운로드할 수 있습니다.
설치가 완료되면 Xcode를 한 번 실행하여 필요한 종속성을 설치하도록 하세요.
그런 다음 xcode-select
도구를 사용하여 시스템이 올바른 Xcode 설치를 사용하고 있는지 확인합니다.
$ xcode-select -print-path /Applications/Xcode.app/Contents/Developer
결과가 예상과 일치하지 않으면 Xcode 설치를 명시적으로 선택하세요.
$ sudo xcode-select --switch /Applications/Xcode.app
Qt 설치 또는 빌드하기
Qt를 설치하거나 빌드하려면 일반적인 Qt 시작하기 가이드를 따르십시오.
Xcode 프로젝트 파일 생성하기
기본적으로 CMake와 qmake는 메이크파일 형식으로 프로젝트 파일을 생성합니다. Xcode 내에서 애플리케이션을 빌드하고 디버깅하는 것을 선호하는 경우 Xcode 프로젝트를 대신 생성하도록 요청할 수 있습니다:
cmake ~/src/myapp -GXcode
또는 qmake를 사용하면 됩니다:
qmake ~/src/myapp -spec macx-xcode
macOS에 애플리케이션 배포하기
macOS 애플리케이션은 일반적으로 독립된 애플리케이션 번들로 배포됩니다. 애플리케이션 번들에는 애플리케이션 실행 파일은 물론 Qt 라이브러리, 플러그인, 번역 및 기타 필요할 수 있는 리소스와 같은 종속성이 포함되어 있습니다. Qt와 같은 타사 라이브러리는 일반적으로 시스템 전체에 설치되지 않으며 각 애플리케이션이 자체 복사본을 제공합니다.
CMake를 사용하여 애플리케이션을 애플리케이션 번들로 빌드하려면 실행 대상의 MACOSX_BUNDLE
속성을 다음과 같이 실행 대상에 설정합니다:
qt_add_executable(app) if(APPLE) set_target_properties(tst_manual_ios_assets PROPERTIES MACOSX_BUNDLE TRUE) endif()
qmake를 사용하면 번들이 기본값입니다. 비활성화하려면 프로젝트 파일(.pro
)에서 CONFIG -= app_bundle
을 설정합니다.
애플리케이션을 배포하는 일반적인 방법은 사용자가 Finder에서 마운트할 수 있는 압축 디스크 이미지(.dmg 파일)를 제공하는 것입니다. 배포 도구인 macdeployqt
(macOS 설치 관리자에서 사용 가능)를 사용하여 독립된 번들을 만들고 선택적으로 .dmg 아카이브도 만들 수 있습니다.
Mac 앱 스토어를 통해 애플리케이션을 배포할 수도 있습니다. macdeployqt(bin/macdeployqt)를 앱 스토어 배포의 시작점으로 사용할 수 있습니다. Qt가 앱 스토어 샌드박스 규칙을 준수하도록 하려면 -feature-appstore-compliant
인수를 사용하여 Qt를 구성해야 합니다.
macOS에서의 배포에 대한 자세한 내용은 macOS용 Qt - 배포를 참조하십시오.
참고: macOS App Store에서 애플리케이션을 판매하는 경우 특별한 규칙이 적용됩니다. 유효성 검사를 통과하기 위해 애플리케이션은 코드를 실행하기 전에 유효한 영수증이 있는지 확인해야 합니다. 이는 복사 방지 메커니즘이므로 일반적인 패턴을 피하고 영수증의 유효성을 검사하는 코드를 최대한 난독화하기 위한 조치를 취해야 합니다. 따라서 이 기능은 Qt로 자동화할 수 없으며 애플리케이션 자체에 맞게 특별히 작성된 일부 플랫폼별 코드가 필요합니다. 자세한 내용은 Apple 문서에서 확인할 수 있습니다.
관련 주제
다음 항목에서는 macOS용 Qt에 대한 자세한 내용을 제공합니다:
Qt 애플리케이션에서 Objective-C 코드 사용하기
Apple 플랫폼의 애플리케이션에 사용되는 컴파일러인 Clang은 C++와 Objective-C 코드의 혼합을 허용합니다. 이 모드를 활성화하려면 관련 소스 파일에 .mm
확장자를 사용하고 평소와 같이 프로젝트에 추가하세요.
CMake로:
target_sources(myapp PRIVATE objc_code.mm)
qmake 사용:
SOURCES += objc_code.mm
그러면 Qt 애플리케이션에서 Apple 개발자 라이브러리의 Objective-C 프레임워크를 사용할 수 있습니다.
모든 소스 파일의 이름을 변경할 필요 없이 애플리케이션의 나머지 부분에 기능을 노출하려면 헤더에 헬퍼 함수를 선언하고 Objective-C++ 소스 파일에서 기능을 구현하면 됩니다:
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.