Skip to content

Crashlytics reports silently destroyed at batch time when two copies of GoogleDataTransport are loaded (SPM + CocoaPods) — nil archive decode → delete, no log, no metric, no retry #16517

Description

@johnsondigitalsystems

Description

Crashlytics reports — non-fatals AND fatal crashes — are silently destroyed on-device at GoogleDataTransport's batching step when two copies of GoogleDataTransport are loaded in one process: Firebase resolved via Swift Package Manager (statically linked into the app executable) alongside the CocoaPods dynamic GoogleDataTransport.framework that ML Kit requires. The full dependency chain and on-device evidence are in "Reproducing the issue" below.

Expected: a recorded non-fatal or crash report uploads on the next launch — or, at minimum, any drop is logged and counted somewhere.

Actually: the report is recorded and packaged correctly, persisted to GDT's on-disk queue, and then deleted by -[GDTCORFlatFileStorage batchWithEventSelector:…] when GDTCORDecodeArchiveAtPath returns nil re-reading the freshly-written event archive (~line 212) — with no log above debug level (compiled out in release), no droppedEventCounterByLogSource entry, and no retry. Because FIRCLSReportUploader deletes the Crashlytics-side package as soon as the event is persisted to GDT's local storage ("the report is deleted once it is written to GDT"), the report then exists nowhere. Result: 0% Crashlytics delivery for three weeks of real field usage while every Crashlytics-visible surface (report queues, sdk.log, crash-free metrics fed by Sessions) looked completely healthy.

Confirmed cause and fix: removing the duplicate copy (returning Firebase to CocoaPods so one dependency manager owns the shared Google graph) restored delivery immediately — the identical trigger flow completes its batch cycle, and both a non-fatal and a fatal crash reached the console the same day.

Requests: (1) in batchWithEventSelector, distinguish a failed read from corrupt data — do not delete an event unrecoverably on the first nil decode; (2) record a drop metric on this path; (3) log the deletion above debug level; (4) detect-and-warn (or document) the duplicate-GDT state — with FlutterFire on SPM and ML Kit CocoaPods-only, this configuration arises silently for any Flutter app using both, and it zeroes Crashlytics delivery.

Reproducing the issue

Setup (common in Flutter): FlutterFire resolved via Swift Package Manager (static) while google_mlkit_* pods pull GoogleDataTransport as a CocoaPods dynamic framework (MLKitCommon → GoogleDataTransport ~> 10.0 under use_frameworks!). The objc runtime warns at launch that every GDT class "is implemented in both" images ("may cause spurious casting failures").

Observed, 6-of-6 controlled trials on device (non-fatals via Crashlytics.record(exceptionModel:), plus a fatal SIGTRAP): the report is recorded correctly, packaged on next launch, persisted to GDT storage (gdt_event_data/1002 mtime moves, batch-ID counter increments), then deleted with NO batch directory ever created and NO droppedEventCounterByLogSource entry — the unique signature of GDTCORFlatFileStorage.m batchWithEventSelector's delete-on-nil-decode (~line 212). Because FIRCLSReportUploader deletes the Crashlytics-side package as soon as the event is persisted locally ("the report is deleted once it is written to GDT"), the report then exists nowhere. Meanwhile FLL (Sessions, target 1001) events upload fine from the same process. The same archive format round-trips flawlessly in a single-copy offline harness compiled from the same GDT sources — consistent with NSKeyedUnarchiver secure-coding class-identity validation failing across the two loaded copies rather than any actual corruption.

Server-side corroboration: the affected build numbers never appear in the Firebase console's Versions filter at all — zero reports from ANY build produced in the three weeks after the app moved Firebase to SPM (while ML Kit remained on CocoaPods), across real field usage. Crash-free-users metrics (computed from Sessions data) updated normally from the same devices throughout.

Confirmed fix, same day: removing the duplicate (returning Firebase to CocoaPods so one dependency manager owns the shared Google graph) restored delivery immediately — the identical trigger flow's batch cycle completes and both a non-fatal and a fatal reached the console.

