사과
  • 애플 개발자 문서 한글 번역
  • App Frameworks
    • Foundation
      • 숫자, 데이터와 기본값
      • 문자열과 텍스트
      • 컬렉션
      • 날짜와 시간
      • 데이터 포맷
      • 작업 관리
        • Operation
        • OperationQueue
        • Timer
      • 리소스
        • Bundle
      • 파일 시스템
        • FileManager
      • Notification
        • NSKeyValueObserving
      • URL 로딩 시스템
        • 웹사이트 데이터를 메모리에 저장하기
        • URLSession
          • URLSessionConfiguration
            • urlCache
            • requestCachePolicy
          • configuration
        • URLSessionTask
        • URLRequest
        • URLResponse
        • HTTPURLResponse
        • 캐시 데이터에 접근하기
        • CachedURLResponse
        • URLCache
      • Object Runtime
        • NSValue
    • UIKit
      • UIKit으로 앱 개발
      • 앱과 환경
        • 앱 라이프 사이클 관리하기
        • 앱 실행에 대응하기
        • UIApplication
      • 문서, 데이터와 클립보드
      • Mac Catalyst
        • iPad 앱을 Mac 버전으로 만들기
        • 아이패드 앱의 맥 최적화
      • 뷰와 컨트롤
        • UIView
        • Table Views
          • UITableView
          • UITableViewCell
          • UIRefreshControl
        • UIScrollView
      • View Controllers
        • UIViewController
        • UITableViewController
        • UISearchController
      • 애니메이션과 햅틱
        • 프로퍼티 기반 애니메이션
          • UIViewPropertyAnimator
        • View controller 전환
      • 터치, 누르기, 제스처
        • UIResponder
        • UIKit 제스처 처리
        • 다중 제스처 인식기 조정
        • UILongPressGestureRecognizer
        • UIPanGestureRecognizer
          • maximumNumberOfTouches
          • minimunNumberOfTouches
          • translation(in:)
          • setTranslation(_:in:)
          • velocity(in:)
        • UIGestureRecognizer
    • Swift
      • 스위프트 표준 라이브러리
        • 메모리 직접 관리
          • 포인터 파라미터를 사용하는 함수 호출
          • UnsafePointer
          • UnsafeMutableRawBufferPointer
    • SwiftUI
      • 뷰와 컨트롤
        • View
        • Text
        • TextField
      • 뷰 레이아웃과 표현
      • 그리기와 애니메이션
      • 프레임워크 통합
      • 상태와 데이터 흐름
  • Graphics and Games
    • Core Animation
      • CALayer
      • CAAction
      • CAShapeLayer
      • CADisplayLink
    • Core Graphics
      • CGFloat
      • CGPath
  • App Services
    • Combine
    • WebKit
      • WKWebView
  • Media
    • AVFoundation
      • 시스템 오디오 상호작용
        • AVAudioSession
          • AVAudioSession.Category
            • ambient
            • multiRoute
            • playAndRecord
            • playback
            • record
            • soloAmbient
          • AVAudioSession.Mode
      • AVFoundation 자료형
  • Documentation Archive
    • 번들 프로그래밍 가이드
      • 번들에 대해
      • 번들 구조
    • Key-Value Observing 프로그래밍 가이드
    • Threading 프로그래밍 가이드
      • About Threaded Programming
      • Thread Management
  • ETC
    • Not Found
Powered by GitBook
On this page
  • Summary
  • 개요
  • 맥용 앱 설정
  • 체크박스 이후
  • 조금 더 맥 앱처럼
  1. App Frameworks
  2. UIKit
  3. Mac Catalyst

iPad 앱을 Mac 버전으로 만들기

Mac Catalyst로 아이패드 앱을 macOS로 가져오세요

PreviousMac CatalystNext아이패드 앱의 맥 최적화

Last updated 3 years ago

원문 출처

Summary

Framework

  • UIKit

개요

Xcode 11부터 Mac Catalyst를 사용하여 아이패드 앱을 맥 버전으로 만들 수 있게 되었습니다. 앱이 사용하는 기능과 프레임워크에 따라서 몇몇 단계가 더 필요하긴 하지만, 체크박스를 클릭하는 것만으로 앱을 맥 버전으로 설정할 수 있습니다.

알림

아이패드 앱의 맥버전 디자인에 관한 정보는 휴먼 인터페이스 가이드 중의 를 살펴보세요.

맥용 앱 설정

맥 지원을 추가하기 위해서는 Xcode 프로젝트를 열고 설정하기를 원하는 iOS 타겟을 선택해야 합니다. General 탭의 Deployment Info 아래에서 Mac 체크박스를 선택하세요. (앱이 아이폰만 지원한다면 이 체크박스는 사용할 수 없습니다)

이 시점에서 여러분은 맥 버전의 앱을 빌드하고, 실행할 수 있게 됩니다. 직접 해보려면 My Mac을 대상으로 선택하고 프로젝트를 실행하세요.

체크박스 이후

다음과 같은 이유로 아직 맥 버전의 앱이 제대로 실행되지 않을 수도 있습니다:

  • 호환되지 않는 프레임워크, 라이브러리 또는 임베디드 컨텐츠가 프로젝트에 포함된 경우.

  • 소스코드가 지원하지 않는 API를 참조하는 경우

맥 지원을 활성화하면 Xcode는 가능한 범위 내에서 자동으로 프로젝트의 맥 빌드로부터 호환되지 않는 임베디드 컨텐츠와 프레임워크를 제거합니다. 하지만 여전히 다른 프레임워크와 컨텐츠를 직접 배제할 필요가 있습니다.

(비호환) 항목을 직접 제거하기 위해서는 iOS Target > General 탭 > Frameworks, Libraries, and Embedded Content를 열어야 합니다. 그리고 나서 해당 항목의 플랫폼 설정을 iOS로 선택합니다. 이 설정은 맥 버전의 앱에서 해당 항목을 제외시킵니다.

소스코드에서 맥 버전의 앱에서는 호환되지 않는 API를 참조하고 있다면 targetEnvironment(): 플랫폼 조건을 사용하여 조건부 컴파일 블록으로 해당 코드를 감싸세요.

#if !targetEnvironment(macCatalyst)
// 맥 버전에서 제외할 코드
#endif

같은 접근법을 통해 macOS에서만 사용가능한 프레임워크와 코드를 포함시킬 수 있습니다. 프레임워크의 경우, 플랫폼 세팅에서 macOS를 선택하고 #if targetEnvironment(macCatalyst) 문으로 코드를 감쌀 수 있습니다.

조금 더 맥 앱처럼

Mac 지원을 활성화하면 Xcode는 프로젝트에 를 추가합니다. Xcode는 이 자격Entitlement을 Mac 버전의 앱에만 포함시키며, iOS 버전에는 포함시키지 않습니다. 또한, Xcode는 지원 대상 리스트에 My Mac을 추가합니다. Xcode를 통해서 Mac 앱을 실행하고자 할 때에는 My Mac을 선택하세요.

지금까지의 단계를 따라 여러분은 아이패드 앱을 맥에서 실행할 수 있게 되었을 것입니다. 그러나 여러분의 새 앱을 소비자들에게 배포하기 전에 이 앱을 좀더 맥 앱처럼 만들 몇가지 변경이 필요합니다. 더 알고 싶으시다면 문서를 보세요.

App Sandbox Entitlement
아이패드 앱의 맥 최적화
https://developer.apple.com/documentation/uikit/mac_catalyst/creating_a_mac_version_of_your_ipad_app
Mac Catalyst