customerio / customerio-flutter

Flutter plugin for Customer.io
https://www.customer.io/docs/sdk/flutter/getting-started/
MIT License
12 stars 10 forks source link

Notification not have payload in iOS #110

Closed Aadesh1803 closed 7 months ago

Aadesh1803 commented 7 months ago

Notification Payload Issue on iOS

Hello Good Morning!

Our app successfully displays push notifications on iOS devices. However, when a user taps the notification, the additional information (also known as payload data) that was sent with the notification is not accessible within the app. This potentially means that users may not receive the intended functionality or experience upon tapping the notification.

Problem

iOS device notifications appear but the notification payload is not received when a tap appears on the notification.

Issue Details

We use Firebase Messaging onMessage and onMessageOpenedApp listener in a Flutter app. This listener does not receive the payload when notifications appear.

Notification Custom Payload for iOS

{
  "message": {
    "apns": {
      "payload": {
        "aps": {
          "mutable-content": 1,
          "alert": {
            "title": "All set!",
            "body": "Hey, notification with image"
          }
        },
        "data": {
          "body": "Hey, notification with image",
          "title": "All set!",
          "source": "customerIo",
          "image": "https://userimg-assets-eu.customeriomail.com/images/client-env-128592/1705568752688_1671537997234_Rola-avatar%20(1)_01HMDX3PH7KVWY8NDDW1G9EMTC.png"
        },
        "CIO": {
          "push": {
            "image": "https://userimg-assets-eu.customeriomail.com/images/client-env-128592/1705568752688_1671537997234_Rola-avatar%20(1)_01HMDX3PH7KVWY8NDDW1G9EMTC.png"
          }
        }
      },
      "headers": {
        "apns-priority": "10"
      }
    }
  }
}

AppDelegate.swift

import UIKit
import Flutter
import CioMessagingPushFCM
import CioTracking
import FirebaseMessaging
import FirebaseCore
import AppTrackingTransparency

@UIApplicationMain
@objc class AppDelegate: FlutterAppDelegate {

    override func application(
        _ application: UIApplication,
        didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
    ) -> Bool {
        GeneratedPluginRegistrant.register(with: self)

        if FirebaseApp.app() == nil {
            FirebaseApp.configure()
        }

        // Set FCM messaging delegate
        Messaging.messaging().delegate = self

        CustomerIO.initialize(siteId: "XXXXXXXXX", apiKey: "XXXXXXXXX", region: Region.US) { config in
            config.autoTrackDeviceAttributes = true
        }

        // Initialize Customer.io push features after you initialize the SDK:
        MessagingPushFCM.initialize(configOptions: { config in
            // Automatically register push device tokens to the Customer.io SDK
            config.autoFetchDeviceToken = true
            // When your app is in the foreground and a push is delivered, show the push
            config.showPushAppInForeground = true
        })

        return super.application(application, didFinishLaunchingWithOptions: launchOptions)
    }

    override func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
        Messaging.messaging().setAPNSToken(deviceToken, type: .unknown)
    }

}

extension AppDelegate: MessagingDelegate {
    func messaging(_ messaging: Messaging, didReceiveRegistrationToken fcmToken: String?) {
        // Send the FCM token to Customer.io
        MessagingPush.shared.messaging(messaging, didReceiveRegistrationToken: fcmToken)
    }
}

AppDelegate.swift

import UserNotifications
import CioMessagingPushFCM
import CioTracking

class NotificationService: UNNotificationServiceExtension {

  override func didReceive(_ request: UNNotificationRequest,
                          withContentHandler contentHandler:
                          @escaping (UNNotificationContent) -> Void) {
    // It's required that you initialize the Customer.io SDK in this file, even though you also did so in your app.
    CustomerIO.initialize(siteId: "XXXXXXXXX", apiKey: "XXXXXXXXX", region: .US) { config in
      // To confirm that `delivered` push metrics are tracked, set this to true.
      config.autoTrackPushEvents = true
    }

    MessagingPush.shared.didReceive(request, withContentHandler: contentHandler)
  }

  override func serviceExtensionTimeWillExpire() {
    MessagingPush.shared.serviceExtensionTimeWillExpire()
  }

}
Shahroz16 commented 7 months ago

Hey @Aadesh1803, thank you for reaching out and apologies that you have to face this issue.

Couple of things before we start troubleshooting, is there any specific reason you are utilizing FlutterFire I assume?

From the look of your payload, everything you are looking for can be done via just using CustomerIO rich push setup.

Secondly, can you share the podlock file so we can see what versions are you using.

Aadesh1803 commented 7 months ago

Hey, I have tried rich push with image. but it is not sending notifications when there is image in notification. actual problem is it is working fine in android and i can pass custom payload with notification with android. but when i am trying to send custom notification with image in IOS at that time i am not able to get custom payload in app. i am not able to get payload which i have set in custom payload. i am using firebasemessaging.onmessage firebasemessaging.getinitialmessage and firebasemessaging.onmessageopensapp funtionalitites to listen notification tap. when user tap notification i want to get payload in my app. but this behaviour only works when i send custom payload like this in ios

{ "message": { "data": { "body": "Hey, notification with image", "title": "All set!", "source": "customerIo", "image": " https://userimg-assets-eu.customeriomail.com/images/client-env-128592/1705568752688_1671537997234_Rola-avatar%20(1)_01HMDX3PH7KVWY8NDDW1G9EMTC.png " }, "notification": { "body": "Hey, notification with image", "title": "All set!", "image": " https://userimg-assets-eu.customeriomail.com/images/client-env-128592/1705568752688_1671537997234_Rola-avatar%20(1)_01HMDX3PH7KVWY8NDDW1G9EMTC.png " } } } When i send this custom payload to notification then i am able to get below data in my application, but it is not showing image in notification "data": { "body": "Hey, notification with image", "title": "All set!", "source": "customerIo", "image": " https://userimg-assets-eu.customeriomail.com/images/client-env-128592/1705568752688_1671537997234_Rola-avatar%20(1)_01HMDX3PH7KVWY8NDDW1G9EMTC.png " },

And when i am trying to send notification with below payload { "message": { "apns": { "payload": { "aps": { "mutable-content": 1, "alert": { "title": "All set!", "body": "Hey, notification with image" } }, "data": { "body": "Hey, notification with image", "title": "All set!", "source": "customerIo", "image": " https://userimg-assets-eu.customeriomail.com/images/client-env-128592/1705568752688_1671537997234_Rola-avatar%20(1)_01HMDX3PH7KVWY8NDDW1G9EMTC.png " }, "CIO": { "push": { "image": " https://userimg-assets-eu.customeriomail.com/images/client-env-128592/1705568752688_1671537997234_Rola-avatar%20(1)_01HMDX3PH7KVWY8NDDW1G9EMTC.png " } } }, "headers": { "apns-priority": "10" } } } }

Then it is not giving me any payload i9 want to get data "data": { "body": "Hey, notification with image", "title": "All set!", "source": "customerIo", "image": " https://userimg-assets-eu.customeriomail.com/images/client-env-128592/1705568752688_1671537997234_Rola-avatar%20(1)_01HMDX3PH7KVWY8NDDW1G9EMTC.png " }, in side my apk when user click on notificatin first payload is workinbg fine but not showing image in notification and second payload is sending image with notification but i am not able to get custom payload in my application.

I hope you understand whole content. and i am waiting for you reply with solution. issue is only with IOS.

Here is podlock file as you mentioned

On Mon, 26 Feb 2024 at 11:45, Shahroz Khan @.***> wrote:

Hey @Aadesh1803 https://github.com/Aadesh1803, thank you for reaching out and apologies that you have to face this issue.

Couple of things before we start troubleshooting, is there any specific reason you are utilizing FlutterFire I assume?

From the look of your payload, everything you are looking for can be done via just using CustomerIO rich push setup.

Secondly, can you share the podlock file so we can see what versions are you using.

— Reply to this email directly, view it on GitHub https://github.com/customerio/customerio-flutter/issues/110#issuecomment-1963391945, or unsubscribe https://github.com/notifications/unsubscribe-auth/A7KYYDXCZBRYUWJCVZY5BYTYVQR7LAVCNFSM6AAAAABDZSAJMCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNRTGM4TCOJUGU . You are receiving this because you were mentioned.Message ID: @.***>

Aadesh1803 commented 7 months ago

Any update on this?

