Facebook "Please Upgrade SDK" warning in Events Manager (Flutter)

Last updated August 6, 2026

The short answer

Nothing is wrong with your SDK version. The warning is a defect in Meta's Events Manager UI: the developers who report it are already on an SDK newer than the version it asks for.

This plugin ships Facebook SDK 18.x on both platforms: FBSDKCoreKit ~> 18.0 on iOS and facebook-android-sdk [18.0,19.0) on Android. Events Manager is asking you to reach 4.34.0. You are already far past it.

  • Do not downgrade. The plugin requires 18.x on both platforms, so pinning an older SDK stops the app from building.
  • Do not add the deprecated FacebookSDK umbrella pod. Meta stopped publishing it after version 11.2.1, released in September 2021. There is no current version of it to add.
  • Do not treat the warning as a status light. The message does not reflect the SDK version you have installed.

Codeless events should still work despite the message. What decides whether the codeless setup tool works for your app is covered below.

Why Meta's UI shows this

The Facebook SDK for iOS used to ship as a single umbrella CocoaPods pod named FacebookSDK. Meta deprecated that pod after version 11.2.1.

What replaced it is a set of component pods, so an app only compiles the parts it uses: FBSDKCoreKit for app events and settings, FBSDKLoginKit for Facebook Login, FBSDKShareKit for sharing, and a few more. This plugin depends on FBSDKCoreKit, which is the correct component for app events.

Why the message still asks for 4.34.0 is not something anyone outside Meta can read out of a source file: Events Manager runs on Meta's servers and cannot see your Podfile. What we can say is how it looks from outside, which is a check written for the umbrella-pod era with no vocabulary for the component pods that replaced it. That is our reading of the evidence, not a mechanism we can show you. The version number fits the reading: 4.34.0 belongs to the 4.x line, years before the umbrella pod was deprecated at 11.2.1.

What you can read for yourself is issue #402 on this plugin. Events Manager told that developer their SDK had not updated correctly, and instructed them to remove FBSDKCoreKit, FBSDKLoginKit, FBSDKShareKit, FBSDKPlacesKit and FBSDKMessengerShareKit from the Podfile. FBSDKCoreKit is the pod this plugin depends on, the component that logs app events, so Events Manager was asking for the deletion of the thing making the events work. Five other developers reported the same. The issue was closed as stale in March 2025 without an answer.

That is what the citation is worth: a real report, from a developer on a current-era SDK, of Events Manager telling them to delete the pod that logs app events. Issue #2513 in Meta's own iOS SDK repository is a neighbouring case rather than the same one, a developer on SDK 17.1.0 told to update the SDK in order to serve ads on iOS 14.5 and above, closed as a duplicate without a diagnosis. It is linked because the pattern is not confined to Flutter, not because it explains your warning.

Codeless event setup is controlled on Meta's side

There is nothing in your app to switch on. The SDK fetches app settings from Meta and arms the codeless path only when those settings say codeless events or automatic event setup are enabled for that app. On Android that gate is CodelessManager.onActivityResumed, which reads Meta's app settings. On iOS it is FBSDKCodelessIndexer, which checks the auto_event_setup_enabled field Meta sends back. Whether the tool works is decided on Meta's side, not in your build.

Facebook SDK 18.x still carries a codeless debug flag on each platform: com.facebook.sdk.CodelessDebugLogEnabled on Android and FacebookCodelessDebugLogEnabled on iOS. Neither one has a consumer left in the SDK. Nothing on the path that starts the codeless indexer reads them, so setting either changes nothing. We checked that against the SDK sources this plugin depends on: facebook-android-sdk 18.3.0 and facebook-ios-sdk 18.1.0.

Meta's own documentation still presents those flags as the way to turn codeless debug logging on, and the Android reference linked at the end of this page is where it says so. On this point the documentation is behind the SDK that actually ships. Read the source, not the doc.

Meta's documentation for codeless events does not line up with the shipping SDK in the other direction either. It gives the iOS requirement as Full SDK v4.34 to v7.1.1, an upper bound, naming the umbrella SDK rather than the component pods that replaced it, and it adds that the feature is not available for v8.0.0 or later. Read literally, that excludes the 18.x SDK this plugin ships. FBSDKCodelessIndexer is still in FBSDKCoreKit today, so the documentation and the SDK disagree with each other. We would rather show you that disagreement than quote the half of Meta's docs that suits us. So neither the warning nor that version range decides whether codeless setup is available to your app: the server-side gate above does, and Meta's documented range is stale in both directions, asking for a floor from the 4.x era and stopping at a ceiling the shipping SDK passed long ago.

The debug switch that does work

The plugin exposes setDebugLoggingEnabled(bool), which turns on verbose Facebook SDK logging for app events and network requests. It is symmetric across platforms: on Android it calls FacebookSdk.setIsDebugEnabled, on iOS it enables the app events and network request logging behaviors, and passing false reverses both. That makes it the one debug switch on this page that changes what the SDK does, and it is worth having on while you work through this. It does not turn on codeless logging: the plugin has no Dart API for that.

Test on a physical device

Test on a real phone. Install a debug build, open the app, and shake the device: that gesture is what opens the tool, and Meta's instruction for it is simply to shake your phone. A physical device is the reliable way to get an answer you can act on.

If the tool does not open on a physical device, the warning is still not the reason. Work through the checklist below, starting with the identifiers and the app you have open in Events Manager. And keep the previous section in mind: the codeless path is armed by Meta's app settings, so an app that Meta has not enabled codeless setup for will not show the tool however carefully it is configured.

If your events are not arriving at all

A cosmetic warning and missing events are two different problems. If nothing at all is reaching Events Manager, the causes are elsewhere: client token, Graph API version, settings that suppress events. Work through Facebook App Events not showing up in Events Manager instead.

Verify your setup

  • iOS: FacebookAppID, FacebookClientToken and FacebookDisplayName are all set in Info.plist
  • Android: facebook_app_id and facebook_client_token are in strings.xml and referenced as meta-data in AndroidManifest.xml
  • You have tested on a physical device
  • setDebugLoggingEnabled(true) is on, and the device log shows the SDK logging app events and network requests
  • Your app id in the plugin matches the app you have open in Events Manager

Meta's reference documentation

Plugin API reference

Still stuck?

It is a plugin defect

If the plugin is doing something the native Facebook SDK does not, that is our bug. Open an issue and we fix it. Free, always, no conditions.

Open a GitHub issue

It is a usage question

Configuration and integration questions are best asked where other developers can find the answer later.

Ask on StackOverflow

Your numbers are wrong and money is moving

If Meta install campaigns are spending and the attribution does not add up, that is a different problem from a broken build. One hour, 300 USD, credited against the audit if you go ahead.

See the diagnostic and audit

Related guides

Google Cloud Partner

Tell Us About Your Project