Requests: (1) in batchWithEventSelector, distinguish a nil decode from a failed read — do not delete unrecoverably on the first failure; (2) record a drop metric for this path; (3) log above debug level; (4) detect-and-warn (or document) the duplicate-GDT state — with FlutterFire on SPM and ML Kit pods-only this configuration arises silently for any Flutter app using both, and it zeroes Crashlytics delivery while every Crashlytics-side surface looks healthy.

Firebase SDK Version

12.16.0/12.17.0

Xcode Version

26.6 (17F113)

Installation Method

CocoaPods

Firebase Product(s)

Crashlytics

Targeted Platforms

iOS

Relevant Log Output

Real device console output, app process at launch (iPhone 17 Pro Max, iOS 26.6; the same process destroyed a freshly-recorded report ~300 ms after these lines). No PII present; container UUIDs shortened to <APP>:

objc[2723]: Class GTMSessionUploadFetcher is implemented in both <APP>/Frameworks/GTMSessionFetcher.framework/GTMSessionFetcher (0x109bc7f60) and <APP>/LoadOut (0x10717f150). This may cause spurious casting failures and mysterious crashes. One of the duplicates must be removed or renamed. objc[2723]: Class GDTCCTUploadOperation is implemented in both <APP>/Frameworks/GoogleDataTransport.framework/GoogleDataTransport (0x109c27bf0) and <APP>/LoadOut (0x107180d70). This may cause spurious casting failures and mysterious crashes. One of the duplicates must be removed or renamed. objc[2723]: Class GDTCCTUploader is implemented in both <APP>/Frameworks/GoogleDataTransport.framework/GoogleDataTransport (0x109c27ba0) and <APP>/LoadOut (0x107180dc0). This may cause spurious casting failures and mysterious crashes. One of the duplicates must be removed or renamed. objc[2723]: Class GDTCOREvent is implemented in both <APP>/Frameworks/GoogleDataTransport.framework/GoogleDataTransport (0x109c27d80) and <APP>/LoadOut (0x107180f00). This may cause spurious casting failures and mysterious crashes. One of the duplicates must be removed or renamed. objc[2723]: Class GDTCORFlatFileStorage is implemented in both <APP>/Frameworks/GoogleDataTransport.framework/GoogleDataTransport (0x109c27dd0) and <APP>/LoadOut (0x107180f50). This may cause spurious casting failures and mysterious crashes. One of the duplicates must be removed or renamed. objc[2723]: Class GDTCORUploadCoordinator is implemented in both <APP>/Frameworks/GoogleDataTransport.framework/GoogleDataTransport (0x109c28280) and <APP>/LoadOut (0x107181400). This may cause spurious casting failures and mysterious crashes. One of the duplicates must be removed or renamed. (… ~18 more GDTCOR*/GDTCCT* classes duplicated identically between the two images …) 2026-08-14 17:49:02.354 LoadOut[2723:1602720] [Firebase/Crashlytics] Version 12.17.0

Note for the form's -FIRDebugEnabled hint: runs WERE repeated with -FIRDebugEnabled; no additional Firebase output appears around the deletion because the only trace of the delete-on-nil-decode path is GDTCORLogDebug, which is compiled out in release builds — that silence is request (3) of the issue.

If using Swift Package Manager, the project's Package.resolved