On Mon, 26 Feb 2024 at 11:53, Aadesh Kaklotar @.***> wrote:

Hey, I have tried rich push with image. but it is not sending notifications when there is image in notification. actual problem is it is working fine in android and i can pass custom payload with notification with android. but when i am trying to send custom notification with image in IOS at that time i am not able to get custom payload in app. i am not able to get payload which i have set in custom payload. i am using firebasemessaging.onmessage firebasemessaging.getinitialmessage and firebasemessaging.onmessageopensapp funtionalitites to listen notification tap. when user tap notification i want to get payload in my app. but this behaviour only works when i send custom payload like this in ios

{ "message": { "data": { "body": "Hey, notification with image", "title": "All set!", "source": "customerIo", "image": " https://userimg-assets-eu.customeriomail.com/images/client-env-128592/1705568752688_1671537997234_Rola-avatar%20(1)_01HMDX3PH7KVWY8NDDW1G9EMTC.png " }, "notification": { "body": "Hey, notification with image", "title": "All set!", "image": " https://userimg-assets-eu.customeriomail.com/images/client-env-128592/1705568752688_1671537997234_Rola-avatar%20(1)_01HMDX3PH7KVWY8NDDW1G9EMTC.png " } } } When i send this custom payload to notification then i am able to get below data in my application, but it is not showing image in notification "data": { "body": "Hey, notification with image", "title": "All set!", "source": "customerIo", "image": " https://userimg-assets-eu.customeriomail.com/images/client-env-128592/1705568752688_1671537997234_Rola-avatar%20(1)_01HMDX3PH7KVWY8NDDW1G9EMTC.png " },

And when i am trying to send notification with below payload { "message": { "apns": { "payload": { "aps": { "mutable-content": 1, "alert": { "title": "All set!", "body": "Hey, notification with image" } }, "data": { "body": "Hey, notification with image", "title": "All set!", "source": "customerIo", "image": " https://userimg-assets-eu.customeriomail.com/images/client-env-128592/1705568752688_1671537997234_Rola-avatar%20(1)_01HMDX3PH7KVWY8NDDW1G9EMTC.png " }, "CIO": { "push": { "image": " https://userimg-assets-eu.customeriomail.com/images/client-env-128592/1705568752688_1671537997234_Rola-avatar%20(1)_01HMDX3PH7KVWY8NDDW1G9EMTC.png " } } }, "headers": { "apns-priority": "10" } } } }

Then it is not giving me any payload i9 want to get data "data": { "body": "Hey, notification with image", "title": "All set!", "source": "customerIo", "image": " https://userimg-assets-eu.customeriomail.com/images/client-env-128592/1705568752688_1671537997234_Rola-avatar%20(1)_01HMDX3PH7KVWY8NDDW1G9EMTC.png " }, in side my apk when user click on notificatin first payload is workinbg fine but not showing image in notification and second payload is sending image with notification but i am not able to get custom payload in my application.

I hope you understand whole content. and i am waiting for you reply with solution. issue is only with IOS.

Here is podlock file as you mentioned

On Mon, 26 Feb 2024 at 11:45, Shahroz Khan @.***> wrote:

Hey @Aadesh1803 https://github.com/Aadesh1803, thank you for reaching out and apologies that you have to face this issue.

Couple of things before we start troubleshooting, is there any specific reason you are utilizing FlutterFire I assume?

From the look of your payload, everything you are looking for can be done via just using CustomerIO rich push setup.

Secondly, can you share the podlock file so we can see what versions are you using.

— Reply to this email directly, view it on GitHub https://github.com/customerio/customerio-flutter/issues/110#issuecomment-1963391945, or unsubscribe https://github.com/notifications/unsubscribe-auth/A7KYYDXCZBRYUWJCVZY5BYTYVQR7LAVCNFSM6AAAAABDZSAJMCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNRTGM4TCOJUGU . You are receiving this because you were mentioned.Message ID: @.***>

Shahroz16 commented 7 months ago

@Aadesh1803 podfile.lock is not attached. Secondly, the rich push should work without using firebasemessaging.

Can you confirm you have followed the doc completely? Did you add the Notification Service Extention properly?

Also, can you update the AppDelegate with autoTrackPushEvents as false?

CustomerIO.initialize(...) { config in 
  config.autoTrackPushEvents = false
}
Aadesh1803 commented 7 months ago

please check podlock file

