{
"originHash" : "82559ae995bc785814cabdbd2eff358a0cca93c1aad69dc3fabf54038862c193",
"pins" : [
{
"identity" : "abseil-cpp-binary",
"kind" : "remoteSourceControl",
"location" : "https://github.com/google/abseil-cpp-binary.git",
"state" : {
"revision" : "bbe8b69694d7873315fd3a4ad41efe043e1c07c5",
"version" : "1.2024072200.0"
}
},
{
"identity" : "app-check",
"kind" : "remoteSourceControl",
"location" : "https://github.com/google/app-check.git",
"state" : {
"revision" : "3e33dd27dd4c69bd81c7c81fe61d8ccf58846902",
"version" : "11.3.1"
}
},
{
"identity" : "appsflyerframework-static",
"kind" : "remoteSourceControl",
"location" : "https://github.com/AppsFlyerSDK/AppsFlyerFramework-Static.git",
"state" : {
"revision" : "80b7f4fcfafe6268ffd62c04076b510cb5bd0958",
"version" : "6.17.9"
}
},
{
"identity" : "blaze-specs-ios",
"kind" : "remoteSourceControl",
"location" : "https://github.com/WSCSports/blaze-specs-ios",
"state" : {
"revision" : "fecfcc475ab48570b4046618f61a69b282bc1adc",
"version" : "1.15.1"
}
},
{
"identity" : "brightcove-player-sdk-ios",
"kind" : "remoteSourceControl",
"location" : "https://github.com/brightcove/brightcove-player-sdk-ios.git",
"state" : {
"revision" : "5a20bd8f8ab934dbf7b3c4c8e0a28539c2da432d",
"version" : "7.2.3"
}
},
{
"identity" : "camera-kit-ios-sdk",
"kind" : "remoteSourceControl",
"location" : "https://github.com/Snapchat/camera-kit-ios-sdk.git",
"state" : {
"revision" : "6dbbc4fa7e9f357aece1e67b6107fae2f43ffd88",
"version" : "1.46.0"
}
},
{
"identity" : "dd-sdk-ios",
"kind" : "remoteSourceControl",
"location" : "https://github.com/Datadog/dd-sdk-ios.git",
"state" : {
"revision" : "2dc56bbb219c06102f74ab71d11e66069ba80e5d",
"version" : "3.8.3"
}
},
{
"identity" : "events-sdk-swift",
"kind" : "remoteSourceControl",
"location" : "https://github.com/ht-sdks/events-sdk-swift.git",
"state" : {
"revision" : "de1a5e345f09c978f3e010a33f4c11687b536573",
"version" : "0.1.1"
}
},
{
"identity" : "exponea-ios-sdk",
"kind" : "remoteSourceControl",
"location" : "https://github.com/exponea/exponea-ios-sdk.git",
"state" : {
"revision" : "135ddac6cc80169a0cc9cdb32a061ca11320e6b8",
"version" : "3.11.0"
}
},
{
"identity" : "firebase-ios-sdk",
"kind" : "remoteSourceControl",
"location" : "https://github.com/firebase/firebase-ios-sdk.git",
"state" : {
"revision" : "42e81d245e30e49ea6a5830cf2842d44a1591270",
"version" : "12.15.0"
}
},
{
"identity" : "google-ads-on-device-conversion-ios-sdk",
"kind" : "remoteSourceControl",
"location" : "https://github.com/googleads/google-ads-on-device-conversion-ios-sdk",
"state" : {
"revision" : "dc39082d8881109d35b94b1c122164c0e8d08a55",
"version" : "3.6.1"
}
},
{
"identity" : "googleappmeasurement",
"kind" : "remoteSourceControl",
"location" : "https://github.com/google/GoogleAppMeasurement.git",
"state" : {
"revision" : "144855f40d8668927f256a3045f7fdc4c3f4338b",
"version" : "12.15.0"
}
},
{
"identity" : "googledatatransport",
"kind" : "remoteSourceControl",
"location" : "https://github.com/google/GoogleDataTransport.git",
"state" : {
"revision" : "ba3358d3c3dbae8ef230b58a46b97ad65e84e974",
"version" : "10.1.1"
}
},
{
"identity" : "googleutilities",
"kind" : "remoteSourceControl",
"location" : "https://github.com/google/GoogleUtilities.git",
"state" : {
"revision" : "9f183ae842be978784f2963a343682e0c46d8fb3",
"version" : "8.1.2"
}
},
{
"identity" : "grpc-binary",
"kind" : "remoteSourceControl",
"location" : "https://github.com/google/grpc-binary.git",
"state" : {
"revision" : "75b31c842f664a0f46a2e590a570e370249fd8f6",
"version" : "1.69.1"
}
},
{
"identity" : "gtm-session-fetcher",
"kind" : "remoteSourceControl",
"location" : "https://github.com/google/gtm-session-fetcher.git",
"state" : {
"revision" : "724a52eea6329b7e12d3ad8300d76ca9f3895fcc",
"version" : "5.3.1"
}
},
{
"identity" : "interop-ios-for-google-sdks",
"kind" : "remoteSourceControl",
"location" : "https://github.com/google/interop-ios-for-google-sdks.git",
"state" : {
"revision" : "040d087ac2267d2ddd4cca36c757d1c6a05fdbfe",
"version" : "101.0.0"
}
},
{
"identity" : "kingfisher",
"kind" : "remoteSourceControl",
"location" : "https://github.com/onevcat/Kingfisher.git",
"state" : {
"revision" : "ac632bd26a1c00f139ff62fd01806f21cf67325e",
"version" : "8.10.0"
}
},
{
"identity" : "kscrash",
"kind" : "remoteSourceControl",
"location" : "https://github.com/kstenerud/KSCrash.git",
"state" : {
"revision" : "95a8895d75f3c22aa9ad9f2a15d2fbd97b0a55e2",
"version" : "2.5.1"
}
},
{
"identity" : "leveldb",
"kind" : "remoteSourceControl",
"location" : "https://github.com/firebase/leveldb.git",
"state" : {
"revision" : "a0bc79961d7be727d258d33d5a6b2f1023270ba1",
"version" : "1.22.5"
}
},
{
"identity" : "microsoft-authentication-library-for-objc",
"kind" : "remoteSourceControl",
"location" : "https://github.com/AzureAD/microsoft-authentication-library-for-objc.git",
"state" : {
"revision" : "231af305ec9c4634f32af0d43a3765b5b00e261d",
"version" : "2.6.0"
}
},
{
"identity" : "nanopb",
"kind" : "remoteSourceControl",
"location" : "https://github.com/firebase/nanopb.git",
"state" : {
"revision" : "3851d94a41890dea16dc3db34caf60e585cb4163",
"version" : "2.30910.1"
}
},
{
"identity" : "opentelemetry-swift-core",
"kind" : "remoteSourceControl",
"location" : "https://github.com/open-telemetry/opentelemetry-swift-core",
"state" : {
"revision" : "240c8d5e36c3c7b774ed961325369f0b1f2c965f",
"version" : "2.3.0"
}
},
{
"identity" : "otpublishersheadlesssdk",
"kind" : "remoteSourceControl",
"location" : "https://github.com/Zentrust/OTPublishersHeadlessSDK.git",
"state" : {
"revision" : "b7420965cb5aaea9a475874cf19a425b16b64290",
"version" : "202510.1.0"
}
},
{
"identity" : "promises",
"kind" : "remoteSourceControl",
"location" : "https://github.com/google/promises.git",
"state" : {
"revision" : "f4a19a3c313dc2616c70bb49d29a799fb16be837",
"version" : "2.4.1"
}
},
{
"identity" : "snap-kit-spm",
"kind" : "remoteSourceControl",
"location" : "https://github.com/Snapchat/snap-kit-spm",
"state" : {
"revision" : "b4593a1ec3813af844806fef319ef68888611fba",
"version" : "2.6.0"
}
},
{
"identity" : "sovran-swift",
"kind" : "remoteSourceControl",
"location" : "https://github.com/segmentio/Sovran-Swift.git",
"state" : {
"revision" : "24867f3e4ac62027db9827112135e6531b6f4051",
"version" : "1.1.2"
}
},
{
"identity" : "swift-atomics",
"kind" : "remoteSourceControl",
"location" : "https://github.com/apple/swift-atomics.git",
"state" : {
"revision" : "0442cb5a3f98ab802acb777929fdb446bda11a34",
"version" : "1.3.1"
}
},
{
"identity" : "swift-package-manager-google-interactive-media-ads-ios",
"kind" : "remoteSourceControl",
"location" : "https://github.com/googleads/swift-package-manager-google-interactive-media-ads-ios.git",
"state" : {
"revision" : "871bc80349774ba228c41096129995d1e9848b04",
"version" : "3.28.10"
}
},
{
"identity" : "swift-package-manager-google-mobile-ads",
"kind" : "remoteSourceControl",
"location" : "https://github.com/googleads/swift-package-manager-google-mobile-ads.git",
"state" : {
"revision" : "1239c23464503053c17d37ee5daa70de3455e9c8",
"version" : "12.14.0"
}
},
{
"identity" : "swift-package-manager-google-user-messaging-platform",
"kind" : "remoteSourceControl",
"location" : "https://github.com/googleads/swift-package-manager-google-user-messaging-platform.git",
"state" : {
"revision" : "13b248eaa73b7826f0efb1bcf455e251d65ecb1b",
"version" : "3.1.0"
}
},
{
"identity" : "swiftsoup",
"kind" : "remoteSourceControl",
"location" : "https://github.com/scinfu/SwiftSoup.git",
"state" : {
"revision" : "8d6ad267714cac3ae747cefdd21f7a6665006e1f",
"version" : "2.13.7"
}
}
],
"version" : 3
}
Description
Environment
FirebaseAnalyticsconsumed through a local SPM package, linked as a dynamic framework; app target setsOTHER_LDFLAGS = -ObjCSummary
After updating Firebase from 12.8.0 to 12.17.0, the app fails to link on the iOS 26 SDK.
Root cause: starting with 12.15.0, the prebuilt
GoogleAppMeasurement.xcframeworkbinary appears tohave been rebuilt with a newer toolchain (12.15.0 is the release that raised Firebase's required Swift tools
version to 6.1), and that build leaked auto-link directives for Apple private frameworks into the
shipped binary — most visibly
-framework UIUtilities. These are frameworks the compiler referencesinternally but that third-party products are not permitted to link.
On the iOS 26 SDK, the only
UIUtilitiesis Apple's private, client-restricted framework at:Third parties are not allowed to link it, so the linker cannot satisfy the auto-link. GoogleAppMeasurement
then fails to link, which surfaces as undefined symbols for every symbol it defines
(
_APMAnalyticsConfiguration, etc.). The accompanyingSwiftUICore"not an allowed client" error is thesame class of leaked private-framework reference failing through a second path.
Errors observed
The
SwiftUICoreerror is the same underlying problem (an Apple private, client-restricted SubFrameworkbeing linked directly) surfacing through a second path.
Evidence — the auto-link is in the shipped binary
The referenced symbol is present in the binary (
nm -gU ... | grep APMAnalyticsConfigurationshows itdefined), confirming this is a link failure, not a genuinely missing symbol.
How this was tested (per Firebase version)
firebase-ios-sdkversion inPackage.swift.UIUtilities/_APMAnalyticsConfigurationlink errors appear.Build-free alternative used to confirm each version quickly — inspect the resolved binary directly:
Version bisection (SPM)
The Interactive Media Ads SDK (
swift-package-manager-google-interactive-media-ads-ios) was tested as avariable and ruled out — it makes no difference to the outcome.
Regression introduced in 12.15.0 — the same release that raised Firebase's required Swift tools version
to 6.1. This strongly suggests the
GoogleAppMeasurementbinary was rebuilt with a newer toolchain, andthat build leaked the private-framework auto-link directives (
UIUtilities, and the relatedSwiftUICorereference) into the shipped binary. In other words, this is a binary-packaging regression from a
toolchain change, not a change in the SDK's declared dependencies. (For reference, the transitive
google-ads-on-device-conversion-ios-sdkalso moves from 3.2.0 at 12.8.0 to 3.6.1 at 12.17.0 across thisrange, though the offending auto-link lives in the
GoogleAppMeasurementbinary itself.)Expected behaviour
The prebuilt
GoogleAppMeasurementbinary should not carry auto-link directives for Apple privateframeworks (
UIUtilities,SwiftUICore, …). These should be stripped from the shipped binary so the SDKlinks cleanly, as it did in 12.14.0 and earlier.
Workaround
Pin
firebase-ios-sdkto 12.14.0 or earlier — the highest version that builds cleanly on the iOS 26 SDK.Reproducing the issue
No response
Firebase SDK Version
12.15.0
Xcode Version
26.6
Installation Method
Swift Package Manager
Firebase Product(s)
Analytics
Targeted Platforms
iOS
Package.resolved from SPM
Expand
Package.resolvedsnippet{ "originHash" : "82559ae995bc785814cabdbd2eff358a0cca93c1aad69dc3fabf54038862c193", "pins" : [ { "identity" : "abseil-cpp-binary", "kind" : "remoteSourceControl", "location" : "https://github.com/google/abseil-cpp-binary.git", "state" : { "revision" : "bbe8b69694d7873315fd3a4ad41efe043e1c07c5", "version" : "1.2024072200.0" } }, { "identity" : "app-check", "kind" : "remoteSourceControl", "location" : "https://github.com/google/app-check.git", "state" : { "revision" : "3e33dd27dd4c69bd81c7c81fe61d8ccf58846902", "version" : "11.3.1" } }, { "identity" : "appsflyerframework-static", "kind" : "remoteSourceControl", "location" : "https://github.com/AppsFlyerSDK/AppsFlyerFramework-Static.git", "state" : { "revision" : "80b7f4fcfafe6268ffd62c04076b510cb5bd0958", "version" : "6.17.9" } }, { "identity" : "blaze-specs-ios", "kind" : "remoteSourceControl", "location" : "https://github.com/WSCSports/blaze-specs-ios", "state" : { "revision" : "fecfcc475ab48570b4046618f61a69b282bc1adc", "version" : "1.15.1" } }, { "identity" : "brightcove-player-sdk-ios", "kind" : "remoteSourceControl", "location" : "https://github.com/brightcove/brightcove-player-sdk-ios.git", "state" : { "revision" : "5a20bd8f8ab934dbf7b3c4c8e0a28539c2da432d", "version" : "7.2.3" } }, { "identity" : "camera-kit-ios-sdk", "kind" : "remoteSourceControl", "location" : "https://github.com/Snapchat/camera-kit-ios-sdk.git", "state" : { "revision" : "6dbbc4fa7e9f357aece1e67b6107fae2f43ffd88", "version" : "1.46.0" } }, { "identity" : "dd-sdk-ios", "kind" : "remoteSourceControl", "location" : "https://github.com/Datadog/dd-sdk-ios.git", "state" : { "revision" : "2dc56bbb219c06102f74ab71d11e66069ba80e5d", "version" : "3.8.3" } }, { "identity" : "events-sdk-swift", "kind" : "remoteSourceControl", "location" : "https://github.com/ht-sdks/events-sdk-swift.git", "state" : { "revision" : "de1a5e345f09c978f3e010a33f4c11687b536573", "version" : "0.1.1" } }, { "identity" : "exponea-ios-sdk", "kind" : "remoteSourceControl", "location" : "https://github.com/exponea/exponea-ios-sdk.git", "state" : { "revision" : "135ddac6cc80169a0cc9cdb32a061ca11320e6b8", "version" : "3.11.0" } }, { "identity" : "firebase-ios-sdk", "kind" : "remoteSourceControl", "location" : "https://github.com/firebase/firebase-ios-sdk.git", "state" : { "revision" : "42e81d245e30e49ea6a5830cf2842d44a1591270", "version" : "12.15.0" } }, { "identity" : "google-ads-on-device-conversion-ios-sdk", "kind" : "remoteSourceControl", "location" : "https://github.com/googleads/google-ads-on-device-conversion-ios-sdk", "state" : { "revision" : "dc39082d8881109d35b94b1c122164c0e8d08a55", "version" : "3.6.1" } }, { "identity" : "googleappmeasurement", "kind" : "remoteSourceControl", "location" : "https://github.com/google/GoogleAppMeasurement.git", "state" : { "revision" : "144855f40d8668927f256a3045f7fdc4c3f4338b", "version" : "12.15.0" } }, { "identity" : "googledatatransport", "kind" : "remoteSourceControl", "location" : "https://github.com/google/GoogleDataTransport.git", "state" : { "revision" : "ba3358d3c3dbae8ef230b58a46b97ad65e84e974", "version" : "10.1.1" } }, { "identity" : "googleutilities", "kind" : "remoteSourceControl", "location" : "https://github.com/google/GoogleUtilities.git", "state" : { "revision" : "9f183ae842be978784f2963a343682e0c46d8fb3", "version" : "8.1.2" } }, { "identity" : "grpc-binary", "kind" : "remoteSourceControl", "location" : "https://github.com/google/grpc-binary.git", "state" : { "revision" : "75b31c842f664a0f46a2e590a570e370249fd8f6", "version" : "1.69.1" } }, { "identity" : "gtm-session-fetcher", "kind" : "remoteSourceControl", "location" : "https://github.com/google/gtm-session-fetcher.git", "state" : { "revision" : "724a52eea6329b7e12d3ad8300d76ca9f3895fcc", "version" : "5.3.1" } }, { "identity" : "interop-ios-for-google-sdks", "kind" : "remoteSourceControl", "location" : "https://github.com/google/interop-ios-for-google-sdks.git", "state" : { "revision" : "040d087ac2267d2ddd4cca36c757d1c6a05fdbfe", "version" : "101.0.0" } }, { "identity" : "kingfisher", "kind" : "remoteSourceControl", "location" : "https://github.com/onevcat/Kingfisher.git", "state" : { "revision" : "ac632bd26a1c00f139ff62fd01806f21cf67325e", "version" : "8.10.0" } }, { "identity" : "kscrash", "kind" : "remoteSourceControl", "location" : "https://github.com/kstenerud/KSCrash.git", "state" : { "revision" : "95a8895d75f3c22aa9ad9f2a15d2fbd97b0a55e2", "version" : "2.5.1" } }, { "identity" : "leveldb", "kind" : "remoteSourceControl", "location" : "https://github.com/firebase/leveldb.git", "state" : { "revision" : "a0bc79961d7be727d258d33d5a6b2f1023270ba1", "version" : "1.22.5" } }, { "identity" : "microsoft-authentication-library-for-objc", "kind" : "remoteSourceControl", "location" : "https://github.com/AzureAD/microsoft-authentication-library-for-objc.git", "state" : { "revision" : "231af305ec9c4634f32af0d43a3765b5b00e261d", "version" : "2.6.0" } }, { "identity" : "nanopb", "kind" : "remoteSourceControl", "location" : "https://github.com/firebase/nanopb.git", "state" : { "revision" : "3851d94a41890dea16dc3db34caf60e585cb4163", "version" : "2.30910.1" } }, { "identity" : "opentelemetry-swift-core", "kind" : "remoteSourceControl", "location" : "https://github.com/open-telemetry/opentelemetry-swift-core", "state" : { "revision" : "240c8d5e36c3c7b774ed961325369f0b1f2c965f", "version" : "2.3.0" } }, { "identity" : "otpublishersheadlesssdk", "kind" : "remoteSourceControl", "location" : "https://github.com/Zentrust/OTPublishersHeadlessSDK.git", "state" : { "revision" : "b7420965cb5aaea9a475874cf19a425b16b64290", "version" : "202510.1.0" } }, { "identity" : "promises", "kind" : "remoteSourceControl", "location" : "https://github.com/google/promises.git", "state" : { "revision" : "f4a19a3c313dc2616c70bb49d29a799fb16be837", "version" : "2.4.1" } }, { "identity" : "snap-kit-spm", "kind" : "remoteSourceControl", "location" : "https://github.com/Snapchat/snap-kit-spm", "state" : { "revision" : "b4593a1ec3813af844806fef319ef68888611fba", "version" : "2.6.0" } }, { "identity" : "sovran-swift", "kind" : "remoteSourceControl", "location" : "https://github.com/segmentio/Sovran-Swift.git", "state" : { "revision" : "24867f3e4ac62027db9827112135e6531b6f4051", "version" : "1.1.2" } }, { "identity" : "swift-atomics", "kind" : "remoteSourceControl", "location" : "https://github.com/apple/swift-atomics.git", "state" : { "revision" : "0442cb5a3f98ab802acb777929fdb446bda11a34", "version" : "1.3.1" } }, { "identity" : "swift-package-manager-google-interactive-media-ads-ios", "kind" : "remoteSourceControl", "location" : "https://github.com/googleads/swift-package-manager-google-interactive-media-ads-ios.git", "state" : { "revision" : "871bc80349774ba228c41096129995d1e9848b04", "version" : "3.28.10" } }, { "identity" : "swift-package-manager-google-mobile-ads", "kind" : "remoteSourceControl", "location" : "https://github.com/googleads/swift-package-manager-google-mobile-ads.git", "state" : { "revision" : "1239c23464503053c17d37ee5daa70de3455e9c8", "version" : "12.14.0" } }, { "identity" : "swift-package-manager-google-user-messaging-platform", "kind" : "remoteSourceControl", "location" : "https://github.com/googleads/swift-package-manager-google-user-messaging-platform.git", "state" : { "revision" : "13b248eaa73b7826f0efb1bcf455e251d65ecb1b", "version" : "3.1.0" } }, { "identity" : "swiftsoup", "kind" : "remoteSourceControl", "location" : "https://github.com/scinfu/SwiftSoup.git", "state" : { "revision" : "8d6ad267714cac3ae747cefdd21f7a6665006e1f", "version" : "2.13.7" } } ], "version" : 3 }