{
"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" : "appauth-ios",
"kind" : "remoteSourceControl",
"location" : "https://github.com/openid/AppAuth-iOS.git",
"state" : {
"revision" : "a7caeda164dc5108bf4649472b28a5af65dc6f33",
"version" : "2.1.0"
}
},
{
"identity" : "connectiq-companion-app-sdk-ios",
"kind" : "remoteSourceControl",
"location" : "https://github.com/garmin/connectiq-companion-app-sdk-ios",
"state" : {
"revision" : "f0d29ff691d700a132d86205ed9bb091e336c2f7",
"version" : "1.8.0"
}
},
{
"identity" : "dkcamera",
"kind" : "remoteSourceControl",
"location" : "https://github.com/zhangao0086/DKCamera",
"state" : {
"branch" : "master",
"revision" : "5c691d11014b910aff69f960475d70e65d9dcc96"
}
},
{
"identity" : "dkimagepickercontroller",
"kind" : "remoteSourceControl",
"location" : "https://github.com/zhangao0086/DKImagePickerController",
"state" : {
"branch" : "4.3.9",
"revision" : "0bdfeacefa308545adde07bef86e349186335915"
}
},
{
"identity" : "dkphotogallery",
"kind" : "remoteSourceControl",
"location" : "https://github.com/zhangao0086/DKPhotoGallery",
"state" : {
"branch" : "master",
"revision" : "311c1bc7a94f1538f82773a79c84374b12a2ef3d"
}
},
{
"identity" : "firebase-ios-sdk",
"kind" : "remoteSourceControl",
"location" : "https://github.com/firebase/firebase-ios-sdk",
"state" : {
"revision" : "33a468adfdb75b53f05a37e7c886ca7c962b5c17",
"version" : "12.17.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" : "fceaffa07d22dcd5624d3639fd970351a4a5ad8c",
"version" : "12.17.0"
}
},
{
"identity" : "googledatatransport",
"kind" : "remoteSourceControl",
"location" : "https://github.com/google/GoogleDataTransport.git",
"state" : {
"revision" : "ba3358d3c3dbae8ef230b58a46b97ad65e84e974",
"version" : "10.1.1"
}
},
{
"identity" : "googlesignin-ios",
"kind" : "remoteSourceControl",
"location" : "https://github.com/google/GoogleSignIn-iOS.git",
"state" : {
"revision" : "08d8dcecafb575f98879ffdbb8302c1b9ad65d19",
"version" : "9.2.0"
}
},
{
"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" : "a2ab612cb980066ee56d90d60d8462992c07f24b",
"version" : "3.5.0"
}
},
{
"identity" : "gtmappauth",
"kind" : "remoteSourceControl",
"location" : "https://github.com/google/GTMAppAuth.git",
"state" : {
"revision" : "56e0ccf09a6dd29dc7e68bdf729598240ca8aa16",
"version" : "5.0.0"
}
},
{
"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" : "leveldb",
"kind" : "remoteSourceControl",
"location" : "https://github.com/firebase/leveldb.git",
"state" : {
"revision" : "a0bc79961d7be727d258d33d5a6b2f1023270ba1",
"version" : "1.22.5"
}
},
{
"identity" : "nanopb",
"kind" : "remoteSourceControl",
"location" : "https://github.com/firebase/nanopb.git",
"state" : {
"revision" : "3851d94a41890dea16dc3db34caf60e585cb4163",
"version" : "2.30910.1"
}
},
{
"identity" : "promises",
"kind" : "remoteSourceControl",
"location" : "https://github.com/google/promises.git",
"state" : {
"revision" : "f4a19a3c313dc2616c70bb49d29a799fb16be837",
"version" : "2.4.1"
}
},
{
"identity" : "purchases-hybrid-common",
"kind" : "remoteSourceControl",
"location" : "https://github.com/RevenueCat/purchases-hybrid-common.git",
"state" : {
"revision" : "aa2bfca14cb6e393a9b2a813a4eed770544b2193",
"version" : "17.55.1"
}
},
{
"identity" : "purchases-ios-spm",
"kind" : "remoteSourceControl",
"location" : "https://github.com/RevenueCat/purchases-ios-spm",
"state" : {
"revision" : "66f81c19e29170cecc1f155c62cd586cf53b8400",
"version" : "5.67.1"
}
},
{
"identity" : "sdwebimage",
"kind" : "remoteSourceControl",
"location" : "https://github.com/SDWebImage/SDWebImage",
"state" : {
"revision" : "2de3a496eaf6df9a1312862adcfd54acd73c39c0",
"version" : "5.21.7"
}
},
{
"identity" : "swiftygif",
"kind" : "remoteSourceControl",
"location" : "https://github.com/kirualex/SwiftyGif.git",
"state" : {
"revision" : "4430cbc148baa3907651d40562d96325426f409a",
"version" : "5.4.5"
}
},
{
"identity" : "tocropviewcontroller",
"kind" : "remoteSourceControl",
"location" : "https://github.com/TimOliver/TOCropViewController",
"state" : {
"revision" : "d4a6d8100f4b886fdbc8ae399bf144ff3e9afb7e",
"version" : "2.8.0"
}
},
{
"identity" : "viewinspector",
"kind" : "remoteSourceControl",
"location" : "https://github.com/nalexn/ViewInspector",
"state" : {
"revision" : "e9a06346499a3a889165647e3f23f8a7b2609a1c",
"version" : "0.10.3"
}
}
],
"version" : 2
}