PODS:
  - abseil/algorithm (1.20220623.0):
    - abseil/algorithm/algorithm (= 1.20220623.0)
    - abseil/algorithm/container (= 1.20220623.0)
  - abseil/algorithm/algorithm (1.20220623.0):
    - abseil/base/config
  - abseil/algorithm/container (1.20220623.0):
    - abseil/algorithm/algorithm
    - abseil/base/core_headers
    - abseil/meta/type_traits
  - abseil/base (1.20220623.0):
    - abseil/base/atomic_hook (= 1.20220623.0)
    - abseil/base/base (= 1.20220623.0)
    - abseil/base/base_internal (= 1.20220623.0)
    - abseil/base/config (= 1.20220623.0)
    - abseil/base/core_headers (= 1.20220623.0)
    - abseil/base/dynamic_annotations (= 1.20220623.0)
    - abseil/base/endian (= 1.20220623.0)
    - abseil/base/errno_saver (= 1.20220623.0)
    - abseil/base/fast_type_id (= 1.20220623.0)
    - abseil/base/log_severity (= 1.20220623.0)
    - abseil/base/malloc_internal (= 1.20220623.0)
    - abseil/base/prefetch (= 1.20220623.0)
    - abseil/base/pretty_function (= 1.20220623.0)
    - abseil/base/raw_logging_internal (= 1.20220623.0)
    - abseil/base/spinlock_wait (= 1.20220623.0)
    - abseil/base/strerror (= 1.20220623.0)
    - abseil/base/throw_delegate (= 1.20220623.0)
  - abseil/base/atomic_hook (1.20220623.0):
    - abseil/base/config
    - abseil/base/core_headers
  - abseil/base/base (1.20220623.0):
    - abseil/base/atomic_hook
    - abseil/base/base_internal
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/base/dynamic_annotations
    - abseil/base/log_severity
    - abseil/base/raw_logging_internal
    - abseil/base/spinlock_wait
    - abseil/meta/type_traits
  - abseil/base/base_internal (1.20220623.0):
    - abseil/base/config
    - abseil/meta/type_traits
  - abseil/base/config (1.20220623.0)
  - abseil/base/core_headers (1.20220623.0):
    - abseil/base/config
  - abseil/base/dynamic_annotations (1.20220623.0):
    - abseil/base/config
    - abseil/base/core_headers
  - abseil/base/endian (1.20220623.0):
    - abseil/base/base
    - abseil/base/config
    - abseil/base/core_headers
  - abseil/base/errno_saver (1.20220623.0):
    - abseil/base/config
  - abseil/base/fast_type_id (1.20220623.0):
    - abseil/base/config
  - abseil/base/log_severity (1.20220623.0):
    - abseil/base/config
    - abseil/base/core_headers
  - abseil/base/malloc_internal (1.20220623.0):
    - abseil/base/base
    - abseil/base/base_internal
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/base/dynamic_annotations
    - abseil/base/raw_logging_internal
  - abseil/base/prefetch (1.20220623.0):
    - abseil/base/config
  - abseil/base/pretty_function (1.20220623.0)
  - abseil/base/raw_logging_internal (1.20220623.0):
    - abseil/base/atomic_hook
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/base/errno_saver
    - abseil/base/log_severity
  - abseil/base/spinlock_wait (1.20220623.0):
    - abseil/base/base_internal
    - abseil/base/core_headers
    - abseil/base/errno_saver
  - abseil/base/strerror (1.20220623.0):
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/base/errno_saver
  - abseil/base/throw_delegate (1.20220623.0):
    - abseil/base/config
    - abseil/base/raw_logging_internal
  - abseil/cleanup/cleanup (1.20220623.0):
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/cleanup/cleanup_internal
  - abseil/cleanup/cleanup_internal (1.20220623.0):
    - abseil/base/base_internal
    - abseil/base/core_headers
    - abseil/utility/utility
  - abseil/container/common (1.20220623.0):
    - abseil/meta/type_traits
    - abseil/types/optional
  - abseil/container/compressed_tuple (1.20220623.0):
    - abseil/utility/utility
  - abseil/container/container_memory (1.20220623.0):
    - abseil/base/config
    - abseil/memory/memory
    - abseil/meta/type_traits
    - abseil/utility/utility
  - abseil/container/fixed_array (1.20220623.0):
    - abseil/algorithm/algorithm
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/base/dynamic_annotations
    - abseil/base/throw_delegate
    - abseil/container/compressed_tuple
    - abseil/memory/memory
  - abseil/container/flat_hash_map (1.20220623.0):
    - abseil/algorithm/container
    - abseil/base/core_headers
    - abseil/container/container_memory
    - abseil/container/hash_function_defaults
    - abseil/container/raw_hash_map
    - abseil/memory/memory
  - abseil/container/flat_hash_set (1.20220623.0):
    - abseil/algorithm/container
    - abseil/base/core_headers
    - abseil/container/container_memory
    - abseil/container/hash_function_defaults
    - abseil/container/raw_hash_set
    - abseil/memory/memory
  - abseil/container/hash_function_defaults (1.20220623.0):
    - abseil/base/config
    - abseil/hash/hash
    - abseil/strings/cord
    - abseil/strings/strings
  - abseil/container/hash_policy_traits (1.20220623.0):
    - abseil/meta/type_traits
  - abseil/container/hashtable_debug_hooks (1.20220623.0):
    - abseil/base/config
  - abseil/container/hashtablez_sampler (1.20220623.0):
    - abseil/base/base
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/debugging/stacktrace
    - abseil/memory/memory
    - abseil/profiling/exponential_biased
    - abseil/profiling/sample_recorder
    - abseil/synchronization/synchronization
    - abseil/utility/utility
  - abseil/container/inlined_vector (1.20220623.0):
    - abseil/algorithm/algorithm
    - abseil/base/core_headers
    - abseil/base/throw_delegate
    - abseil/container/inlined_vector_internal
    - abseil/memory/memory
  - abseil/container/inlined_vector_internal (1.20220623.0):
    - abseil/base/core_headers
    - abseil/container/compressed_tuple
    - abseil/memory/memory
    - abseil/meta/type_traits
    - abseil/types/span
  - abseil/container/layout (1.20220623.0):
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/meta/type_traits
    - abseil/strings/strings
    - abseil/types/span
    - abseil/utility/utility
  - abseil/container/raw_hash_map (1.20220623.0):
    - abseil/base/throw_delegate
    - abseil/container/container_memory
    - abseil/container/raw_hash_set
  - abseil/container/raw_hash_set (1.20220623.0):
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/base/endian
    - abseil/base/prefetch
    - abseil/container/common
    - abseil/container/compressed_tuple
    - abseil/container/container_memory
    - abseil/container/hash_policy_traits
    - abseil/container/hashtable_debug_hooks
    - abseil/container/hashtablez_sampler
    - abseil/memory/memory
    - abseil/meta/type_traits
    - abseil/numeric/bits
    - abseil/utility/utility
  - abseil/debugging/debugging_internal (1.20220623.0):
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/base/dynamic_annotations
    - abseil/base/errno_saver
    - abseil/base/raw_logging_internal
  - abseil/debugging/demangle_internal (1.20220623.0):
    - abseil/base/base
    - abseil/base/config
    - abseil/base/core_headers
  - abseil/debugging/stacktrace (1.20220623.0):
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/debugging/debugging_internal
  - abseil/debugging/symbolize (1.20220623.0):
    - abseil/base/base
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/base/dynamic_annotations
    - abseil/base/malloc_internal
    - abseil/base/raw_logging_internal
    - abseil/debugging/debugging_internal
    - abseil/debugging/demangle_internal
    - abseil/strings/strings
  - abseil/functional/any_invocable (1.20220623.0):
    - abseil/base/base_internal
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/meta/type_traits
    - abseil/utility/utility
  - abseil/functional/bind_front (1.20220623.0):
    - abseil/base/base_internal
    - abseil/container/compressed_tuple
    - abseil/meta/type_traits
    - abseil/utility/utility
  - abseil/functional/function_ref (1.20220623.0):
    - abseil/base/base_internal
    - abseil/base/core_headers
    - abseil/meta/type_traits
  - abseil/hash/city (1.20220623.0):
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/base/endian
  - abseil/hash/hash (1.20220623.0):
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/base/endian
    - abseil/container/fixed_array
    - abseil/functional/function_ref
    - abseil/hash/city
    - abseil/hash/low_level_hash
    - abseil/meta/type_traits
    - abseil/numeric/int128
    - abseil/strings/strings
    - abseil/types/optional
    - abseil/types/variant
    - abseil/utility/utility
  - abseil/hash/low_level_hash (1.20220623.0):
    - abseil/base/config
    - abseil/base/endian
    - abseil/numeric/bits
    - abseil/numeric/int128
  - abseil/memory (1.20220623.0):
    - abseil/memory/memory (= 1.20220623.0)
  - abseil/memory/memory (1.20220623.0):
    - abseil/base/core_headers
    - abseil/meta/type_traits
  - abseil/meta (1.20220623.0):
    - abseil/meta/type_traits (= 1.20220623.0)
  - abseil/meta/type_traits (1.20220623.0):
    - abseil/base/config
  - abseil/numeric/bits (1.20220623.0):
    - abseil/base/config
    - abseil/base/core_headers
  - abseil/numeric/int128 (1.20220623.0):
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/numeric/bits
  - abseil/numeric/representation (1.20220623.0):
    - abseil/base/config
  - abseil/profiling/exponential_biased (1.20220623.0):
    - abseil/base/config
    - abseil/base/core_headers
  - abseil/profiling/sample_recorder (1.20220623.0):
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/synchronization/synchronization
    - abseil/time/time
  - abseil/random/distributions (1.20220623.0):
    - abseil/base/base_internal
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/meta/type_traits
    - abseil/numeric/bits
    - abseil/random/internal/distribution_caller
    - abseil/random/internal/fast_uniform_bits
    - abseil/random/internal/fastmath
    - abseil/random/internal/generate_real
    - abseil/random/internal/iostream_state_saver
    - abseil/random/internal/traits
    - abseil/random/internal/uniform_helper
    - abseil/random/internal/wide_multiply
    - abseil/strings/strings
  - abseil/random/internal/distribution_caller (1.20220623.0):
    - abseil/base/config
    - abseil/base/fast_type_id
    - abseil/utility/utility
  - abseil/random/internal/fast_uniform_bits (1.20220623.0):
    - abseil/base/config
    - abseil/meta/type_traits
    - abseil/random/internal/traits
  - abseil/random/internal/fastmath (1.20220623.0):
    - abseil/numeric/bits
  - abseil/random/internal/generate_real (1.20220623.0):
    - abseil/meta/type_traits
    - abseil/numeric/bits
    - abseil/random/internal/fastmath
    - abseil/random/internal/traits
  - abseil/random/internal/iostream_state_saver (1.20220623.0):
    - abseil/meta/type_traits
    - abseil/numeric/int128
  - abseil/random/internal/nonsecure_base (1.20220623.0):
    - abseil/base/core_headers
    - abseil/container/inlined_vector
    - abseil/meta/type_traits
    - abseil/random/internal/pool_urbg
    - abseil/random/internal/salted_seed_seq
    - abseil/random/internal/seed_material
    - abseil/types/span
  - abseil/random/internal/pcg_engine (1.20220623.0):
    - abseil/base/config
    - abseil/meta/type_traits
    - abseil/numeric/bits
    - abseil/numeric/int128
    - abseil/random/internal/fastmath
    - abseil/random/internal/iostream_state_saver
  - abseil/random/internal/platform (1.20220623.0):
    - abseil/base/config
  - abseil/random/internal/pool_urbg (1.20220623.0):
    - abseil/base/base
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/base/endian
    - abseil/base/raw_logging_internal
    - abseil/random/internal/randen
    - abseil/random/internal/seed_material
    - abseil/random/internal/traits
    - abseil/random/seed_gen_exception
    - abseil/types/span
  - abseil/random/internal/randen (1.20220623.0):
    - abseil/base/raw_logging_internal
    - abseil/random/internal/platform
    - abseil/random/internal/randen_hwaes
    - abseil/random/internal/randen_slow
  - abseil/random/internal/randen_engine (1.20220623.0):
    - abseil/base/endian
    - abseil/meta/type_traits
    - abseil/random/internal/iostream_state_saver
    - abseil/random/internal/randen
  - abseil/random/internal/randen_hwaes (1.20220623.0):
    - abseil/base/config
    - abseil/random/internal/platform
    - abseil/random/internal/randen_hwaes_impl
  - abseil/random/internal/randen_hwaes_impl (1.20220623.0):
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/numeric/int128
    - abseil/random/internal/platform
  - abseil/random/internal/randen_slow (1.20220623.0):
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/base/endian
    - abseil/numeric/int128
    - abseil/random/internal/platform
  - abseil/random/internal/salted_seed_seq (1.20220623.0):
    - abseil/container/inlined_vector
    - abseil/meta/type_traits
    - abseil/random/internal/seed_material
    - abseil/types/optional
    - abseil/types/span
  - abseil/random/internal/seed_material (1.20220623.0):
    - abseil/base/core_headers
    - abseil/base/dynamic_annotations
    - abseil/base/raw_logging_internal
    - abseil/random/internal/fast_uniform_bits
    - abseil/strings/strings
    - abseil/types/optional
    - abseil/types/span
  - abseil/random/internal/traits (1.20220623.0):
    - abseil/base/config
    - abseil/numeric/bits
    - abseil/numeric/int128
  - abseil/random/internal/uniform_helper (1.20220623.0):
    - abseil/base/config
    - abseil/meta/type_traits
    - abseil/numeric/int128
    - abseil/random/internal/traits
  - abseil/random/internal/wide_multiply (1.20220623.0):
    - abseil/base/config
    - abseil/numeric/bits
    - abseil/numeric/int128
    - abseil/random/internal/traits
  - abseil/random/random (1.20220623.0):
    - abseil/random/distributions
    - abseil/random/internal/nonsecure_base
    - abseil/random/internal/pcg_engine
    - abseil/random/internal/pool_urbg
    - abseil/random/internal/randen_engine
    - abseil/random/seed_sequences
  - abseil/random/seed_gen_exception (1.20220623.0):
    - abseil/base/config
  - abseil/random/seed_sequences (1.20220623.0):
    - abseil/base/config
    - abseil/random/internal/pool_urbg
    - abseil/random/internal/salted_seed_seq
    - abseil/random/internal/seed_material
    - abseil/random/seed_gen_exception
    - abseil/types/span
  - abseil/status/status (1.20220623.0):
    - abseil/base/atomic_hook
    - abseil/base/core_headers
    - abseil/base/raw_logging_internal
    - abseil/base/strerror
    - abseil/container/inlined_vector
    - abseil/debugging/stacktrace
    - abseil/debugging/symbolize
    - abseil/functional/function_ref
    - abseil/strings/cord
    - abseil/strings/str_format
    - abseil/strings/strings
    - abseil/types/optional
  - abseil/status/statusor (1.20220623.0):
    - abseil/base/base
    - abseil/base/core_headers
    - abseil/base/raw_logging_internal
    - abseil/meta/type_traits
    - abseil/status/status
    - abseil/strings/strings
    - abseil/types/variant
    - abseil/utility/utility
  - abseil/strings/cord (1.20220623.0):
    - abseil/base/base
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/base/endian
    - abseil/base/raw_logging_internal
    - abseil/container/fixed_array
    - abseil/container/inlined_vector
    - abseil/functional/function_ref
    - abseil/meta/type_traits
    - abseil/numeric/bits
    - abseil/strings/cord_internal
    - abseil/strings/cordz_functions
    - abseil/strings/cordz_info
    - abseil/strings/cordz_statistics
    - abseil/strings/cordz_update_scope
    - abseil/strings/cordz_update_tracker
    - abseil/strings/internal
    - abseil/strings/str_format
    - abseil/strings/strings
    - abseil/types/optional
    - abseil/types/span
  - abseil/strings/cord_internal (1.20220623.0):
    - abseil/base/base_internal
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/base/endian
    - abseil/base/raw_logging_internal
    - abseil/base/throw_delegate
    - abseil/container/compressed_tuple
    - abseil/container/inlined_vector
    - abseil/container/layout
    - abseil/functional/function_ref
    - abseil/meta/type_traits
    - abseil/strings/strings
    - abseil/types/span
  - abseil/strings/cordz_functions (1.20220623.0):
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/base/raw_logging_internal
    - abseil/profiling/exponential_biased
  - abseil/strings/cordz_handle (1.20220623.0):
    - abseil/base/base
    - abseil/base/config
    - abseil/base/raw_logging_internal
    - abseil/synchronization/synchronization
  - abseil/strings/cordz_info (1.20220623.0):
    - abseil/base/base
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/base/raw_logging_internal
    - abseil/container/inlined_vector
    - abseil/debugging/stacktrace
    - abseil/strings/cord_internal
    - abseil/strings/cordz_functions
    - abseil/strings/cordz_handle
    - abseil/strings/cordz_statistics
    - abseil/strings/cordz_update_tracker
    - abseil/synchronization/synchronization
    - abseil/types/span
  - abseil/strings/cordz_statistics (1.20220623.0):
    - abseil/base/config
    - abseil/strings/cordz_update_tracker
  - abseil/strings/cordz_update_scope (1.20220623.0):
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/strings/cord_internal
    - abseil/strings/cordz_info
    - abseil/strings/cordz_update_tracker
  - abseil/strings/cordz_update_tracker (1.20220623.0):
    - abseil/base/config
  - abseil/strings/internal (1.20220623.0):
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/base/endian
    - abseil/base/raw_logging_internal
    - abseil/meta/type_traits
  - abseil/strings/str_format (1.20220623.0):
    - abseil/strings/str_format_internal
  - abseil/strings/str_format_internal (1.20220623.0):
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/functional/function_ref
    - abseil/meta/type_traits
    - abseil/numeric/bits
    - abseil/numeric/int128
    - abseil/numeric/representation
    - abseil/strings/strings
    - abseil/types/optional
    - abseil/types/span
    - abseil/utility/utility
  - abseil/strings/strings (1.20220623.0):
    - abseil/base/base
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/base/endian
    - abseil/base/raw_logging_internal
    - abseil/base/throw_delegate
    - abseil/memory/memory
    - abseil/meta/type_traits
    - abseil/numeric/bits
    - abseil/numeric/int128
    - abseil/strings/internal
  - abseil/synchronization/graphcycles_internal (1.20220623.0):
    - abseil/base/base
    - abseil/base/base_internal
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/base/malloc_internal
    - abseil/base/raw_logging_internal
  - abseil/synchronization/kernel_timeout_internal (1.20220623.0):
    - abseil/base/core_headers
    - abseil/base/raw_logging_internal
    - abseil/time/time
  - abseil/synchronization/synchronization (1.20220623.0):
    - abseil/base/atomic_hook
    - abseil/base/base
    - abseil/base/base_internal
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/base/dynamic_annotations
    - abseil/base/malloc_internal
    - abseil/base/raw_logging_internal
    - abseil/debugging/stacktrace
    - abseil/debugging/symbolize
    - abseil/synchronization/graphcycles_internal
    - abseil/synchronization/kernel_timeout_internal
    - abseil/time/time
  - abseil/time (1.20220623.0):
    - abseil/time/internal (= 1.20220623.0)
    - abseil/time/time (= 1.20220623.0)
  - abseil/time/internal (1.20220623.0):
    - abseil/time/internal/cctz (= 1.20220623.0)
  - abseil/time/internal/cctz (1.20220623.0):
    - abseil/time/internal/cctz/civil_time (= 1.20220623.0)
    - abseil/time/internal/cctz/time_zone (= 1.20220623.0)
  - abseil/time/internal/cctz/civil_time (1.20220623.0):
    - abseil/base/config
  - abseil/time/internal/cctz/time_zone (1.20220623.0):
    - abseil/base/config
    - abseil/time/internal/cctz/civil_time
  - abseil/time/time (1.20220623.0):
    - abseil/base/base
    - abseil/base/core_headers
    - abseil/base/raw_logging_internal
    - abseil/numeric/int128
    - abseil/strings/strings
    - abseil/time/internal/cctz/civil_time
    - abseil/time/internal/cctz/time_zone
  - abseil/types (1.20220623.0):
    - abseil/types/any (= 1.20220623.0)
    - abseil/types/bad_any_cast (= 1.20220623.0)
    - abseil/types/bad_any_cast_impl (= 1.20220623.0)
    - abseil/types/bad_optional_access (= 1.20220623.0)
    - abseil/types/bad_variant_access (= 1.20220623.0)
    - abseil/types/compare (= 1.20220623.0)
    - abseil/types/optional (= 1.20220623.0)
    - abseil/types/span (= 1.20220623.0)
    - abseil/types/variant (= 1.20220623.0)
  - abseil/types/any (1.20220623.0):
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/base/fast_type_id
    - abseil/meta/type_traits
    - abseil/types/bad_any_cast
    - abseil/utility/utility
  - abseil/types/bad_any_cast (1.20220623.0):
    - abseil/base/config
    - abseil/types/bad_any_cast_impl
  - abseil/types/bad_any_cast_impl (1.20220623.0):
    - abseil/base/config
    - abseil/base/raw_logging_internal
  - abseil/types/bad_optional_access (1.20220623.0):
    - abseil/base/config
    - abseil/base/raw_logging_internal
  - abseil/types/bad_variant_access (1.20220623.0):
    - abseil/base/config
    - abseil/base/raw_logging_internal
  - abseil/types/compare (1.20220623.0):
    - abseil/base/core_headers
    - abseil/meta/type_traits
  - abseil/types/optional (1.20220623.0):
    - abseil/base/base_internal
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/memory/memory
    - abseil/meta/type_traits
    - abseil/types/bad_optional_access
    - abseil/utility/utility
  - abseil/types/span (1.20220623.0):
    - abseil/algorithm/algorithm
    - abseil/base/core_headers
    - abseil/base/throw_delegate
    - abseil/meta/type_traits
  - abseil/types/variant (1.20220623.0):
    - abseil/base/base_internal
    - abseil/base/config
    - abseil/base/core_headers
    - abseil/meta/type_traits
    - abseil/types/bad_variant_access
    - abseil/utility/utility
  - abseil/utility/utility (1.20220623.0):
    - abseil/base/base_internal
    - abseil/base/config
    - abseil/meta/type_traits
  - Amplitude (8.18.1):
    - AnalyticsConnector (~> 1.0.0)
  - Analytics (4.1.6)
  - AnalyticsConnector (1.0.3)
  - AppAuth (1.6.2):
    - AppAuth/Core (= 1.6.2)
    - AppAuth/ExternalUserAgent (= 1.6.2)
  - AppAuth/Core (1.6.2)
  - AppAuth/ExternalUserAgent (1.6.2):
    - AppAuth/Core
  - appsflyer_sdk (6.8.0):
    - AppsFlyerFramework (= 6.8.0)
    - Flutter
  - AppsFlyerFramework (6.8.0):
    - AppsFlyerFramework/Main (= 6.8.0)
  - AppsFlyerFramework/Main (6.8.0)
  - awesome_notifications (0.0.3):
    - Flutter
  - BoringSSL-GRPC (0.0.24):
    - BoringSSL-GRPC/Implementation (= 0.0.24)
    - BoringSSL-GRPC/Interface (= 0.0.24)
  - BoringSSL-GRPC/Implementation (0.0.24):
    - BoringSSL-GRPC/Interface (= 0.0.24)
  - BoringSSL-GRPC/Interface (0.0.24)
  - cloud_firestore (4.9.3):
    - Firebase/Firestore (= 10.15.0)
    - firebase_core
    - Flutter
    - nanopb (< 2.30910.0, >= 2.30908.0)
  - connectivity (0.0.1):
    - Flutter
    - Reachability
  - customer_io (1.3.1):
    - CustomerIO/MessagingInApp (~> 2)
    - CustomerIO/Tracking (~> 2)
    - Flutter
  - CustomerIO/MessagingInApp (2.12.1):
    - CustomerIOMessagingInApp (= 2.12.1)
  - CustomerIO/MessagingPushFCM (2.12.1):
    - CustomerIOMessagingPushFCM (= 2.12.1)
  - CustomerIO/Tracking (2.12.1):
    - CustomerIOTracking (= 2.12.1)
  - CustomerIOCommon (2.12.1)
  - CustomerIOMessagingInApp (2.12.1):
    - CustomerIOTracking (= 2.12.1)
  - CustomerIOMessagingPush (2.12.1):
    - CustomerIOTracking (= 2.12.1)
  - CustomerIOMessagingPushFCM (2.12.1):
    - CustomerIOMessagingPush (= 2.12.1)
    - FirebaseMessaging (< 11, >= 8.7.0)
  - CustomerIOTracking (2.12.1):
    - CustomerIOCommon (= 2.12.1)
  - device_info (0.0.1):
    - Flutter
  - Firebase/Auth (10.15.0):
    - Firebase/CoreOnly
    - FirebaseAuth (~> 10.15.0)
  - Firebase/CoreOnly (10.15.0):
    - FirebaseCore (= 10.15.0)
  - Firebase/Database (10.15.0):
    - Firebase/CoreOnly
    - FirebaseDatabase (~> 10.15.0)
  - Firebase/Firestore (10.15.0):
    - Firebase/CoreOnly
    - FirebaseFirestore (~> 10.15.0)
  - Firebase/Messaging (10.15.0):
    - Firebase/CoreOnly
    - FirebaseMessaging (~> 10.15.0)
  - Firebase/Storage (10.15.0):
    - Firebase/CoreOnly
    - FirebaseStorage (~> 10.15.0)
  - firebase_auth (4.10.1):
    - Firebase/Auth (= 10.15.0)
    - firebase_core
    - Flutter
  - firebase_core (2.17.0):
    - Firebase/CoreOnly (= 10.15.0)
    - Flutter
  - firebase_database (10.2.7):
    - Firebase/Database (= 10.15.0)
    - firebase_core
    - Flutter
  - firebase_messaging (14.6.1):
    - Firebase/Messaging (= 10.15.0)
    - firebase_core
    - Flutter
  - firebase_storage (11.2.8):
    - Firebase/Storage (= 10.15.0)
    - firebase_core
    - Flutter
  - FirebaseAppCheckInterop (10.21.0)
  - FirebaseAuth (10.15.0):
    - FirebaseAppCheckInterop (~> 10.0)
    - FirebaseCore (~> 10.0)
    - GoogleUtilities/AppDelegateSwizzler (~> 7.8)
    - GoogleUtilities/Environment (~> 7.8)
    - GTMSessionFetcher/Core (< 4.0, >= 2.1)
    - RecaptchaInterop (~> 100.0)
  - FirebaseAuthInterop (10.21.0)
  - FirebaseCore (10.15.0):
    - FirebaseCoreInternal (~> 10.0)
    - GoogleUtilities/Environment (~> 7.8)
    - GoogleUtilities/Logger (~> 7.8)
  - FirebaseCoreExtension (10.21.0):
    - FirebaseCore (~> 10.0)
  - FirebaseCoreInternal (10.21.0):
    - "GoogleUtilities/NSData+zlib (~> 7.8)"
  - FirebaseDatabase (10.15.0):
    - FirebaseCore (~> 10.0)
    - leveldb-library (~> 1.22)
  - FirebaseFirestore (10.15.0):
    - abseil/algorithm (~> 1.20220623.0)
    - abseil/base (~> 1.20220623.0)
    - abseil/container/flat_hash_map (~> 1.20220623.0)
    - abseil/memory (~> 1.20220623.0)
    - abseil/meta (~> 1.20220623.0)
    - abseil/strings/strings (~> 1.20220623.0)
    - abseil/time (~> 1.20220623.0)
    - abseil/types (~> 1.20220623.0)
    - FirebaseCore (~> 10.0)
    - "gRPC-C++ (~> 1.50.1)"
    - leveldb-library (~> 1.22)
    - nanopb (< 2.30910.0, >= 2.30908.0)
  - FirebaseInstallations (10.21.0):
    - FirebaseCore (~> 10.0)
    - GoogleUtilities/Environment (~> 7.8)
    - GoogleUtilities/UserDefaults (~> 7.8)
    - PromisesObjC (~> 2.1)
  - FirebaseMessaging (10.15.0):
    - FirebaseCore (~> 10.0)
    - FirebaseInstallations (~> 10.0)
    - GoogleDataTransport (~> 9.2)
    - GoogleUtilities/AppDelegateSwizzler (~> 7.8)
    - GoogleUtilities/Environment (~> 7.8)
    - GoogleUtilities/Reachability (~> 7.8)
    - GoogleUtilities/UserDefaults (~> 7.8)
    - nanopb (< 2.30910.0, >= 2.30908.0)
  - FirebaseStorage (10.15.0):
    - FirebaseAppCheckInterop (~> 10.0)
    - FirebaseAuthInterop (~> 10.0)
    - FirebaseCore (~> 10.0)
    - FirebaseCoreExtension (~> 10.0)
    - GTMSessionFetcher/Core (< 4.0, >= 2.1)
  - Flutter (1.0.0)
  - flutter_inappwebview (0.0.1):
    - Flutter
    - flutter_inappwebview/Core (= 0.0.1)
    - OrderedSet (~> 5.0)
  - flutter_inappwebview/Core (0.0.1):
    - Flutter
    - OrderedSet (~> 5.0)
  - flutter_local_notifications (0.0.1):
    - Flutter
  - flutter_segment (3.12.1):
    - Analytics (= 4.1.6)
    - Flutter
    - Segment-Amplitude (= 3.3.2)
    - segment-appsflyer-ios (= 6.8.0)
  - flutter_share (0.0.1):
    - Flutter
  - flutter_udid (0.0.1):
    - Flutter
    - SAMKeychain
  - fluttertoast (0.0.2):
    - Flutter
    - Toast
  - google_sign_in_ios (0.0.1):
    - Flutter
    - GoogleSignIn (~> 7.0)
  - GoogleDataTransport (9.3.0):
    - GoogleUtilities/Environment (~> 7.7)
    - nanopb (< 2.30910.0, >= 2.30908.0)
    - PromisesObjC (< 3.0, >= 1.2)
  - GoogleSignIn (7.0.0):
    - AppAuth (~> 1.5)
    - GTMAppAuth (< 3.0, >= 1.3)
    - GTMSessionFetcher/Core (< 4.0, >= 1.1)
  - GoogleUtilities/AppDelegateSwizzler (7.12.0):
    - GoogleUtilities/Environment
    - GoogleUtilities/Logger
    - GoogleUtilities/Network
  - GoogleUtilities/Environment (7.12.0):
    - PromisesObjC (< 3.0, >= 1.2)
  - GoogleUtilities/Logger (7.12.0):
    - GoogleUtilities/Environment
  - GoogleUtilities/Network (7.12.0):
    - GoogleUtilities/Logger
    - "GoogleUtilities/NSData+zlib"
    - GoogleUtilities/Reachability
  - "GoogleUtilities/NSData+zlib (7.12.0)"
  - GoogleUtilities/Reachability (7.12.0):
    - GoogleUtilities/Logger
  - GoogleUtilities/UserDefaults (7.12.0):
    - GoogleUtilities/Logger
  - "gRPC-C++ (1.50.1)":
    - "gRPC-C++/Implementation (= 1.50.1)"
    - "gRPC-C++/Interface (= 1.50.1)"
  - "gRPC-C++/Implementation (1.50.1)":
    - abseil/base/base (= 1.20220623.0)
    - abseil/base/core_headers (= 1.20220623.0)
    - abseil/cleanup/cleanup (= 1.20220623.0)
    - abseil/container/flat_hash_map (= 1.20220623.0)
    - abseil/container/flat_hash_set (= 1.20220623.0)
    - abseil/container/inlined_vector (= 1.20220623.0)
    - abseil/functional/any_invocable (= 1.20220623.0)
    - abseil/functional/bind_front (= 1.20220623.0)
    - abseil/functional/function_ref (= 1.20220623.0)
    - abseil/hash/hash (= 1.20220623.0)
    - abseil/memory/memory (= 1.20220623.0)
    - abseil/meta/type_traits (= 1.20220623.0)
    - abseil/random/random (= 1.20220623.0)
    - abseil/status/status (= 1.20220623.0)
    - abseil/status/statusor (= 1.20220623.0)
    - abseil/strings/cord (= 1.20220623.0)
    - abseil/strings/str_format (= 1.20220623.0)
    - abseil/strings/strings (= 1.20220623.0)
    - abseil/synchronization/synchronization (= 1.20220623.0)
    - abseil/time/time (= 1.20220623.0)
    - abseil/types/optional (= 1.20220623.0)
    - abseil/types/span (= 1.20220623.0)
    - abseil/types/variant (= 1.20220623.0)
    - abseil/utility/utility (= 1.20220623.0)
    - "gRPC-C++/Interface (= 1.50.1)"
    - gRPC-Core (= 1.50.1)
  - "gRPC-C++/Interface (1.50.1)"
  - gRPC-Core (1.50.1):
    - gRPC-Core/Implementation (= 1.50.1)
    - gRPC-Core/Interface (= 1.50.1)
  - gRPC-Core/Implementation (1.50.1):
    - abseil/base/base (= 1.20220623.0)
    - abseil/base/core_headers (= 1.20220623.0)
    - abseil/container/flat_hash_map (= 1.20220623.0)
    - abseil/container/flat_hash_set (= 1.20220623.0)
    - abseil/container/inlined_vector (= 1.20220623.0)
    - abseil/functional/any_invocable (= 1.20220623.0)
    - abseil/functional/bind_front (= 1.20220623.0)
    - abseil/functional/function_ref (= 1.20220623.0)
    - abseil/hash/hash (= 1.20220623.0)
    - abseil/memory/memory (= 1.20220623.0)
    - abseil/meta/type_traits (= 1.20220623.0)
    - abseil/random/random (= 1.20220623.0)
    - abseil/status/status (= 1.20220623.0)
    - abseil/status/statusor (= 1.20220623.0)
    - abseil/strings/cord (= 1.20220623.0)
    - abseil/strings/str_format (= 1.20220623.0)
    - abseil/strings/strings (= 1.20220623.0)
    - abseil/synchronization/synchronization (= 1.20220623.0)
    - abseil/time/time (= 1.20220623.0)
    - abseil/types/optional (= 1.20220623.0)
    - abseil/types/span (= 1.20220623.0)
    - abseil/types/variant (= 1.20220623.0)
    - abseil/utility/utility (= 1.20220623.0)
    - BoringSSL-GRPC (= 0.0.24)
    - gRPC-Core/Interface (= 1.50.1)
  - gRPC-Core/Interface (1.50.1)
  - GTMAppAuth (2.0.0):
    - AppAuth/Core (~> 1.6)
    - GTMSessionFetcher/Core (< 4.0, >= 1.5)
  - GTMSessionFetcher/Core (3.3.1)
  - image_cropper (0.0.4):
    - Flutter
    - TOCropViewController (~> 2.6.1)
  - image_gallery_saver (2.0.1):
    - Flutter
  - image_picker_ios (0.0.1):
    - Flutter
  - leveldb-library (1.22.3)
  - nanopb (2.30909.1):
    - nanopb/decode (= 2.30909.1)
    - nanopb/encode (= 2.30909.1)
  - nanopb/decode (2.30909.1)
  - nanopb/encode (2.30909.1)
  - onesignal_flutter (3.5.2):
    - Flutter
    - OneSignalXCFramework (= 3.12.7)
  - OneSignalXCFramework (3.12.7):
    - OneSignalXCFramework/OneSignalCore (= 3.12.7)
    - OneSignalXCFramework/OneSignalExtension (= 3.12.7)
    - OneSignalXCFramework/OneSignalOutcomes (= 3.12.7)
  - OneSignalXCFramework/OneSignalCore (3.12.7)
  - OneSignalXCFramework/OneSignalExtension (3.12.7):
    - OneSignalXCFramework/OneSignalCore
    - OneSignalXCFramework/OneSignalOutcomes
  - OneSignalXCFramework/OneSignalOutcomes (3.12.7):
    - OneSignalXCFramework/OneSignalCore
  - OrderedSet (5.0.0)
  - package_info (0.0.1):
    - Flutter
  - package_info_plus (0.4.5):
    - Flutter
  - path_provider_foundation (0.0.1):
    - Flutter
    - FlutterMacOS
  - permission_handler_apple (9.1.1):
    - Flutter
  - PromisesObjC (2.3.1)
  - Reachability (3.2)
  - RecaptchaInterop (100.0.0)
  - SAMKeychain (1.5.3)
  - Segment-Amplitude (3.3.2):
    - Amplitude (~> 8.3)
    - Analytics
  - segment-appsflyer-ios (6.8.0):
    - Analytics
    - segment-appsflyer-ios/Main (= 6.8.0)
  - segment-appsflyer-ios/Main (6.8.0):
    - Analytics
    - AppsFlyerFramework (~> 6.8.0)
  - share_plus (0.0.1):
    - Flutter
  - shared_preferences_foundation (0.0.1):
    - Flutter
    - FlutterMacOS
  - sign_in_with_apple (0.0.1):
    - Flutter
  - sqflite (0.0.3):
    - Flutter
    - FlutterMacOS
  - store_redirect (0.0.1):
    - Flutter
  - Toast (4.1.0)
  - TOCropViewController (2.6.1)
  - uni_links (0.0.1):
    - Flutter
  - url_launcher_ios (0.0.1):
    - Flutter
  - webview_flutter_wkwebview (0.0.1):
    - Flutter

