Skip to content

Kotlin 프로젝트를 CocoaPods 의존성으로 사용하기

전체 Kotlin 프로젝트를 Pod 의존성으로 사용할 수 있습니다. 그렇게 하려면 프로젝트의 Podfile에 해당 의존성을 포함해야 하며, 그 이름과 생성된 Podspec이 있는 프로젝트 디렉토리의 경로를 지정해야 합니다.

이 의존성은 프로젝트와 함께 자동으로 빌드(및 재빌드)됩니다. 이러한 접근 방식은 해당 Gradle 태스크와 Xcode 빌드 단계를 수동으로 작성할 필요를 없애 Xcode로 가져오는 것을 간소화합니다.

Kotlin 프로젝트와 하나 또는 여러 개의 타겟을 가진 Xcode 프로젝트 간에 의존성을 추가할 수 있습니다. Kotlin 프로젝트와 여러 Xcode 프로젝트 간에 의존성을 추가하는 것도 가능합니다. 그러나 이 경우 각 Xcode 프로젝트에 대해 pod install을 수동으로 호출해야 합니다. 단일 Xcode 프로젝트의 경우 자동으로 처리됩니다.

  • 의존성을 Kotlin/Native 모듈로 올바르게 가져오려면 Podfile에 use_modular_headers! 또는 use_frameworks! 지시문이 포함되어야 합니다.
  • 최소 배포 타겟 버전을 지정하지 않고 의존성 Pod이 더 높은 배포 타겟을 요구하는 경우, 오류가 발생합니다.

단일 타겟을 가진 Xcode 프로젝트

단일 타겟을 가진 Xcode 프로젝트에서 Kotlin 프로젝트를 Pod 의존성으로 사용하려면:

  1. Xcode 프로젝트가 아직 없는 경우, 생성하세요.

  2. Xcode에서 애플리케이션 타겟의 Build Options 아래에 있는 User Script Sandboxing을 비활성화했는지 확인하세요:

    Disable sandboxing CocoaPods

  3. Kotlin 프로젝트의 iOS 부분에 Podfile을 생성하세요.

  4. 공유 모듈의 build.gradle(.kts) 파일에서 podfile = project.file()를 사용하여 Podfile 경로를 추가하세요.

    이 단계는 Podfile에 대해 pod install을 호출하여 Xcode 프로젝트를 Kotlin 프로젝트 의존성과 동기화하는 데 도움이 됩니다.

  5. Pod 라이브러리에 대한 최소 배포 타겟 버전을 지정하세요:

    kotlin
    kotlin {
        iosArm64()
    
        cocoapods {
            version = "2.0"
            summary = "CocoaPods test library"
            homepage = "https://github.com/JetBrains/kotlin"
            ios.deploymentTarget = "16.0"
    
            pod("SDWebImage") {
                version = "5.20.0"
            }
            podfile = project.file("../ios-app/Podfile")
        }
    }
  6. Podfile에 Xcode 프로젝트에 포함하려는 Kotlin 프로젝트의 이름과 경로를 추가하세요:

    ruby
    target 'ios-app' do
        use_frameworks!
        platform :ios, '16.0'
    
        # Pods for iosApp
        pod 'kotlin_library', :path => '../kotlin-library'
    end
  7. 프로젝트 디렉토리에서 pod install을 실행하세요.

    pod install을 처음 실행하면 .xcworkspace 파일이 생성됩니다. 이 파일에는 원래의 .xcodeproj와 CocoaPods 프로젝트가 포함됩니다.

  8. 기존 .xcodeproj를 닫고 대신 새로 생성된 .xcworkspace 파일을 여세요. 이렇게 하면 프로젝트 의존성 관련 문제를 피할 수 있습니다.

  9. IntelliJ IDEA에서 Build | Reload All Gradle Projects를 실행하거나 (또는 Android Studio에서 File | Sync Project with Gradle Files를 실행하여) 프로젝트를 다시 가져오세요.

여러 타겟을 가진 Xcode 프로젝트

여러 타겟을 가진 Xcode 프로젝트에서 Kotlin 프로젝트를 Pod 의존성으로 사용하려면:

  1. Xcode 프로젝트가 아직 없는 경우, 생성하세요.

  2. Kotlin 프로젝트의 iOS 부분에 Podfile을 생성하세요.

  3. 공유 모듈의 build.gradle(.kts) 파일에서 podfile = project.file()를 사용하여 프로젝트의 Podfile 경로를 추가하세요.

    이 단계는 Podfile에 대해 pod install을 호출하여 Xcode 프로젝트를 Kotlin 프로젝트 의존성과 동기화하는 데 도움이 됩니다.

  4. pod()를 사용하여 프로젝트에서 사용하려는 Pod 라이브러리에 의존성을 추가하세요.

  5. 각 타겟에 대해 Pod 라이브러리의 최소 배포 타겟 버전을 지정하세요:

    kotlin
    kotlin {
        iosArm64()
        tvosArm64()
    
        cocoapods {
            version = "2.0"
            summary = "CocoaPods test library"
            homepage = "https://github.com/JetBrains/kotlin"
            ios.deploymentTarget = "16.0"
            tvos.deploymentTarget = "16.0"
    
            pod("SDWebImage") {
                version = "5.20.0"
            }
            // Specify the path to the Podfile
            podfile = project.file("../severalTargetsXcodeProject/Podfile")
        }
    }
  6. Podfile에 Xcode 프로젝트에 포함하려는 Kotlin 프로젝트의 이름과 경로를 추가하세요:

    ruby
    target 'iosApp' do
      use_frameworks!
      platform :ios, '16.0'
    
      # Pods for iosApp
      pod 'kotlin_library', :path => '../kotlin-library'
    end
    
    target 'TVosApp' do
      use_frameworks!
      platform :tvos, '16.0'
    
      # Pods for TVosApp
      pod 'kotlin_library', :path => '../kotlin-library'
    end
  7. 프로젝트 디렉토리에서 pod install을 실행하세요.

    pod install을 처음 실행하면 .xcworkspace 파일이 생성됩니다. 이 파일에는 원래의 .xcodeproj와 CocoaPods 프로젝트가 포함됩니다.

  8. 기존 .xcodeproj를 닫고 대신 새로 생성된 .xcworkspace 파일을 여세요. 이렇게 하면 프로젝트 의존성 관련 문제를 피할 수 있습니다.

  9. IntelliJ IDEA에서 Build | Reload All Gradle Projects를 실행하거나 (또는 Android Studio에서 File | Sync Project with Gradle Files를 실행하여) 프로젝트를 다시 가져오세요.

다음 단계