iOS로 포팅하기

이 섹션에서는 기존 Qt 애플리케이션을 iOS로 포팅하여 디바이스에 배포하는 방법을 살펴봅니다.

iOS에서 지원되지 않는 특정 하드웨어나 소프트웨어 기능에 의존하지 않는 한 대부분의 Qt 애플리케이션은 쉽게 iOS로 포팅할 수 있습니다. 포팅 작업의 주요 부분은 애플리케이션의 모든 에셋(예: QML 파일, 이미지, 아이콘)이 기기에 올바르게 배포되는지 확인하는 것입니다.

대부분의 UI 애플리케이션과 마찬가지로 Qt 애플리케이션도 이미지, 아이콘, 번역 파일 등과 같은 리소스에 의존합니다. 이러한 리소스는 애플리케이션이 올바르게 작동하는 데 필요하므로 장치에서 사용할 수 있어야 합니다.

가장 편리한 옵션은 리소스를 애플리케이션 바이너리에 빌드되는 qrc 파일로 번들링하는 것입니다. 이 접근 방식은 포팅 작업을 상당히 줄여주고 리소스에 더 빠르게 액세스할 수 있습니다. 또한 크로스 플랫폼 접근 방식이므로 다른 플랫폼으로 쉽게 포팅할 수 있습니다.

기본적으로 모든 Qt 애플리케이션은 ":/" 접두사 또는 URL 체계 접두사 "qrc:"를 사용하여 qrc 파일의 콘텐츠에 액세스할 수 있습니다. qrc 파일과 그 처리 방식에 대한 자세한 내용은 Qt 리소스 시스템을 참조하십시오.

다음 단계별 지침은 qrc 접근 방식을 사용하여 기존 Qt Quick 애플리케이션을 iOS로 포팅하는 방법을 안내합니다:

  1. Qt Creator 에서 기존 프로젝트를 열고 iOS 또는 iOS 시뮬레이터 키트로 구성합니다. 자세한 내용은 Qt Creator: 프로젝트 구성하기를 참조하세요.
  2. 로컬 네임스페이스를 사용하도록 qml 파일에서 모든 로컬 디렉토리 가져오기를 업데이트합니다. 예를 들어 main.qml 을 기준으로 "contents" 디렉터리에 있는 QML 문서를 가져오려면 다음 가져오기 문을 사용합니다:
    import "contents" as Contents
  3. 애플리케이션에서 사용하는 모든 리소스를 식별하여 하나 이상의 qrc 파일에 추가합니다. Qt Creator 는 추가한 qrc 파일을 나열하여 RESOURCES 변수로 qmake 프로젝트 파일을 업데이트합니다.
  4. C++ 파일에서 qrc 파일의 리소스를 로드하거나 참조하려면 URL에 접두사 "qrc:"를 사용합니다. 예를 들어
    QQuickView viewer;
    viewer.setSource(QUrl("qrc:qml/main.qml"));
    viewer.show();

    참고: QML 문서는 문서의 상대 경로를 사용하여 리소스에 있는 파일을 참조할 수 있습니다. 이러한 참조에는 "qrc:" 또는 ":/" 접두사가 필요하지 않습니다.

  5. Qt Creator 에 설명된 대로 프로젝트의 "실행" 설정을 업데이트합니다: 실행을 위한 프로젝트 구성
  6. 애플리케이션이 특수 Qt 모듈에 의존하는 임포트 또는 플러그인을 사용하는 경우 빌드 구성 파일에 이러한 Qt 모듈을 추가해야 합니다. 예를 들어 애플리케이션이 QML에서 Qt Multimedia 임포트를 사용하는 경우 .pro 또는 CMakeLists.txt 파일에 다음을 추가해야 합니다:
    qmake#tab-qmake
    find_package(Qt6 REQUIRED COMPONENTS Multimedia)
    target_link_libraries(my_project PRIVATE Qt6::Multimedia)
    QT += multimedia

    iOS용 Qt에서는 모든 것이 정적으로 컴파일되어 애플리케이션 번들에 배치됩니다. 애플리케이션은 번들 내에서 "샌드박스"되어 공유 객체 파일을 사용할 수 없습니다. 따라서 Qt 모듈에서 사용하는 플러그인도 정적으로 링크해야 합니다. 이렇게 하려면 QTPLUGIN 변수를 사용하여 필요한 플러그인을 정의합니다.

  7. 프로젝트에 변경 사항을 저장하고 애플리케이션을 실행합니다.

Qt Creator 기기가 Xcode에서 올바르게 감지되고 구성되면 iOS 기기에 애플리케이션이 배포됩니다. iOS 시뮬레이터에서 애플리케이션을 테스트할 수도 있습니다. 자세한 내용은 iOS 기기 연결하기를 참조하십시오.

플랫폼 참고 사항 - iOS도참조하십시오 .

© 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.