DEPENDENCIES:
  - appsflyer_sdk (from `.symlinks/plugins/appsflyer_sdk/ios`)
  - awesome_notifications (from `.symlinks/plugins/awesome_notifications/ios`)
  - cloud_firestore (from `.symlinks/plugins/cloud_firestore/ios`)
  - connectivity (from `.symlinks/plugins/connectivity/ios`)
  - customer_io (from `.symlinks/plugins/customer_io/ios`)
  - CustomerIO/MessagingPushFCM (~> 2)
  - device_info (from `.symlinks/plugins/device_info/ios`)
  - firebase_auth (from `.symlinks/plugins/firebase_auth/ios`)
  - firebase_core (from `.symlinks/plugins/firebase_core/ios`)
  - firebase_database (from `.symlinks/plugins/firebase_database/ios`)
  - firebase_messaging (from `.symlinks/plugins/firebase_messaging/ios`)
  - firebase_storage (from `.symlinks/plugins/firebase_storage/ios`)
  - Flutter (from `Flutter`)
  - flutter_inappwebview (from `.symlinks/plugins/flutter_inappwebview/ios`)
  - flutter_local_notifications (from `.symlinks/plugins/flutter_local_notifications/ios`)
  - flutter_segment (from `.symlinks/plugins/flutter_segment/ios`)
  - flutter_share (from `.symlinks/plugins/flutter_share/ios`)
  - flutter_udid (from `.symlinks/plugins/flutter_udid/ios`)
  - fluttertoast (from `.symlinks/plugins/fluttertoast/ios`)
  - google_sign_in_ios (from `.symlinks/plugins/google_sign_in_ios/ios`)
  - image_cropper (from `.symlinks/plugins/image_cropper/ios`)
  - image_gallery_saver (from `.symlinks/plugins/image_gallery_saver/ios`)
  - image_picker_ios (from `.symlinks/plugins/image_picker_ios/ios`)
  - onesignal_flutter (from `.symlinks/plugins/onesignal_flutter/ios`)
  - package_info (from `.symlinks/plugins/package_info/ios`)
  - package_info_plus (from `.symlinks/plugins/package_info_plus/ios`)
  - path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/darwin`)
  - permission_handler_apple (from `.symlinks/plugins/permission_handler_apple/ios`)
  - share_plus (from `.symlinks/plugins/share_plus/ios`)
  - shared_preferences_foundation (from `.symlinks/plugins/shared_preferences_foundation/darwin`)
  - sign_in_with_apple (from `.symlinks/plugins/sign_in_with_apple/ios`)
  - sqflite (from `.symlinks/plugins/sqflite/darwin`)
  - store_redirect (from `.symlinks/plugins/store_redirect/ios`)
  - uni_links (from `.symlinks/plugins/uni_links/ios`)
  - url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`)
  - webview_flutter_wkwebview (from `.symlinks/plugins/webview_flutter_wkwebview/ios`)