If using CocoaPods, the project's Podfile.lock

PODS:

  • Flutter (1.0.0)
  • flutter_secure_storage (6.0.0):
    • Flutter
  • flutter_tts (0.0.1):
    • Flutter
  • google_mlkit_commons (0.11.1):
    • Flutter
    • MLKitVision (~> 10.0.0)
  • google_mlkit_pose_detection (0.14.1):
    • Flutter
    • google_mlkit_commons
    • GoogleMLKit/PoseDetection (~> 9.0.0)
    • GoogleMLKit/PoseDetectionAccurate (~> 9.0.0)
  • google_mlkit_text_recognition (0.15.1):
    • Flutter
    • google_mlkit_commons
    • GoogleMLKit/TextRecognition (~> 9.0.0)
  • GoogleDataTransport (10.1.0):
    • nanopb (~> 3.30910.0)
    • PromisesObjC (~> 2.4)
  • GoogleMLKit/MLKitCore (9.0.0):
    • MLKitCommon (~> 14.0.0)
  • GoogleMLKit/PoseDetection (9.0.0):
    • GoogleMLKit/MLKitCore
    • MLKitPoseDetection (~> 1.0.0-beta16)
  • GoogleMLKit/PoseDetectionAccurate (9.0.0):
    • GoogleMLKit/MLKitCore
    • MLKitPoseDetectionAccurate (~> 1.0.0-beta16)
  • GoogleMLKit/TextRecognition (9.0.0):
    • GoogleMLKit/MLKitCore
    • MLKitTextRecognition (~> 7.0.0)
  • GoogleToolboxForMac/Defines (4.2.1)
  • GoogleToolboxForMac/Logger (4.2.1):
    • GoogleToolboxForMac/Defines (= 4.2.1)
  • "GoogleToolboxForMac/NSData+zlib (4.2.1)":
    • GoogleToolboxForMac/Defines (= 4.2.1)
  • GoogleUtilities/Environment (8.1.0):
    • GoogleUtilities/Privacy
  • GoogleUtilities/Logger (8.1.0):
    • GoogleUtilities/Environment
    • GoogleUtilities/Privacy
  • GoogleUtilities/Privacy (8.1.0)
  • GoogleUtilities/UserDefaults (8.1.0):
    • GoogleUtilities/Logger
    • GoogleUtilities/Privacy
  • GTMSessionFetcher/Core (3.5.0)
  • icloud_storage (0.0.1):
    • Flutter
  • MLImage (1.0.0-beta8)
  • MLKitCommon (14.0.0):
    • GoogleDataTransport (~> 10.0)
    • GoogleToolboxForMac/Logger (< 5.0, >= 4.2.1)
    • "GoogleToolboxForMac/NSData+zlib (< 5.0, >= 4.2.1)"
    • GoogleUtilities/Logger (~> 8.0)
    • GoogleUtilities/UserDefaults (~> 8.0)
    • GTMSessionFetcher/Core (< 4.0, >= 3.3.2)
  • MLKitPoseDetection (1.0.0-beta16):
    • MLKitCommon (~> 14.0)
    • MLKitPoseDetectionCommon (= 1.0.0-beta16)
    • MLKitXenoCommon (= 1.0.0-beta16)
  • MLKitPoseDetectionAccurate (1.0.0-beta16):
    • MLKitCommon (~> 14.0)
    • MLKitPoseDetectionCommon (= 1.0.0-beta16)
    • MLKitXenoCommon (= 1.0.0-beta16)
  • MLKitPoseDetectionCommon (1.0.0-beta16):
    • MLKitCommon (~> 14.0)
    • MLKitXenoCommon (= 1.0.0-beta16)
  • MLKitTextRecognition (7.0.0):
    • MLKitCommon (~> 14.0)
    • MLKitTextRecognitionCommon (= 6.0.0)
    • MLKitVision (~> 10.0)
  • MLKitTextRecognitionCommon (6.0.0):
    • MLKitCommon (~> 14.0)
    • MLKitVision (~> 10.0)
  • MLKitVision (10.0.0):
    • GoogleToolboxForMac/Logger (< 5.0, >= 4.2.1)
    • "GoogleToolboxForMac/NSData+zlib (< 5.0, >= 4.2.1)"
    • GTMSessionFetcher/Core (< 4.0, >= 3.3.2)
    • MLImage (= 1.0.0-beta8)
    • MLKitCommon (~> 14.0)
  • MLKitXenoCommon (1.0.0-beta16):
    • MLKitCommon (~> 14.0)
    • MLKitVision (~> 10.0)
  • nanopb (3.30910.0):
    • nanopb/decode (= 3.30910.0)
    • nanopb/encode (= 3.30910.0)
  • nanopb/decode (3.30910.0)
  • nanopb/encode (3.30910.0)
  • permission_handler_apple (9.3.0):
    • Flutter
  • printing (1.0.0):
    • Flutter
  • PromisesObjC (2.4.1)
  • share_handler_ios (0.0.14):
    • Flutter
    • share_handler_ios/share_handler_ios_models (= 0.0.14)
    • share_handler_ios_models
  • share_handler_ios/share_handler_ios_models (0.0.14):
    • Flutter
    • share_handler_ios_models
  • share_handler_ios_models (0.0.9)
  • TensorFlowLiteC (2.12.0):
    • TensorFlowLiteC/Core (= 2.12.0)
  • TensorFlowLiteC/Core (2.12.0)
  • TensorFlowLiteC/CoreML (2.12.0):
    • TensorFlowLiteC/Core
  • TensorFlowLiteC/Metal (2.12.0):
    • TensorFlowLiteC/Core
  • TensorFlowLiteSwift (2.12.0):
    • TensorFlowLiteSwift/Core (= 2.12.0)
  • TensorFlowLiteSwift/Core (2.12.0):
    • TensorFlowLiteC (= 2.12.0)
  • TensorFlowLiteSwift/CoreML (2.12.0):
    • TensorFlowLiteC/CoreML (= 2.12.0)
    • TensorFlowLiteSwift/Core (= 2.12.0)
  • TensorFlowLiteSwift/Metal (2.12.0):
    • TensorFlowLiteC/Metal (= 2.12.0)
    • TensorFlowLiteSwift/Core (= 2.12.0)
  • tflite_flutter (0.0.1):
    • Flutter
    • TensorFlowLiteSwift (= 2.12.0)
    • TensorFlowLiteSwift/CoreML (= 2.12.0)
    • TensorFlowLiteSwift/Metal (= 2.12.0)

