iOS Swift 라이브러리 바인딩

Important

현재 Xamarin 플랫폼에서 사용자 지정 바인딩 사용을 조사하고 있습니다. 설문 조사에 참여하여 향후 개발 작업에 대해 알려 주시기 바랍니다.

iOS 플랫폼은 모국어 및 도구와 함께 지속적으로 진화하고 있으며 최신 제품을 사용하여 개발된 많은 타사 라이브러리가 있습니다. 코드 및 구성 요소 재사용을 최대화하는 것은 플랫폼 간 개발의 주요 목표 중 하나입니다. Swift를 사용하여 빌드된 구성 요소를 재사용하는 기능은 개발자들 사이에서 인기가 계속 증가함에 따라 Xamarin 개발자에게 점점 더 중요해지고 있습니다. 일반 Objective-C 라이브러리를 바인딩하는 프로세스에 이미 익숙할 수 있습니다. 이제 Swift Framework 바인딩 프로세스를 설명하는 추가 설명서를 사용할 수 있으므로 Xamarin 애플리케이션에서 동일한 방식으로 사용할 수 있습니다. 이 문서의 목적은 Xamarin에 대한 Swift 바인딩을 만드는 개략적인 방법을 설명하는 것입니다.

개략적인 접근법

Xamarin을 사용하면 Xamarin 애플리케이션에서 사용 가능한 타사 네이티브 라이브러리를 빌드할 수 있습니다. Swift는 새로운 언어이며 이 언어로 빌드된 라이브러리에 대한 바인딩을 만들려면 몇 가지 추가 단계와 도구가 필요합니다. 이 방법은 다음 4단계를 포함합니다.

  1. 네이티브 라이브러리 빌드
  2. Xamarin 도구를 사용하여 C# 클래스를 생성할 수 있는 Xamarin 메타데이터 준비
  3. 네이티브 라이브러리 및 메타데이터를 사용하여 Xamarin 바인딩 라이브러리 빌드
  4. Xamarin 애플리케이션에서 Xamarin 바인딩 라이브러리 사용

다음 섹션에서는 추가 정보를 사용하여 이러한 단계를 간략하게 설명합니다.

네이티브 라이브러리 빌드

첫 번째 단계는 헤더를 만든 네이티브 Swift Framework를 Objective-C 준비하는 것입니다. 이 파일은 원하는 Swift 클래스, 메서드 및 필드를 노출하여 Xamarin 바인딩 라이브러리를 통해 C#에서 액세스할 수 Objective-C 있도록 하는 자동 생성된 헤더입니다. 이 파일은 FrameworkName.framework/Headers/<FrameworkName-Swift.h>> 경로 <아래의 프레임워크 내에 있습니다. 노출된 인터페이스에 필요한 멤버가 모두 있는 경우 다음 단계로 건너뛸 수 있습니다. 그렇지 않으면 해당 멤버를 노출하려면 추가 단계가 필요합니다. 이 방법은 Swift 프레임워크 소스 코드에 대한 액세스 권한이 있는지 여부에 따라 달라집니다.

  • 코드에 액세스할 수 있는 경우 필요한 Swift 멤버를 특성으로 @objc 데코레이트하고 몇 가지 추가 규칙을 적용하여 Xcode 빌드 도구에서 이러한 멤버가 월드 및 헤더에 Objective-C 노출되어야 한다는 것을 알릴 수 있습니다.
  • 소스 코드 액세스 권한이 없는 경우 원래 Swift 프레임워크를 래핑하고 특성을 사용하여 @objc 애플리케이션에 필요한 공용 인터페이스를 정의하는 프록시 Swift 프레임워크를 만들어야 합니다.

Xamarin 메타데이터 준비

두 번째 단계는 바인딩 프로젝트에서 C# 클래스를 생성하는 데 사용되는 API 정의 인터페이스를 준비하는 것입니다. 이러한 정의는 Objective Sharpie 도구와 afore멘션 자동< 생성된 FrameworkName-Swift.h> 헤더 파일을 통해 수동으로 또는 자동으로 만들 수 있습니다. 메타데이터가 생성되면 수동으로 확인하고 유효성을 검사해야 합니다.

Xamarin.iOS 바인딩 라이브러리 빌드

세 번째 단계는 Xamarin.iOS 바인딩 라이브러리라는 특수 프로젝트를 만드는 것입니다. 이전 단계에서 준비한 프레임워크 및 메타데이터와 각 프레임워크가 의존하는 추가 종속성을 참조합니다. 또한 참조된 네이티브 프레임워크를 사용하는 Xamarin.iOS 애플리케이션과 연결하는 작업도 처리합니다.

Xamarin 바인딩 라이브러리 사용

네 번째이자 마지막 단계는 Xamarin.iOS 애플리케이션에서 바인딩 라이브러리를 참조하는 것입니다. iOS 12.2 이상을 대상으로 하는 Xamarin.iOS 애플리케이션 내에서 네이티브 라이브러리를 사용하도록 설정하는 것으로 충분합니다. 하위 버전을 대상으로 하는 애플리케이션의 경우 몇 가지 추가 단계가 필요합니다.

  • 런타임 지원을 위해 Swift dylib 종속성을 추가합니다. iOS 12.2 및 Swift 5.1부터 언어는 안정적이고 호환되는 ABI(애플리케이션 이진 인터페이스)가 되었습니다. 따라서 낮은 iOS 버전을 대상으로 하는 애플리케이션에는 프레임워크에서 사용하는 Swift dylibs 종속성이 포함되어야 합니다. SwiftRuntimeSupport NuGet 패키지를 사용하여 결과 애플리케이션 패키지에 필요한 dylib 종속성을 자동으로 포함합니다.
  • 업로드 프로세스 중에 AppStore에서 유효성을 검사하는 서명된 dylibs가 있는 SwiftSupport 폴더를 추가합니다. 패키지는 Xcode 도구를 사용하여 AppStore 연결에 서명하고 배포해야 합니다. 그렇지 않으면 자동으로 거부됩니다.

연습

위의 방법은 Xamarin에 대한 Swift 바인딩을 만드는 데 필요한 개략적인 단계를 간략하게 설명합니다. 이러한 바인딩을 실제로 준비할 때는 여러 세부적인 단계가 수반되며 네이티브 도구 및 언어의 변경 사항을 적용하는 등 추가 세부 정보를 고려해야 합니다. 이를 통해 이 개념과 이 프로세스와 관련된 개략적인 단계를 보다 깊이 있게 이해할 수 있습니다. 자세한 단계별 가이드는 Xamarin Swift 바인딩 연습 설명서를 참조하세요.