SPEC REPOS:
  trunk:
    - abseil
    - Amplitude
    - Analytics
    - AnalyticsConnector
    - AppAuth
    - AppsFlyerFramework
    - BoringSSL-GRPC
    - CustomerIO
    - CustomerIOCommon
    - CustomerIOMessagingInApp
    - CustomerIOMessagingPush
    - CustomerIOMessagingPushFCM
    - CustomerIOTracking
    - Firebase
    - FirebaseAppCheckInterop
    - FirebaseAuth
    - FirebaseAuthInterop
    - FirebaseCore
    - FirebaseCoreExtension
    - FirebaseCoreInternal
    - FirebaseDatabase
    - FirebaseFirestore
    - FirebaseInstallations
    - FirebaseMessaging
    - FirebaseStorage
    - GoogleDataTransport
    - GoogleSignIn
    - GoogleUtilities
    - "gRPC-C++"
    - gRPC-Core
    - GTMAppAuth
    - GTMSessionFetcher
    - leveldb-library
    - nanopb
    - OneSignalXCFramework
    - OrderedSet
    - PromisesObjC
    - Reachability
    - RecaptchaInterop
    - SAMKeychain
    - Segment-Amplitude
    - segment-appsflyer-ios
    - Toast
    - TOCropViewController

EXTERNAL SOURCES:
  appsflyer_sdk:
    :path: ".symlinks/plugins/appsflyer_sdk/ios"
  awesome_notifications:
    :path: ".symlinks/plugins/awesome_notifications/ios"
  cloud_firestore:
    :path: ".symlinks/plugins/cloud_firestore/ios"
  connectivity:
    :path: ".symlinks/plugins/connectivity/ios"
  customer_io:
    :path: ".symlinks/plugins/customer_io/ios"
  device_info:
    :path: ".symlinks/plugins/device_info/ios"
  firebase_auth:
    :path: ".symlinks/plugins/firebase_auth/ios"
  firebase_core:
    :path: ".symlinks/plugins/firebase_core/ios"
  firebase_database:
    :path: ".symlinks/plugins/firebase_database/ios"
  firebase_messaging:
    :path: ".symlinks/plugins/firebase_messaging/ios"
  firebase_storage:
    :path: ".symlinks/plugins/firebase_storage/ios"
  Flutter:
    :path: Flutter
  flutter_inappwebview:
    :path: ".symlinks/plugins/flutter_inappwebview/ios"
  flutter_local_notifications:
    :path: ".symlinks/plugins/flutter_local_notifications/ios"
  flutter_segment:
    :path: ".symlinks/plugins/flutter_segment/ios"
  flutter_share:
    :path: ".symlinks/plugins/flutter_share/ios"
  flutter_udid:
    :path: ".symlinks/plugins/flutter_udid/ios"
  fluttertoast:
    :path: ".symlinks/plugins/fluttertoast/ios"
  google_sign_in_ios:
    :path: ".symlinks/plugins/google_sign_in_ios/ios"
  image_cropper:
    :path: ".symlinks/plugins/image_cropper/ios"
  image_gallery_saver:
    :path: ".symlinks/plugins/image_gallery_saver/ios"
  image_picker_ios:
    :path: ".symlinks/plugins/image_picker_ios/ios"
  onesignal_flutter:
    :path: ".symlinks/plugins/onesignal_flutter/ios"
  package_info:
    :path: ".symlinks/plugins/package_info/ios"
  package_info_plus:
    :path: ".symlinks/plugins/package_info_plus/ios"
  path_provider_foundation:
    :path: ".symlinks/plugins/path_provider_foundation/darwin"
  permission_handler_apple:
    :path: ".symlinks/plugins/permission_handler_apple/ios"
  share_plus:
    :path: ".symlinks/plugins/share_plus/ios"
  shared_preferences_foundation:
    :path: ".symlinks/plugins/shared_preferences_foundation/darwin"
  sign_in_with_apple:
    :path: ".symlinks/plugins/sign_in_with_apple/ios"
  sqflite:
    :path: ".symlinks/plugins/sqflite/darwin"
  store_redirect:
    :path: ".symlinks/plugins/store_redirect/ios"
  uni_links:
    :path: ".symlinks/plugins/uni_links/ios"
  url_launcher_ios:
    :path: ".symlinks/plugins/url_launcher_ios/ios"
  webview_flutter_wkwebview:
    :path: ".symlinks/plugins/webview_flutter_wkwebview/ios"

SPEC CHECKSUMS:
  abseil: 926fb7a82dc6d2b8e1f2ed7f3a718bce691d1e46
  Amplitude: 7a0f3abd801de051fd06c81ee3dabd7a92f0a191
  Analytics: eefe524436f904b8bb3f8c8c3425280e43b34efc
  AnalyticsConnector: a53214d38ae22734c6266106c0492b37832633a9
  AppAuth: 3bb1d1cd9340bd09f5ed189fb00b1cc28e1e8570
  appsflyer_sdk: 6d03341418c1acf261fdfde2eb27fdeaf04fa2c2
  AppsFlyerFramework: a8de532f81b1d3c1dfc451f0ecded91ebb6a0e47
  awesome_notifications: 04530aafec8dac4635244ed4b4072f4aea6cc938
  BoringSSL-GRPC: 3175b25143e648463a56daeaaa499c6cb86dad33
  cloud_firestore: 9c9fb3500360c9b338e9eb2fec40b38e7a004cac
  connectivity: c4130b2985d4ef6fd26f9702e886bd5260681467
  customer_io: 01b3a765e7273ed5990481be212dcfd7dc79fae7
  CustomerIO: 89249909bce5f1ecba43721bda800dea79341085
  CustomerIOCommon: 8e3a003b3daf5096d56f193140a0eadf1fdce2b4
  CustomerIOMessagingInApp: b160de4b0bed0a5b511ee20830acc695512d09af
  CustomerIOMessagingPush: c49222a62f9885c18a6779fe50458ad54d8d7cd5
  CustomerIOMessagingPushFCM: 5883d85134abe0eba91cb213cd6a673fe7f21680
  CustomerIOTracking: d062619ac968b5b2c2d413d1c8586e25747e161f
  device_info: d7d233b645a32c40dfdc212de5cf646ca482f175
  Firebase: 66043bd4579e5b73811f96829c694c7af8d67435
  firebase_auth: b62e99e6ece589afe88ebe8919eb9563b52c384c
  firebase_core: 28e84c2a4fcf6a50ef83f47b145ded8c1fa331e4
  firebase_database: 1af9fdbaef52dd3be040be031db086cd2b450133
  firebase_messaging: 62a735570485e683aa791d4cff2e4554a37d4b44
  firebase_storage: 5aa5cd1cfc03814e3417b6718d805e5d1804f990
  FirebaseAppCheckInterop: 69fc7d8f6a1cbfa973efb8d1723651de30d12525
  FirebaseAuth: a55ec5f7f8a5b1c2dd750235c1bb419bfb642445
  FirebaseAuthInterop: b4161d3e99b05d2d528d6ee2759bc55a01976eba
  FirebaseCore: 2cec518b43635f96afe7ac3a9c513e47558abd2e
  FirebaseCoreExtension: 1c044fd46e95036cccb29134757c499613f3f564
  FirebaseCoreInternal: 43c1788eaeee9d1b97caaa751af567ce11010d00
  FirebaseDatabase: f93f1481c7e9e3d77af960cdff82a408d37693e6
  FirebaseFirestore: b4c0eaaf24efda5732ec21d9e6c788d083118ca6
  FirebaseInstallations: 390ea1d10a4d02b20c965cbfd527ee9b3b412acb
  FirebaseMessaging: 0c0ae1eb722ef0c07f7801e5ded8dccd1357d6d4
  FirebaseStorage: 1d4be239ea32fb3c0f3680a6f2b706d6cabe37f2
  Flutter: f04841e97a9d0b0a8025694d0796dd46242b2854
  flutter_inappwebview: 3d32228f1304635e7c028b0d4252937730bbc6cf
  flutter_local_notifications: 4cde75091f6327eb8517fa068a0a5950212d2086
  flutter_segment: 367b7d9f7d74b3875198524ff4d24c381d93e317
  flutter_share: 4be0208963c60b537e6255ed2ce1faae61cd9ac2
  flutter_udid: a2482c67a61b9c806ef59dd82ed8d007f1b7ac04
  fluttertoast: 31b00dabfa7fb7bacd9e7dbee580d7a2ff4bf265
  google_sign_in_ios: 8115e3fbe097e6509beb819ed602d47369d9011f
  GoogleDataTransport: 57c22343ab29bc686febbf7cbb13bad167c2d8fe
  GoogleSignIn: b232380cf495a429b8095d3178a8d5855b42e842
  GoogleUtilities: 0759d1a57ebb953965c2dfe0ba4c82e95ccc2e34
  "gRPC-C++": 0968bace703459fd3e5dcb0b2bed4c573dbff046
  gRPC-Core: 17108291d84332196d3c8466b48f016fc17d816d
  GTMAppAuth: 99fb010047ba3973b7026e45393f51f27ab965ae
  GTMSessionFetcher: 8a1b34ad97ebe6f909fb8b9b77fba99943007556
  image_cropper: 60c2789d1f1a78c873235d4319ca0c34a69f2d98
  image_gallery_saver: 6eb11e5a866e9ac2c8a98c74ef99a04fc62878b2
  image_picker_ios: 99dfe1854b4fa34d0364e74a78448a0151025425
  leveldb-library: e74c27d8fbd22854db7cb467968a0b8aa1db7126
  nanopb: d4d75c12cd1316f4a64e3c6963f879ecd4b5e0d5
  onesignal_flutter: 86b451a4f1d81cdc7a6f131d7b5bc2e44ae15227
  OneSignalXCFramework: 0fca311799488cb50419c0b96594aa8df4300115
  OrderedSet: aaeb196f7fef5a9edf55d89760da9176ad40b93c
  package_info: 873975fc26034f0b863a300ad47e7f1ac6c7ec62
  package_info_plus: 115f4ad11e0698c8c1c5d8a689390df880f47e85
  path_provider_foundation: 3784922295ac71e43754bd15e0653ccfd36a147c
  permission_handler_apple: e76247795d700c14ea09e3a2d8855d41ee80a2e6
  PromisesObjC: c50d2056b5253dadbd6c2bea79b0674bd5a52fa4
  Reachability: 33e18b67625424e47b6cde6d202dce689ad7af96
  RecaptchaInterop: 7d1a4a01a6b2cb1610a47ef3f85f0c411434cb21
  SAMKeychain: 483e1c9f32984d50ca961e26818a534283b4cd5c
  Segment-Amplitude: 6c1e59c8c278a21029ba7a6a788fcb31b9233a2c
  segment-appsflyer-ios: 9b84c1b7f94bb7a3c5826c9214cd0630b831e208
  share_plus: 599aa54e4ea31d4b4c0e9c911bcc26c55e791028
  shared_preferences_foundation: b4c3b4cddf1c21f02770737f147a3f5da9d39695
  sign_in_with_apple: f3bf75217ea4c2c8b91823f225d70230119b8440
  sqflite: 673a0e54cc04b7d6dba8d24fb8095b31c3a99eec
  store_redirect: 2977747cf81689a39bd62c248c2deacb7a0d131e
  Toast: ec33c32b8688982cecc6348adeae667c1b9938da
  TOCropViewController: edfd4f25713d56905ad1e0b9f5be3fbe0f59c863
  uni_links: d97da20c7701486ba192624d99bffaaffcfc298a
  url_launcher_ios: bbd758c6e7f9fd7b5b1d4cde34d2b95fcce5e812
  webview_flutter_wkwebview: 4f3e50f7273d31e5500066ed267e3ae4309c5ae4