DEPENDENCIES:

  • Flutter (from Flutter)
  • flutter_secure_storage (from .symlinks/plugins/flutter_secure_storage/ios)
  • flutter_tts (from .symlinks/plugins/flutter_tts/ios)
  • google_mlkit_commons (from .symlinks/plugins/google_mlkit_commons/ios)
  • google_mlkit_pose_detection (from .symlinks/plugins/google_mlkit_pose_detection/ios)
  • google_mlkit_text_recognition (from .symlinks/plugins/google_mlkit_text_recognition/ios)
  • icloud_storage (from .symlinks/plugins/icloud_storage/ios)
  • permission_handler_apple (from .symlinks/plugins/permission_handler_apple/ios)
  • printing (from .symlinks/plugins/printing/ios)
  • share_handler_ios (from .symlinks/plugins/share_handler_ios/ios)
  • share_handler_ios_models (from .symlinks/plugins/share_handler_ios/ios/Models)
  • tflite_flutter (from .symlinks/plugins/tflite_flutter/ios)

SPEC REPOS:
trunk:
- GoogleDataTransport
- GoogleMLKit
- GoogleToolboxForMac
- GoogleUtilities
- GTMSessionFetcher
- MLImage
- MLKitCommon
- MLKitPoseDetection
- MLKitPoseDetectionAccurate
- MLKitPoseDetectionCommon
- MLKitTextRecognition
- MLKitTextRecognitionCommon
- MLKitVision
- MLKitXenoCommon
- nanopb
- PromisesObjC
- TensorFlowLiteC
- TensorFlowLiteSwift

