Use External Dependencies
How It works
On completion with the basic configuration, it's possible to use external dependency with your bridge.
The Plug-in reproduces the CocoaPods plugin behavior with the same kind of issues about third-party dependency but less intrusively.
Note
If your package doesn't work with the plugin, please create an issue.
Supported Dependency Sources
The plugin supports the following configurations :
XCFramework
The XCFramework are used for Local/Remote Binary and protecting source code distribution, learn more.
An example is available.
Gradle
The following configuration imports the package CryptoSwift which is a pure Swift library, that can't be used directly in Kotlin.
swiftPackageConfig {
create("[cinteropName]") {
dependency {
remotePackageVersion(
url = URI("https://github.com/krzyzanowskim/CryptoSwift.git"),
products = {
add("CryptoSwift")
},
version = "1.8.4",
)
// Another SwiftDependency
// ...
}
}
}
Warning
A local swift package is being generated during the build and this message displayed
Spm4Kmp: A local Swift package has been generated at
/path/to/the/local/package
Please add it to your xcode project as a local package dependency.
Note : When updating your configuration, reset the package cache to apply the modification.
Example
Make your Swift code compatible with Kotlin.
Your Swift code needs to be marked as @objc/@objcMembers and the visibility set as public
or it won't be exported and available from your Kotlin code.