iOS용 Qt
iOS용 Qt를 사용하면 Apple의 iPhone 및 iPad 기기뿐만 아니라 Apple Vision Pro용 애플리케이션도 빌드할 수 있습니다.
Qt for iOS로 개발하려면 시작 가이드를 따르고, iOS용 예제와 관련 주제를 살펴보십시오.
지원되는 구성
Qt 6.12에서는 다음 버전의 빌드 환경 및 런타임 대상 플랫폼을 지원합니다.
| 빌드 환경 | 대상 플랫폼 | 아키텍처 |
|---|---|---|
| Xcode 16 (iOS 18 SDK) 이상 | iOS 18 이상 (iOS 26 포함) | armv8, arm64 |
참고: Apple의 iOS에 대한 향후 호환성 약속은 일반적으로 Qt 애플리케이션이 새로운 운영 체제 릴리스에서도 원활하게 실행되도록 보장합니다. 발생할 수 있는 문제는 Qt의 분기 및 지원 정책에 따라 우선 순위가 지정되고 일정이 수립됩니다. 새로운 운영 체제 기능에 대한 지원은 일반적으로 패치 릴리스에 포함되지 않습니다.
| 자동화된 테스트에 사용되는 대상 기기 | |||
|---|---|---|---|
| 기기 | OS 버전 | 아키텍처 | 폼 팩터 |
| iPhone 12 | iOS 17 | armv8 (arm64) | 모바일 |
| iPhone 11 | iOS 17 | armv8 (arm64) | 모바일 |
| iPad Pro, 3세대 | iOS 17 | armv8 (arm64) | 태블릿 |
| iPad, 6세대 | iOS 17 | armv8 (arm64) | 태블릿 |
| iPad, 9세대 | iOS 18 | armv8 (arm64) | 태블릿 |
| iPhone 16e | iOS 18 | armv8 (arm64) | 모바일 |
| iPad Air M3 | iOS 18 | armv8 (arm64) | 태블릿 |
빌드 환경
iOS용 빌드 환경은 Apple의 Xcode 애플리케이션에서 제공되며, 여기에는 툴체인(컴파일러, 링커 및 기타 도구)과 빌드 및 링크에 사용되는 iOS 플랫폼 SDK(헤더 및 라이브러리)가 모두 포함되어 있습니다. 이 두 가지가 결합되어 애플리케이션의 빌드 방식을 정의합니다.
Apple은 일반적으로 애플리케이션을 최신 SDK를 사용하여 빌드할 것을 권장하며(App Store의 경우 필수 사항입니다), 따라서 항상 Apple에서 제공하는 최신 버전의 Xcode를 사용해야 합니다. 새로운 Xcode 버전은 구형 macOS 버전에서는 실행되지 않을 수 있으므로, 이를 위해 시스템의 macOS 버전을 업그레이드해야 할 수도 있습니다.
참고: iOS 빌드환경은 항상 사용 중인 Xcode 버전(해당 툴체인 및 SDK)에 의해 전적으로 정의되며, Xcode를 실행 중인 macOS 버전과는무관합니다.
동작 변경 사항 적용 제외
최신 Xcode 버전과 SDK를 사용하여 애플리케이션을 빌드할 때 주의해야 할 점은, iOS 시스템 프레임워크가 애플리케이션을 빌드할 때 사용한 SDK를 기준으로 동작 변경 사항을 활성화할지 여부를 결정하는 경우가 있다는 것입니다.
이 방식을 통해 Apple은 구형 SDK를 기반으로 빌드된 바이너리가 최신 iOS 릴리스에서도 기능 저하 없이 계속 실행될 수 있도록 보장할 수 있습니다.
예를 들어, macOS 10.14 Mojave에서 다크 모드가 도입되었을 때, macOS는 10.14 SDK를 기반으로 빌드된 애플리케이션만 다크 모드를 지원하는 것으로 간주하고, 이전 SDK를 기반으로 빌드된 애플리케이션은 기본 밝은 모드 외관을 유지하도록 했습니다.
구버전 Xcode를 사용하여 구버전 SDK로 빌드하는 것은 이러한 동작 변경을 피할 수 있는 한 가지 방법이지만, 이는 최후의 수단이며, 애플리케이션에 이 문제를 해결할 다른 방법이 전혀 없는 경우에만 적용해야 합니다.
대상 플랫폼
iOS용 빌드에서는 ‘약한 링크 (weak linking)’라는 기법을 사용하는데, 이를 통해 최신 플랫폼 SDK의 헤더와 라이브러리를 사용하여 애플리케이션을 빌드하면서도, SDK 버전보다 낮은 iOS 버전에 애플리케이션을 배포할 수 있습니다. 빌드된 SDK보다 낮은 버전의 iOS에서 바이너리가 실행될 때, Qt는 플랫폼 기능을 사용하기 전에 런타임에 해당 기능이 사용 가능한지 여부를 확인합니다.
이론적으로는 출시된 모든 iOS 버전에서 애플리케이션을 실행할 수 있겠지만, 실질적인(그리고 기술적인) 이유로 이 범위에 하한이 존재하며, 이를 애플리케이션의 배포 대상 ( deployment target )이라고 합니다. 바이너리가 배포 대상보다 낮은 iOS 버전에서 실행되면 Qt는 오류 메시지를 표시하고 애플리케이션은 실행되지 않습니다.
Qt는 CMAKE_OSX_DEPLOYMENT_TARGETQMAKE_MACOSX_DEPLOYMENT_TARGET 변수를 통해 표현하며, 이 변수는 기본적으로 Qt가 지원하는 최소 배포 대상 버전으로 설정되어 있습니다.
사용자 정의 코드에서 Qt의 기본값보다 높은 iOS 버전에서 추가된 API를 사용하며, 런타임 시 해당 API 사용을 제한하기 위해 ` @available ` 검사를 사용하지 않는 경우에만 배포 대상을 높여야 합니다.
CMake를 사용하여 배포 대상을 높이려면:
set(CMAKE_OSX_DEPLOYMENT_TARGET "42.0")또는 qmake를 사용하는 경우:
QMAKE_MACOSX_DEPLOYMENT_TARGET = 42.0참고: Qt에서 설정한 기본값보다 배포 대상을 낮춰서는 안됩니다 . 그렇게 할 경우, 바이너리가 Qt가 예상한 것보다 낮은 버전의 iOS에 배포되면 런타임에 충돌이 발생할 가능성이 높습니다.
Apple 플랫폼에서의 SDK 기반 개발에 대한 자세한 내용은 Apple의 개발자 문서를 참조하십시오.
시작하기
Xcode 설치
Xcode는 iOS용 Qt 개발에 필수적인 도구입니다. App Store에서 설치하거나 Apple 개발자 웹사이트에서 다운로드할 수 있습니다.
설치가 완료되면 Xcode를 한 번 실행하여 필요한 종속성을 설치해 주십시오.
그런 다음 ‘ xcode-select ’ 도구를 사용하여 시스템이 올바른 Xcode 설치 버전을 사용하고 있는지 확인해 주십시오.
$ xcode-select -print-path
/Applications/Xcode.app/Contents/Developer출력 결과가 예상과 일치하지 않는 경우, Xcode 설치 경로를 직접 선택하십시오.
$ sudo xcode-select --switch /Applications/Xcode.appQt for iOS 시뮬레이터 라이브러리의 아키텍처는 x86_64 이므로, Apple Silicon 기반 Mac에서는 iOS 시뮬레이터가 Rosetta 환경에서 실행되어야 합니다. Xcode 26 이상 버전에서는 Xcode 설정에서 기본으로 설치된 iOS 플랫폼 구성 요소를 삭제한 다음, 범용 iOS 플랫폼 구성 요소를 수동으로 설치해야 합니다:
xcodebuild -downloadPlatform iOS -architectureVariant universalXcode에 포함된 시뮬레이터에서 Qt 애플리케이션을 테스트하는 데는 이 정도면 충분합니다. 하지만 실제 기기에서 애플리케이션을 실행하거나 App Store에 애플리케이션을 게시하려면 Apple Developer Program에 가입하고, 개발자 인증서 및 프로비저닝 프로파일을 설정해야 합니다.
Qt 애플리케이션을 빌드하기 전에, 예를 들어 기기에서 표준 Xcode 애플리케이션 템플릿 중 하나를 실행하여 Xcode가 올바르게 설정되었는지 테스트해야 합니다.
Qt 설치 또는 빌드
Qt를 설치하거나 빌드하려면 일반적인 Qt 시작 가이드를 따르십시오.
명령줄에서 애플리케이션 빌드하기
CMake 또는 qmake를 사용하여 iOS 애플리케이션을 빌드하는 방법을 정의하십시오. CMake와 qmake 모두 ` xcodeproj ` 파일을 생성할 수 있으며, 이 파일을 불러와 명령줄에서 빌드할 수 있습니다.
CMake 사용
<Qt-dir>/<version>/ios/bin/ 에 위치한 qt-cmake 편의 스크립트를 사용하면 툴체인과 올바른 아키텍처 설정을 자동으로 처리해 줍니다.
qt-cmake 편의 스크립트 사용법:
<Qt-dir>/<version>/ios/bin/qt-cmake <source-dir>생성된 xcodeproj 파일을 사용하여 Xcode로 애플리케이션을 빌드하거나, 명령줄에서 xcodebuild 를 실행할 수 있습니다. 애플리케이션에 사용할 수 있는 타깃 및 스킴 목록을 확인하려면 다음 명령을 실행하십시오:
xcodebuild -list -project <your-app>.xcodeproj그런 다음, 애플리케이션 세부 정보를 지정하여 xcodebuild build 를 실행하십시오:
xcodebuild build -allowProvisioningUpdates -project <your-app>.xcodeproj -scheme <your-scheme> -configuration Debug -destination "generic/platform=iOS" -destination-timeout 1 ENABLE_ONLY_ACTIVE_RESOURCES=NOqmake 사용
먼저, qmake를 사용하여 애플리케이션을 빌드하는 방법을 정의합니다. 그런 다음 생성된 xcodeproj 파일을 사용하여 Xcode에서 또는 명령줄을 통해 애플리케이션을 빌드합니다.
qmake <your-app>.proqmake는 xcodebuild 를 호출하는 래퍼 Makefile을 생성하므로, make 를 실행하여 애플리케이션을 빌드할 수 있습니다:
make -j8소스 파일을 추가하거나 제거하는 등 프로젝트 구성이 변경된 경우에는 프로젝트를 다시 가져와야 한다는 점에 유의하십시오.
Xcode 프로젝트 설정 사용자 지정
QMAKE_MAC_XCODE_SETTINGS 라는 qmake 변수를 사용하여 Xcode 설정을 사용자 정의할 수 있습니다. 예를 들면 다음과 같습니다.
development_team.name = DEVELOPMENT_TEAM
development_team.value = <your-team-id>
QMAKE_MAC_XCODE_SETTINGS += development_team그 밖에도 다음과 같은 qmake 변수들이 유용합니다:
QMAKE_TARGET_BUNDLE_PREFIX = com.<your-company>
QMAKE_BUNDLE = <your-app>Xcode에서 애플리케이션 실행하기
qmake 및 CMake로 생성된 Xcode 프로젝트는 iOS 기기와 iOS 시뮬레이터 모두에서 애플리케이션을 실행할 수 있도록 지원합니다.
참고: Qt for iOS 시뮬레이터 라이브러리의 기본 아키텍처는 x86_64이므로 , Apple Silicon 기반 Mac에서는 애플리케이션이 Rosetta 환경에서 실행되어야 합니다. Xcode의 실행 대상 메뉴에 Rosetta 기반 실행 대상이 표시되지 않는 경우, ‘ Product > Destination > Destination Architectures ’ 메뉴를 통해 활성화할 수 있습니다.
애플리케이션 빌드 및 실행 Qt Creator
Qt for iOS 애플리케이션을 설정하고 실행하는 방법에 대한 정보는 Qt Creator 문서에서 확인할 수 있습니다:
단, 이를 위해서는 정상적으로 작동하는 Xcode가 설치되어 있어야 합니다.
iOS 예제
Qt Creator 에서 iOS용으로 테스트된 예제를 확인할 수 있습니다. ‘ ios ’ 키워드를 사용하여 ‘ Qt Creator ’의 ‘Welcome’ 모드에서 예제를 검색하세요. 일부 예제는 기능이 제한될 수 있으니 유의하시기 바랍니다.
iOS 기기에서 정상 작동하는 것으로 확인된 예제 목록을 보려면 Qt for iOS 예제를 방문하십시오.
관련 주제
다음 항목에서는 Qt for iOS에 대한 자세한 내용을 확인할 수 있습니다:
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++ 소스 파일에서 해당 기능을 구현하십시오:
© 2026 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.