PODFILE CHECKSUM: 30d876860a88b7450ae1b308296a2464f7c9f4a9

COCOAPODS: 1.14.3
Shahroz16 commented 7 months ago

Thank you for sharing the podfile.lock

There are 2 ways to solve this:

If you are using 3rd party SDK, like Firebase messaging. Then you won't receive push notifications sent via Customer IO, you will receive push notifications that are not sent via CIO. But if you want to use 3rd party SDK, you can update AppDelegate to not automatically track push notifications.

CustomerIO.initialize(...) { config in 
  config.autoTrackPushEvents = false
}

In this way, you will have to manually track push metrics such as delivered and opened in the 3rd part of SDK callbacks, but you will receive a payload in callbacks. For example,

 const deliveryID = '123';
      const deviceToken = 'abc';
      const event = MetricEvent.opened;
      CustomerIO.trackMetric(
          deliveryID: deliveryID, deviceToken: deviceToken, event: event);

Otherwise, if you want SDK to automatically capture the push metrics then you will need to move away from 3rd part SDKs and rely on Customer IO Flutter SDK to handle the rich push for you.

Aadesh1803 commented 7 months ago

Thank you for your valuable time in solving over problem 🙏🏻 (ખુબ ખુબ આભાર)

Shahroz16 commented 7 months ago

Great to hear, feel free to reach out in case you have more queries. 😄