EXTERNAL SOURCES:
Flutter:
:path: Flutter
flutter_secure_storage:
:path: ".symlinks/plugins/flutter_secure_storage/ios"
flutter_tts:
:path: ".symlinks/plugins/flutter_tts/ios"
google_mlkit_commons:
:path: ".symlinks/plugins/google_mlkit_commons/ios"
google_mlkit_pose_detection:
:path: ".symlinks/plugins/google_mlkit_pose_detection/ios"
google_mlkit_text_recognition:
:path: ".symlinks/plugins/google_mlkit_text_recognition/ios"
icloud_storage:
:path: ".symlinks/plugins/icloud_storage/ios"
permission_handler_apple:
:path: ".symlinks/plugins/permission_handler_apple/ios"
printing:
:path: ".symlinks/plugins/printing/ios"
share_handler_ios:
:path: ".symlinks/plugins/share_handler_ios/ios"
share_handler_ios_models:
:path: ".symlinks/plugins/share_handler_ios/ios/Models"
tflite_flutter:
:path: ".symlinks/plugins/tflite_flutter/ios"

SPEC CHECKSUMS:
Flutter: cabc95a1d2626b1b06e7179b784ebcf0c0cde467
flutter_secure_storage: d33dac7ae2ea08509be337e775f6b59f1ff45f12
flutter_tts: 91ad1884033cd95ef6e9338754adad54f01f090f
google_mlkit_commons: 1e6ef6605d7281f35baf2b355e6049b9984fd624
google_mlkit_pose_detection: 765dbe5fc48366b3472379f64d891652ed606835
google_mlkit_text_recognition: 309a3a493765ea17c7368cadb4a710391e73902c
GoogleDataTransport: aae35b7ea0c09004c3797d53c8c41f66f219d6a7
GoogleMLKit: b1eee21a41c57704fe72483b15c85cb2c0cd7444
GoogleToolboxForMac: d1a2cbf009c453f4d6ded37c105e2f67a32206d8
GoogleUtilities: 00c88b9a86066ef77f0da2fab05f65d7768ed8e1
GTMSessionFetcher: 5aea5ba6bd522a239e236100971f10cb71b96ab6
icloud_storage: d9ac7a33ced81df08ba7ea1bf3099cc0ee58f60a
MLImage: 0de5c6c2bf9e93b80ef752e2797f0836f03b58c0
MLKitCommon: 47d47b50a031d00db62f1b0efe5a1d8b09a3b2e6
MLKitPoseDetection: 037fc62d6ccdd5a63253d1f40f90a8120b0d9c61
MLKitPoseDetectionAccurate: 4b25c5447244db7e1d97963c4d6e4ebe612c2d88
MLKitPoseDetectionCommon: 4709eb53b8638f5bf87c1a0255ad8aa4db9ad460
MLKitTextRecognition: c0ad24510481dfc8893ad15dfcb8a5f05ed9e826
MLKitTextRecognitionCommon: 234ceb1cfdfb5fceb4fd664943046609a2961cc2
MLKitVision: 39a5a812db83c4a0794445088e567f3631c11961
MLKitXenoCommon: 1a4268c1222a6043047af5bb9435028206c63287
nanopb: fad817b59e0457d11a5dfbde799381cd727c1275
permission_handler_apple: 9878588469a2b0d0fc1e048d9f43605f92e6cec2
printing: 233e1b73bd1f4a05615548e9b5a324c98588640b
PromisesObjC: 752c3227f599e3467650e47ea36f433eeb10c273
share_handler_ios: 6dd3a4ac5ca0d955274aec712ba0ecdcaf583e7c
share_handler_ios_models: fc638c9b4330dc7f082586c92aee9dfa0b87b871
TensorFlowLiteC: 20785a69299185a379ba9852b6625f00afd7984a
TensorFlowLiteSwift: 3a4928286e9e35bdd3e17970f48e53c80d25e793
tflite_flutter: 9433d086a3060431bbc9f3c7c20d017db0e72d08

PODFILE CHECKSUM: ee7d08c8ab18c7230c7409a3909cbb2dbc1b1bc4

COCOAPODS: 1.17.0

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions