Skip to content

[firebase_auth]: iOS plugin can't compile under APPLICATION_EXTENSION_API_ONLY=YES - blocks use in app #18232

@REX2626

Description

@REX2626

Is there an existing issue for this?

  • I have searched the existing issues.

Which plugins are affected?

Auth

Which platforms are affected?

iOS

Description

When firebase_auth's iOS plugin is built for an app extension target (e.g. a Share Extension), Xcode rejects it with:

'addApplicationDelegate:' is unavailable: not available on iOS (App Extension)
.../firebase_auth/Sources/firebase_auth/FLTFirebaseAuthPlugin.m:155

'sharedApplication' is unavailable: not available on iOS (App Extension)
.../firebase_auth/Sources/firebase_auth/FLTFirebaseAuthPlugin.m:903
.../firebase_auth/Sources/firebase_auth/FLTFirebaseAuthPlugin.m:913
.../firebase_auth/Sources/firebase_auth/FLTFirebaseAuthPlugin.m:925

All four call sites support OAuth callback / scene-key-window paths that are never exercised in extensions (extensions can't trigger sign-in flows; the user is already signed in via the host app via shared keychain group).

Workaround: setting APPLICATION_EXTENSION_API_ONLY = NO on firebase_auth's pod target via a Podfile post_install hook lets it compile, but the resulting extension binary contains references to forbidden APIs and may be flagged by App Store review.

Proper fix: wrap those four lines in #if !TARGET_OS_EXTENSION so the plugin compiles cleanly under the extension API constraint.

Reproducing the issue

Add an iOS app extension target (e.g. Share Extension) that runs its own Flutter engine and registers firebase_auth via FLTFirebaseAuthPlugin.register(with:). Build with flutter build ipa --release.

Firebase Core version

4.7.0

Flutter Version

3.41.7

Relevant Log Output

Flutter dependencies

Expand Flutter dependencies snippet
Dart SDK 3.11.5
Flutter SDK 3.41.7
relay_app 1.2.43

dependencies:
- app_links 7.0.0 [flutter app_links_linux app_links_platform_interface app_links_web]
- cached_network_image 3.4.1 [cached_network_image_platform_interface cached_network_image_web flutter flutter_cache_manager octo_image]
- camera 0.12.0+1 [camera_android_camerax camera_avfoundation camera_platform_interface camera_web flutter flutter_plugin_android_lifecycle]
- cloud_firestore 6.3.0 [cloud_firestore_platform_interface cloud_firestore_web collection firebase_core firebase_core_platform_interface flutter meta]
- cloud_functions 6.2.0 [cloud_functions_platform_interface cloud_functions_web firebase_core firebase_core_platform_interface flutter]
- device_info_plus 13.1.0 [device_info_plus_platform_interface ffi file flutter flutter_web_plugins meta web win32 win32_registry]
- dotted_border 3.1.0 [flutter]
- emoji_picker_flutter 4.4.0 [flutter flutter_web_plugins plugin_platform_interface shared_preferences web]
- exif 3.3.0 [args collection convert json_annotation sprintf]
- firebase_analytics 12.3.0 [firebase_analytics_platform_interface firebase_analytics_web firebase_core firebase_core_platform_interface flutter]
- firebase_app_check 0.4.3 [firebase_app_check_platform_interface firebase_app_check_web firebase_core firebase_core_platform_interface flutter]
- firebase_auth 6.4.0 [firebase_auth_platform_interface firebase_auth_web firebase_core firebase_core_platform_interface flutter meta]
- firebase_core 4.7.0 [firebase_core_platform_interface firebase_core_web flutter meta]
- firebase_crashlytics 5.2.0 [firebase_core firebase_core_platform_interface firebase_crashlytics_platform_interface flutter stack_trace]
- firebase_messaging 16.2.0 [firebase_core firebase_core_platform_interface firebase_messaging_platform_interface firebase_messaging_web flutter meta]
- firebase_storage 13.3.0 [firebase_core firebase_core_platform_interface firebase_storage_platform_interface firebase_storage_web flutter mime]
- flutter 0.0.0 [characters collection material_color_utilities meta vector_math sky_engine]
- flutter_cache_manager 3.4.1 [clock collection file flutter http path path_provider rxdart sqflite uuid]
- flutter_image_compress 2.4.0 [flutter flutter_image_compress_platform_interface flutter_image_compress_common flutter_image_compress_web flutter_image_compress_macos flutter_image_compress_ohos]
- flutter_local_notifications 21.0.0 [clock flutter flutter_local_notifications_linux flutter_local_notifications_windows flutter_local_notifications_platform_interface timezone]
- flutter_native_splash 2.4.7 [args flutter flutter_web_plugins html image meta path universal_io xml yaml ansicolor]
- gal 2.3.2 [flutter]
- google_sign_in 7.2.0 [flutter google_sign_in_android google_sign_in_ios google_sign_in_platform_interface google_sign_in_web]
- image_editor 1.6.0 [flutter image_editor_platform_interface image_editor_common image_editor_ohos]
- image_picker 1.2.1 [flutter image_picker_android image_picker_for_web image_picker_ios image_picker_linux image_picker_macos image_picker_platform_interface image_picker_windows]
- intl 0.20.2 [clock meta path]
- permission_handler 12.0.1 [flutter meta permission_handler_android permission_handler_apple permission_handler_html permission_handler_windows permission_handler_platform_interface]
- photo_manager 3.9.0 [flutter path]
- provider 6.1.5+1 [collection flutter nested]
- qr_flutter 4.1.0 [flutter qr]
- scrollable_positioned_list 0.3.8 [flutter collection]
- share_plus 13.1.0 [cross_file meta mime flutter flutter_web_plugins share_plus_platform_interface file url_launcher_web url_launcher_windows url_launcher_linux url_launcher_platform_interface ffi web win32]
- shared_preferences 2.5.5 [flutter shared_preferences_android shared_preferences_foundation shared_preferences_linux shared_preferences_platform_interface shared_preferences_web shared_preferences_windows]
- shimmer 3.0.0 [flutter]
- url_launcher 6.3.2 [flutter url_launcher_android url_launcher_ios url_launcher_linux url_launcher_macos url_launcher_platform_interface url_launcher_web url_launcher_windows]

dev dependencies:
- flutter_launcher_icons 0.14.4 [args checked_yaml cli_util image json_annotation path yaml]
- flutter_lints 6.0.0 [lints]
- flutter_test 0.0.0 [flutter test_api matcher path fake_async clock stack_trace vector_math leak_tracker_flutter_testing collection meta stream_channel]

transitive dependencies:
- _flutterfire_internals 1.3.69 [collection firebase_core firebase_core_platform_interface flutter meta]
- ansicolor 2.0.3
- app_links_linux 1.0.3 [flutter app_links_platform_interface gtk]
- app_links_platform_interface 2.0.2 [flutter plugin_platform_interface]
- app_links_web 1.0.4 [flutter flutter_web_plugins app_links_platform_interface web]
- archive 4.0.9 [path posix]
- args 2.7.0
- async 2.13.1 [collection meta]
- boolean_selector 2.1.2 [source_span string_scanner]
- cached_network_image_platform_interface 4.1.1 [flutter flutter_cache_manager]
- cached_network_image_web 1.3.1 [cached_network_image_platform_interface flutter flutter_cache_manager web]
- camera_android_camerax 0.7.2 [async camera_platform_interface flutter meta stream_transform]
- camera_avfoundation 0.10.1 [camera_platform_interface flutter stream_transform]
- camera_platform_interface 2.13.0 [cross_file flutter plugin_platform_interface stream_transform]
- camera_web 0.3.5+3 [camera_platform_interface flutter flutter_web_plugins stream_transform web]
- characters 1.4.1
- checked_yaml 2.0.4 [json_annotation source_span yaml]
- cli_util 0.4.2 [meta path]
- clock 1.1.2
- cloud_firestore_platform_interface 7.2.0 [_flutterfire_internals collection firebase_core flutter meta plugin_platform_interface]
- cloud_firestore_web 5.3.0 [_flutterfire_internals cloud_firestore_platform_interface collection firebase_core firebase_core_web flutter flutter_web_plugins]
- cloud_functions_platform_interface 5.8.12 [firebase_core flutter meta plugin_platform_interface]
- cloud_functions_web 5.1.5 [cloud_functions_platform_interface firebase_core firebase_core_web flutter flutter_web_plugins web]
- code_assets 1.0.0 [collection hooks]
- collection 1.19.1
- convert 3.1.2 [typed_data]
- cross_file 0.3.5+2 [meta web]
- crypto 3.0.7 [typed_data]
- csslib 1.0.2 [source_span]
- dbus 0.7.12 [args ffi meta xml]
- device_info_plus_platform_interface 8.1.0 [flutter meta plugin_platform_interface]
- fake_async 1.3.3 [clock collection]
- ffi 2.2.0
- ffi_leak_tracker 0.1.2 [ffi]
- file 7.0.1 [meta path]
- file_selector_linux 0.9.4 [cross_file file_selector_platform_interface flutter]
- file_selector_macos 0.9.5 [cross_file file_selector_platform_interface flutter]
- file_selector_platform_interface 2.7.0 [cross_file flutter http plugin_platform_interface]
- file_selector_windows 0.9.3+5 [cross_file file_selector_platform_interface flutter]
- firebase_analytics_platform_interface 5.1.1 [_flutterfire_internals firebase_core flutter meta plugin_platform_interface]
- firebase_analytics_web 0.6.1+5 [_flutterfire_internals firebase_analytics_platform_interface firebase_core firebase_core_web flutter flutter_web_plugins]
- firebase_app_check_platform_interface 0.3.0 [_flutterfire_internals firebase_core flutter meta plugin_platform_interface]
- firebase_app_check_web 0.2.4 [_flutterfire_internals firebase_app_check_platform_interface firebase_core firebase_core_web flutter flutter_web_plugins web]
- firebase_auth_platform_interface 8.1.9 [_flutterfire_internals collection firebase_core flutter http meta plugin_platform_interface]
- firebase_auth_web 6.1.5 [firebase_auth_platform_interface firebase_core firebase_core_web flutter flutter_web_plugins http_parser meta web]
- firebase_core_platform_interface 6.0.3 [collection flutter flutter_test meta plugin_platform_interface]
- firebase_core_web 3.6.0 [firebase_core_platform_interface flutter flutter_web_plugins meta web]
- firebase_crashlytics_platform_interface 3.8.20 [_flutterfire_internals collection firebase_core flutter meta plugin_platform_interface]
- firebase_messaging_platform_interface 4.7.9 [_flutterfire_internals firebase_core flutter meta plugin_platform_interface]
- firebase_messaging_web 4.1.5 [_flutterfire_internals firebase_core firebase_core_web firebase_messaging_platform_interface flutter flutter_web_plugins meta web]
- firebase_storage_platform_interface 5.2.20 [_flutterfire_internals collection firebase_core flutter meta plugin_platform_interface]
- firebase_storage_web 3.11.5 [_flutterfire_internals async firebase_core firebase_core_web firebase_storage_platform_interface flutter flutter_web_plugins http meta web]
- fixnum 1.1.1
- flutter_image_compress_common 1.0.6 [flutter flutter_image_compress_platform_interface]
- flutter_image_compress_macos 1.0.3 [flutter flutter_image_compress_platform_interface]
- flutter_image_compress_ohos 0.0.3 [flutter flutter_image_compress_platform_interface]
- flutter_image_compress_platform_interface 1.0.5 [flutter plugin_platform_interface cross_file]
- flutter_image_compress_web 0.1.5 [flutter flutter_web_plugins flutter_image_compress_platform_interface web]
- flutter_local_notifications_linux 8.0.0 [dbus ffi flutter flutter_local_notifications_platform_interface path xdg_directories]
- flutter_local_notifications_platform_interface 11.0.0 [plugin_platform_interface]
- flutter_local_notifications_windows 3.0.0 [flutter ffi flutter_local_notifications_platform_interface meta timezone xml]
- flutter_plugin_android_lifecycle 2.0.34 [flutter]
- flutter_web_plugins 0.0.0 [flutter]
- glob 2.1.3 [async collection file path string_scanner]
- google_identity_services_web 0.3.3+1 [meta web]
- google_sign_in_android 7.2.10 [flutter google_sign_in_platform_interface]
- google_sign_in_ios 6.3.0 [flutter google_sign_in_platform_interface]
- google_sign_in_platform_interface 3.1.0 [flutter plugin_platform_interface]
- google_sign_in_web 1.1.3 [flutter flutter_web_plugins google_identity_services_web google_sign_in_platform_interface http web]
- gtk 2.1.0 [ffi flutter meta]
- hooks 1.0.3 [collection crypto logging meta pub_semver record_use yaml]
- html 0.15.6 [csslib source_span]
- http 1.6.0 [async http_parser meta web]
- http_parser 4.1.2 [collection source_span string_scanner typed_data]
- image 4.8.0 [archive meta xml]
- image_editor_common 1.2.0 [flutter image_editor_platform_interface]
- image_editor_ohos 0.0.9 [flutter image_editor_platform_interface]
- image_editor_platform_interface 1.1.0 [flutter platform plugin_platform_interface]
- image_picker_android 0.8.13+16 [flutter flutter_plugin_android_lifecycle image_picker_platform_interface]
- image_picker_for_web 3.1.1 [flutter flutter_web_plugins image_picker_platform_interface mime web]
- image_picker_ios 0.8.13+6 [flutter image_picker_platform_interface]
- image_picker_linux 0.2.2 [file_selector_linux file_selector_platform_interface flutter image_picker_platform_interface]
- image_picker_macos 0.2.2+1 [file_selector_macos file_selector_platform_interface flutter image_picker_platform_interface]
- image_picker_platform_interface 2.11.1 [cross_file flutter http plugin_platform_interface]
- image_picker_windows 0.2.2 [file_selector_platform_interface file_selector_windows flutter image_picker_platform_interface]
- jni 1.0.0 [args collection ffi meta package_config path plugin_platform_interface]
- jni_flutter 1.0.1 [flutter jni]
- json_annotation 4.11.0 [meta]
- leak_tracker 11.0.2 [clock collection meta path vm_service]
- leak_tracker_flutter_testing 3.0.10 [flutter leak_tracker leak_tracker_testing matcher meta]
- leak_tracker_testing 3.0.2 [leak_tracker matcher meta]
- lints 6.1.0
- logging 1.3.0
- matcher 0.12.19 [async meta stack_trace term_glyph test_api]
- material_color_utilities 0.13.0 [collection]
- meta 1.17.0
- mime 2.0.0
- native_toolchain_c 0.17.6 [code_assets glob hooks logging meta pub_semver]
- nested 1.0.0 [flutter]
- objective_c 9.3.0 [code_assets collection ffi hooks logging native_toolchain_c pub_semver]
- octo_image 2.1.0 [flutter]
- package_config 2.2.0 [path]
- path 1.9.1
- path_provider 2.1.5 [flutter path_provider_android path_provider_foundation path_provider_linux path_provider_platform_interface path_provider_windows]
- path_provider_android 2.3.1 [flutter jni jni_flutter path_provider_platform_interface]
- path_provider_foundation 2.6.0 [ffi flutter objective_c path_provider_platform_interface]
- path_provider_linux 2.2.1 [ffi flutter path path_provider_platform_interface xdg_directories]
- path_provider_platform_interface 2.1.2 [flutter platform plugin_platform_interface]
- path_provider_windows 2.3.0 [ffi flutter path path_provider_platform_interface]
- permission_handler_android 13.0.1 [flutter permission_handler_platform_interface]
- permission_handler_apple 9.4.7 [flutter permission_handler_platform_interface]
- permission_handler_html 0.1.3+5 [flutter flutter_web_plugins permission_handler_platform_interface web]
- permission_handler_platform_interface 4.3.0 [flutter meta plugin_platform_interface]
- permission_handler_windows 0.2.1 [flutter permission_handler_platform_interface]
- petitparser 7.0.2 [meta collection]
- platform 3.1.6
- plugin_platform_interface 2.1.8 [meta]
- posix 6.5.0 [ffi meta path]
- pub_semver 2.2.0 [collection]
- qr 3.0.2 [meta]
- record_use 0.6.0 [collection meta pub_semver]
- rxdart 0.28.0
- share_plus_platform_interface 7.1.0 [cross_file flutter meta mime plugin_platform_interface path_provider uuid]
- shared_preferences_android 2.4.23 [flutter shared_preferences_platform_interface]
- shared_preferences_foundation 2.5.6 [flutter shared_preferences_platform_interface]
- shared_preferences_linux 2.4.1 [file flutter path path_provider_linux path_provider_platform_interface shared_preferences_platform_interface]
- shared_preferences_platform_interface 2.4.2 [flutter plugin_platform_interface]
- shared_preferences_web 2.4.3 [flutter flutter_web_plugins shared_preferences_platform_interface web]
- shared_preferences_windows 2.4.1 [file flutter path path_provider_platform_interface path_provider_windows shared_preferences_platform_interface]
- sky_engine 0.0.0
- source_span 1.10.2 [collection path term_glyph]
- sprintf 7.0.0
- sqflite 2.4.2+1 [flutter sqflite_android sqflite_darwin sqflite_platform_interface sqflite_common path]
- sqflite_android 2.4.2+3 [flutter sqflite_common path sqflite_platform_interface]
- sqflite_common 2.5.6+1 [synchronized path meta]
- sqflite_darwin 2.4.2 [flutter sqflite_platform_interface meta sqflite_common path]
- sqflite_platform_interface 2.4.0 [flutter platform sqflite_common plugin_platform_interface meta]
- stack_trace 1.12.1 [path]
- stream_channel 2.1.4 [async]
- stream_transform 2.1.1
- string_scanner 1.4.1 [source_span]
- synchronized 3.4.0+1
- term_glyph 1.2.2
- test_api 0.7.10 [async boolean_selector collection meta source_span stack_trace stream_channel string_scanner term_glyph]
- timezone 0.11.0 [http path]
- typed_data 1.4.0 [collection]
- universal_io 2.3.1 [collection meta typed_data]
- url_launcher_android 6.3.29 [flutter url_launcher_platform_interface]
- url_launcher_ios 6.4.1 [flutter url_launcher_platform_interface]
- url_launcher_linux 3.2.2 [flutter url_launcher_platform_interface]
- url_launcher_macos 3.2.5 [flutter url_launcher_platform_interface]
- url_launcher_platform_interface 2.3.2 [flutter plugin_platform_interface]
- url_launcher_web 2.4.2 [flutter flutter_web_plugins url_launcher_platform_interface web]
- url_launcher_windows 3.1.5 [flutter url_launcher_platform_interface]
- uuid 4.5.3 [crypto fixnum]
- vector_math 2.2.0
- vm_service 15.1.0
- web 1.1.1
- win32 6.1.0 [code_assets crypto ffi ffi_leak_tracker hooks logging meta native_toolchain_c]
- win32_registry 3.0.3 [collection ffi ffi_leak_tracker meta win32]
- xdg_directories 1.1.0 [meta path]
- xml 6.6.1 [collection meta petitparser]
- yaml 3.1.3 [collection source_span string_scanner]

Additional context and comments

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    blocked: customer-responseWaiting for customer response, e.g. more information was requested.platform: iosIssues / PRs which are specifically for iOS.plugin: authtype: bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions