将 Kotlin 项目作为 CocoaPods 依赖项使用
您可以将整个 Kotlin 项目作为一个 Pod 依赖项使用。为此,您需要在项目的 Podfile 中包含该依赖项,并指定其名称以及包含生成的 Podspec 的项目目录路径。
CocoaPods 集成方式不能与用于直接集成的
embedAndSignAppleFrameworkForXcode机制同时使用。
该依赖项将随此项目一起自动构建(及重新构建)。这种方法简化了向 Xcode 的导入,不再需要手动编写相应的 Gradle 任务和 Xcode 构建步骤。
您可以在一个 Kotlin 项目与具有一个或多个目标的 Xcode 项目之间添加依赖项。也可以在 Kotlin 项目与多个 Xcode 项目之间添加依赖项。但在这种情况下,您需要为每个 Xcode 项目手动调用 pod install。对于单个 Xcode 项目,这是自动完成的。
- 为了正确地将依赖项导入 Kotlin/Native 模块,Podfile 必须包含
use_modular_headers!或use_frameworks!指令。- 如果您没有指定最低部署目标版本,而依赖项 Pod 需要更高的部署目标,则会产生错误。
具有一个目标的 Xcode 项目
要在具有一个目标的 Xcode 项目中将 Kotlin 项目作为 Pod 依赖项使用:
如果您还没有 Xcode 项目,请创建一个。
在 Xcode 中,确保在应用目标中的 Build Options 下禁用 User Script Sandboxing:

在 Kotlin 项目的 iOS 部分,创建一个 Podfile。
在共享模块的
build.gradle(.kts)文件中,使用podfile = project.file()添加 Podfile 的路径。此步骤通过为您的 Podfile 调用
pod install,帮助您的 Xcode 项目与 Kotlin 项目依赖项保持同步。为 Pod 库指定最低部署目标版本:
kotlinkotlin { 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") } }在 Podfile 中,添加您想要包含在 Xcode 项目中的 Kotlin 项目的名称和路径:
rubytarget 'ios-app' do use_frameworks! platform :ios, '16.0' # Pods for iosApp pod 'kotlin_library', :path => '../kotlin-library' end在您的项目目录中运行
pod install。首次运行
pod install时,它会创建.xcworkspace文件。该文件包含您原始的.xcodeproj和 CocoaPods 项目。关闭您的
.xcodeproj并改为打开新的.xcworkspace文件。通过这种方式,您可以避免项目依赖项的问题。在 IntelliJ IDEA 中运行 Build | Reload All Gradle Projects(或在 Android Studio 中运行 File | Sync Project with Gradle Files)以重新导入项目。
具有多个目标的 Xcode 项目
要在具有多个目标的 Xcode 项目中将 Kotlin 项目作为 Pod 依赖项使用:
如果您还没有 Xcode 项目,请创建一个。
在 Kotlin 项目的 iOS 部分,创建一个 Podfile。
在共享模块的
build.gradle(.kts)文件中,使用podfile = project.file()添加项目的 Podfile 路径。此步骤通过为您的 Podfile 调用
pod install,帮助您的 Xcode 项目与 Kotlin 项目依赖项保持同步。使用
pod()向您想要在项目中使用的 Pod 库添加依赖项。对于每个目标,为 Pod 库指定最低部署目标版本:
kotlinkotlin { 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" } // 指定 Podfile 的路径 podfile = project.file("../severalTargetsXcodeProject/Podfile") } }在 Podfile 中,添加您想要包含在 Xcode 项目中的 Kotlin 项目的名称和路径:
rubytarget '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在您的项目目录中运行
pod install。首次运行
pod install时,它会创建.xcworkspace文件。该文件包含您原始的.xcodeproj和 CocoaPods 项目。关闭您的
.xcodeproj并改为打开新的.xcworkspace文件。通过这种方式,您可以避免项目依赖项的问题。在 IntelliJ IDEA 中运行 Build | Reload All Gradle Projects(或在 Android Studio 中运行 File | Sync Project with Gradle Files)以重新导入项目。