将 Kotlin Gradle 项目用作 CocoaPods 依赖项
你可以使用整个 Kotlin 项目作为一个 Pod 依赖项. 要做到这一点, 你需要在你的项目的 Podfile 中, 指定它的名称和生成的 Podspec 文件的目录路径, 来包含这样的依赖项.
依赖项将会与项目一起自动构建(以及重构建). 这样的方案可以简化 Kotlin Multiplatform 项目到 Xcode 的导入工作, 因为不再需要编写对应的 Gradle task 和 Xcode 构建步骤.
你可以在 Kotlin 项目和带有一个或多个编译目标的 Xcode 项目之间添加依赖. 也可以在 Kotlin 项目和多个 Xcode 项目之间添加依赖. 但是, 这种情况下, 你需要对每个 Xcode 项目手动调用 pod install
. 对于单个的 Xcode 项目, 这个调用可以自动完成.
单个编译目标的 Xcode 项目
要在单个编译目标的 Xcode 项目中使用 Kotlin 项目作为 Pod 依赖项, 请执行以下步骤:
如果你还没有 Xcode 项目, 请创建一个.
在 Xcode 中, 请确认在应用程序 Target 中禁用了 Build Options 之下的 User Script Sandboxing:
在你的 Kotlin 项目的 iOS 部分, 创建一个 Podfile.
在共用模块的
build.gradle(.kts)
文件中, 使用podfile = project.file()
, 添加你的项目的 Podfile 的路径.这个步骤可以通过对你的 Podfile 调用
pod install
, 帮助你的 Xcode 项目与 Kotlin 项目依赖项保持同步.指定 Pod 库的部署目标(deployment target)最小版本:
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") } }在 Podfile 中, 对你在 Xcode 项目中想要包含的 Kotlin 项目, 添加它的名称和路径:
target '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 库的部署目标(deployment target)最小版本:
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" } // 指定 Podfile 路径 podfile = project.file("../severalTargetsXcodeProject/Podfile") } }在 Podfile 中, 对你在 Xcode 项目中想要包含的 Kotlin 项目, 添加它的名称和路径:
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在你的项目目录中运行
pod install
.在你第一次运行
pod install
时, 它会创建.xcworkspace
文件. 这个文件包含你原来的.xcodeproj
和 CocoaPods 项目.关闭你的
.xcodeproj
, 改为打开新的.xcworkspace
文件. 这样你就可以避免项目依赖的问题.在 IntelliJ IDEA 中, 运行 Build | Reload All Gradle Projects (如果是 Android Studio, 请运行 File | Sync Project with Gradle Files), 重新导入项目.