Jazmine Barroga
10/14/2025, 9:33 AMkpgalligan
10/14/2025, 4:09 PMspm4Kmp can wrap SPM dependencies and configure cinterop for them, then there's no major reason why it couldn't be used with KMMBridge. However, you'll almost certainly need to disable the automatic Package.swift feature of KMMBridge because I'm sure spm4Kmp will need to at least use it, if not change the file itself. Again, I've never used spm4Kmp, so I don't know whether it actually changes Package.swift or not, but to define SPM dependencies, you'll need them in Package.swift at a minimum, so I can't imagine it would play well with default KMMBridge functionality.Jazmine Barroga
10/17/2025, 7:52 AMFrançois
10/17/2025, 9:42 AMJazmine Barroga
10/17/2025, 11:00 AM// Package.swift
let package = Package(
name: "UmbrellaModule",
platforms: [
.iOS(.v16),
.watchOS(.v9)
],
products: [
.library(
name: "UmbrellaModule",
targets: ["UmbrellaModule", "UmbrellaModuleDependencies"]
)
],
dependencies: [
.package(url: "<https://github.com/firebase/firebase-ios-sdk.git>", .upToNextMajor(from: "12.0.0")),
.package(url: "<https://github.com/googleads/swift-package-manager-google-mobile-ads.git>", .upToNextMajor(from: "12.0.0"))
],
targets: [
.binaryTarget(
name: "UmbrellaModule",
url: <url>, // generated by kmmbridge
checksum: <checksum> // generated by kmmbridge
),
.target(
name: "UmbrellaModuleDependencies",
dependencies: [
.product(name: "FirebaseAnalytics", package: "firebase-ios-sdk"), // dependency of module A
.product(name: "FirebaseRemoteConfig", package: "firebase-ios-sdk"), //dependency of module B
.product(name: "GoogleMobileAds", package: "swift-package-manager-google-mobile-ads") // dependency of module C
],
path: "Sources"
)
]
)François
10/17/2025, 1:30 PMJazmine Barroga
10/20/2025, 9:18 AMFrançois
10/20/2025, 9:21 AMJazmine Barroga
10/20/2025, 9:42 AMFrançois
10/20/2025, 9:45 AMFrançois
10/20/2025, 9:46 AMFrançois
10/20/2025, 9:47 AMJazmine Barroga
10/20/2025, 5:38 PM