https://developer.apple.com/documentation/uikit/mac_catalyst/creating_a_mac_version_of_your_ipad_app
"Bring your iPad app to macOS with Mac Catalyst."
맥 Catalyst를 사용해 아이패드 앱을 macOS로 가져옵니다.
Xcode 11과 그 이후 버전에서 맥 Catalyst를 사용해 아이패드 앱의 맥 버전을 생성할 수 있습니다. 맥을 위한 앱 설정은 앱이 사용하는 기능과 프레임워크에 따라 더 많은 단계가 필요할지라도 우선 체크박스를 클릭하는 것만을 요구합니다.
Note
아이패드 앱의 맥 버전을 설계하는 것에 대한 더 많은 정보는 Human Interface Guidelines에 있는 Mac Catalyst를 살펴보시기 바랍니다.
Mac Catalyst in the Human Interface Guidelines
https://developer.apple.com/design/human-interface-guidelines/mac-catalyst/overview/introduction/
맥에 대한 지원을 추가하려면 Xcode 프로젝트를 열고 설정하길 원하는 iOS 목표를 선택해야 합니다. 일반 탭에서 Deployment Info 아래에 있는 맥 체크박스를 선택합니다. (만약 앱이 아이폰만을 지원한다면 체크박스는 선택이 불가능하도록 비활성화되어 있습니다.)
맥 지원을 가능하게 하면 Xcode는 프로젝트에 App Sandbox Entitlement를 추가합니다. Xcode는 앱의 맥 버전에서만 이 entitlement를 포함할 수 있으며, iOS 버전은 포함할 수 없습니다. 또한, Xcode는 목적지(destination)의 리스트에 My Mac을 추가합니다. Xcode로부터 맥을 실행하기 위해 이 목적지를 선택하시기 바랍니다.
이 시점에 앱의 맥 버전을 빌드하거나 실행할 수 있을 것입니다. 시도하려면 My Mac을 목적지로써 선택하고 프로젝트를 실행합니다.
앱의 맥 버전이 빌드되지 않을 수도 있습니다. 그 이유는 아래와 같습니다.
맥 지원이 가능하도록 하는 경우 Xcode는 자동으로 호환되지 않는 프레임워크를 배제하고 프로젝트의 맥 빌드가 가능한 곳에 컨텐트를 넣습니다. 여전히 수동으로 다른 프레임워크나 컨텐트를 제외시켜야 할 필요가 있을 수 있습니다.
수동으로 아이템을 제외시키려면 iOS 목표에 대한 일반 탭 아래에 프레임워크, 라이브러리, Embedded Content를 열어야 합니다. 이후 아이템 설정을 위한 플랫폼으로써 iOs를 선택합니다. 이 설정은 앱의 맥 버전으로부터 아이템을 제외시킵니다.
만약 소스 코드가 앱의 맥 버전에서 사용이 불가능한 API를 참조하고 있다면, targetEnvironment():
플랫폼 조건을 사용하는 컴파일 조건 블록(compilation conditional block)에 코드를 묶어야 합니다.
#if !targetEnvironment(macCatalyst)
// Code to exclude from Mac.
#endif
macOS에서만 사용할 수 있는 프레임워크와 코드를 포함하는 경우에도 앞서 설명한 같은 접근방식을 사용할 수 있습니다. 프레임워크의 경우 플랫폼 설정으로 macOS를 선택하고, 코드를 #if targetEnvironment(macCatalyst)
구문과 함께 묶어야 합니다.
이 단계를 수행한 이후 맥에서 아이패드 앱이 실행될 수 있도록 해야 합니다. 새로운 앱을 고객에게 전달하기 전에 더욱 맥 앱처럼 만들기 위한 몇 가지 변경사항이 필요합니다. 이에 대해서 알아보려면 Optimizing Your iPad App for Mac을 살펴보시기 바랍니다.
Optimizing Your iPad App for Mac
https://developer.apple.com/documentation/uikit/mac_catalyst/optimizing_your_ipad_app_for_mac
https://velog.io/@panther222128/Optimizing-Your-iPad-App-for-Mac