sarbagyastha / youtube_player_flutter

A Flutter plugin for inline playback or streaming of YouTube videos using the official iFrame Player API.
https://youtube.sarbagyastha.com.np
BSD 3-Clause "New" or "Revised" License
692 stars 785 forks source link

[BUG] Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Duplicate plugin key: InAppWebViewFlutterPlugin' #708

Open gi-nam-dev opened 1 year ago

gi-nam-dev commented 1 year ago

Describe the bug "InAppWebViewFlutterPlugin" is duplicated on GeneratedPluginRegistrant.m file. I don't know which package is causing it but I think it is youtube_player_flutter.

To Reproduce Steps to reproduce the behavior: I dunno how I can reproduce this step. I didn't have this problem before and suddenly I am getting one after updating to iOS16

Expected behavior A clear and concise description of what you expected to happen.

Screenshots If applicable, add screenshots to help explain your problem.

Technical Details:

Additional context Add any other context about the problem here.

dependencies:
  flutter:
    sdk: flutter
  basic_utils: ^4.2.2
  cloud_functions: ^3.2.16
  cached_network_image: ^3.2.1
  email_validator: ^2.0.1
  easy_sidemenu: ^0.3.1
  fab_circular_menu: ^1.0.2
  firebase_core: ^1.17.1
  firebase_auth: ^3.6.4
  firebase_image: ^1.1.1
  flutter_native_splash: ^2.2.3+1
  flutter_datetime_picker: ^1.5.1
  flutter_rating_bar: ^4.0.1
  flutter_quill: ^5.0.3
  flutter_typeahead: ^4.0.0
  font_awesome_flutter: ^10.1.0
  fade_shimmer: ^2.0.1
  get: ^4.6.5
  get_storage: ^2.0.3
  geocoding: ^2.0.4
  google_fonts: ^2.3.1
  group_button: ^5.0.1
  hive: ^2.2.2
  hive_flutter: ^1.1.0
  hive_generator: ^1.1.3
  intl: ^0.17.0
  json_annotation: ^4.5.0
  lazy_load_scrollview: 1.3.0
  liquid_pull_to_refresh: ^3.0.1
  youtube_player_flutter: ^8.1.0
  path_provider: ^2.0.11
  pull_to_refresh: ^2.0.0
  recase: ^4.0.0
  random_string: ^2.3.1
  responsive_grid: ^2.1.0
  smooth_page_indicator: ^1.0.0+2
  shimmer_animation: ^2.1.0+1
  shimmer: ^2.0.0
  string_validator: ^0.3.0
  transparent_image: ^2.0.0
  url_launcher: ^6.1.4
  validators: ^3.0.0
  webview_flutter: ^3.0.4

//
//  Generated file. Do not edit.
//

// clang-format off

#import "GeneratedPluginRegistrant.h"

#if __has_include(<cloud_functions/FLTFirebaseFunctionsPlugin.h>)
#import <cloud_functions/FLTFirebaseFunctionsPlugin.h>
#else
@import cloud_functions;
#endif

#if __has_include(<device_info_plus/FLTDeviceInfoPlusPlugin.h>)
#import <device_info_plus/FLTDeviceInfoPlusPlugin.h>
#else
@import device_info_plus;
#endif

#if __has_include(<firebase_auth/FLTFirebaseAuthPlugin.h>)
#import <firebase_auth/FLTFirebaseAuthPlugin.h>
#else
@import firebase_auth;
#endif

#if __has_include(<firebase_core/FLTFirebaseCorePlugin.h>)
#import <firebase_core/FLTFirebaseCorePlugin.h>
#else
@import firebase_core;
#endif

#if __has_include(<firebase_storage/FLTFirebaseStoragePlugin.h>)
#import <firebase_storage/FLTFirebaseStoragePlugin.h>
#else
@import firebase_storage;
#endif

**_#if __has_include(<flutter_inappwebview/InAppWebViewFlutterPlugin.h>)
#import <flutter_inappwebview/InAppWebViewFlutterPlugin.h>
#else
@import flutter_inappwebview;
#endif

#if __has_include(<flutter_inappwebview_quill/InAppWebViewFlutterPlugin.h>)
#import <flutter_inappwebview_quill/InAppWebViewFlutterPlugin.h>
#else
@import flutter_inappwebview_quill;
#endif_**

#if __has_include(<flutter_keyboard_visibility/FlutterKeyboardVisibilityPlugin.h>)
#import <flutter_keyboard_visibility/FlutterKeyboardVisibilityPlugin.h>
#else
@import flutter_keyboard_visibility;
#endif

#if __has_include(<flutter_native_splash/FlutterNativeSplashPlugin.h>)
#import <flutter_native_splash/FlutterNativeSplashPlugin.h>
#else
@import flutter_native_splash;
#endif

#if __has_include(<gallery_saver/GallerySaverPlugin.h>)
#import <gallery_saver/GallerySaverPlugin.h>
#else
@import gallery_saver;
#endif

#if __has_include(<geocoding/GeocodingPlugin.h>)
#import <geocoding/GeocodingPlugin.h>
#else
@import geocoding;
#endif

#if __has_include(<image_picker_ios/FLTImagePickerPlugin.h>)
#import <image_picker_ios/FLTImagePickerPlugin.h>
#else
@import image_picker_ios;
#endif

#if __has_include(<path_provider_ios/FLTPathProviderPlugin.h>)
#import <path_provider_ios/FLTPathProviderPlugin.h>
#else
@import path_provider_ios;
#endif

#if __has_include(<sqflite/SqflitePlugin.h>)
#import <sqflite/SqflitePlugin.h>
#else
@import sqflite;
#endif

#if __has_include(<url_launcher_ios/FLTURLLauncherPlugin.h>)
#import <url_launcher_ios/FLTURLLauncherPlugin.h>
#else
@import url_launcher_ios;
#endif

#if __has_include(<video_player_avfoundation/FLTVideoPlayerPlugin.h>)
#import <video_player_avfoundation/FLTVideoPlayerPlugin.h>
#else
@import video_player_avfoundation;
#endif

#if __has_include(<webview_flutter_wkwebview/FLTWebViewFlutterPlugin.h>)
#import <webview_flutter_wkwebview/FLTWebViewFlutterPlugin.h>
#else
@import webview_flutter_wkwebview;
#endif

@implementation GeneratedPluginRegistrant

+ (void)registerWithRegistry:(NSObject<FlutterPluginRegistry>*)registry {
  [FLTFirebaseFunctionsPlugin registerWithRegistrar:[registry registrarForPlugin:@"FLTFirebaseFunctionsPlugin"]];
  [FLTDeviceInfoPlusPlugin registerWithRegistrar:[registry registrarForPlugin:@"FLTDeviceInfoPlusPlugin"]];
  [FLTFirebaseAuthPlugin registerWithRegistrar:[registry registrarForPlugin:@"FLTFirebaseAuthPlugin"]];
  [FLTFirebaseCorePlugin registerWithRegistrar:[registry registrarForPlugin:@"FLTFirebaseCorePlugin"]];
  [FLTFirebaseStoragePlugin registerWithRegistrar:[registry registrarForPlugin:@"FLTFirebaseStoragePlugin"]];
  **_[InAppWebViewFlutterPlugin registerWithRegistrar:[registry registrarForPlugin:@"InAppWebViewFlutterPlugin"]];
  [InAppWebViewFlutterPlugin registerWithRegistrar:[registry registrarForPlugin:@"InAppWebViewFlutterPlugin"]];_**
  [FlutterKeyboardVisibilityPlugin registerWithRegistrar:[registry registrarForPlugin:@"FlutterKeyboardVisibilityPlugin"]];
  [FlutterNativeSplashPlugin registerWithRegistrar:[registry registrarForPlugin:@"FlutterNativeSplashPlugin"]];
  [GallerySaverPlugin registerWithRegistrar:[registry registrarForPlugin:@"GallerySaverPlugin"]];
  [GeocodingPlugin registerWithRegistrar:[registry registrarForPlugin:@"GeocodingPlugin"]];
  [FLTImagePickerPlugin registerWithRegistrar:[registry registrarForPlugin:@"FLTImagePickerPlugin"]];
  [FLTPathProviderPlugin registerWithRegistrar:[registry registrarForPlugin:@"FLTPathProviderPlugin"]];
  [SqflitePlugin registerWithRegistrar:[registry registrarForPlugin:@"SqflitePlugin"]];
  [FLTURLLauncherPlugin registerWithRegistrar:[registry registrarForPlugin:@"FLTURLLauncherPlugin"]];
  [FLTVideoPlayerPlugin registerWithRegistrar:[registry registrarForPlugin:@"FLTVideoPlayerPlugin"]];
  [FLTWebViewFlutterPlugin registerWithRegistrar:[registry registrarForPlugin:@"FLTWebViewFlutterPlugin"]];
}

@end

2022-09-21 15:07:12.442354+0900 Runner[19377:837637] Metal API Validation Enabled
2022-09-21 15:07:12.502712+0900 Runner[19377:837866] 9.5.0 - [FirebaseCore][I-COR000005] No app has been configured yet.
2022-09-21 15:07:12.509196+0900 Runner[19377:837929] flutter: The Dart VM service is listening on http://127.0.0.1:57239/3-432K8i83k=/
2022-09-21 15:07:12.525159+0900 Runner[19377:837637] *** Assertion failure in -[FlutterEngine registrarForPlugin:], FlutterEngine.mm:1155
2022-09-21 15:07:12.540218+0900 Runner[19377:837637] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Duplicate plugin key: InAppWebViewFlutterPlugin'
*** First throw call stack:
(
    0   CoreFoundation                      0x000000018040c304 __exceptionPreprocess + 172
    1   libobjc.A.dylib                     0x000000018005131c objc_exception_throw + 56
    2   Foundation                          0x0000000180b11f88 _userInfoForFileAndLine + 0
    3   Flutter                             0x0000000108b74ec4 -[FlutterEngine registrarForPlugin:] + 284
    4   Runner                              0x00000001042e84c8 +[GeneratedPluginRegistrant registerWithRegistry:] + 500
    5   Runner                              0x00000001042e8810 $s6Runner11AppDelegateC11application_29didFinishLaunchingWithOptionsSbSo13UIApplicationC_SDySo0j6LaunchI3KeyaypGSgtF + 96
    6   Runner                              0x00000001042e8ad8 $s6Runner11AppDelegateC11application_29didFinishLaunchingWithOptionsSbSo13UIApplicationC_SDySo0j6LaunchI3KeyaypGSgtFTo + 188
    7   UIKitCore                           0x00000001120a9810 -[UIApplication _handleDelegateCallbacksWithOptions:isSuspended:restoreState:] + 292
    8   UIKitCore                           0x00000001120aac70 -[UIApplication _callInitializationDelegatesWithActions:forCanvas:payload:fromOriginatingProcess:] + 2776
    9   UIKitCore                           0x00000001120af7e8 -[UIApplication _runWithMainScene:transitionContext:completion:] + 856
    10  UIKitCore                           0x000000011181fb48 -[_UISceneLifecycleMultiplexer completeApplicationLaunchWithFBSScene:transitionContext:] + 104
    11  UIKitCore                           0x0000000111ce0258 _UIScenePerformActionsWithLifecycleActionMask + 92
    12  UIKitCore                           0x00000001118203e0 __101-[_UISceneLifecycleMultiplexer _evalTransitionToSettings:fromSettings:forceExit:withTransitionStore:]_block_invoke + 188
    13  UIKitCore                           0x000000011181ff48 -[_UISceneLifecycleMultiplexer _performBlock:withApplicationOfDeactivationReasons:fromReasons:] + 212
    14  UIKitCore                           0x0000000111820238 -[_UISceneLifecycleMultiplexer _evalTransitionToSettings:fromSettings:forceExit:withTransitionStore:] + 588
    15  UIKitCore                           0x000000011181fca8 -[_UISceneLifecycleMultiplexer uiScene:transitionedFromState:withTransitionContext:] + 248
    16  UIKitCore                           0x000000011182b00c __186-[_UIWindowSceneFBSSceneTransitionContextDrivenLifecycleSettingsDiffAction _performActionsForUIScene:withUpdatedFBSScene:settingsDiff:fromSettings:transitionContext:lifecycleActionType:]_block_invoke + 140
    17  UIKitCore                           0x0000000111bfa274 +[BSAnimationSettings(UIKit) tryAnimatingWithSettings:fromCurrentState:actions:completion:] + 656
    18  UIKitCore                           0x0000000111cf5fec _UISceneSettingsDiffActionPerformChangesWithTransitionContextAndCompletion + 196
    19  UIKitCore                           0x000000011182ad18 -[_UIWindowSceneFBSSceneTransitionContextDrivenLifecycleSettingsDiffAction _performActionsForUIScene:withUpdatedFBSScene:settingsDiff:fromSettings:transitionContext:lifecycleActionType:] + 288
    20  UIKitCore                           0x00000001116983c4 __64-[UIScene scene:didUpdateWithDiff:transitionContext:completion:]_block_invoke.190 + 552
    21  UIKitCore                           0x00000001116971c8 -[UIScene _emitSceneSettingsUpdateResponseForCompletion:afterSceneUpdateWork:] + 208
    22  UIKitCore                           0x0000000111698080 -[UIScene scene:didUpdateWithDiff:transitionContext:completion:] + 220
    23  UIKitCore                           0x00000001120ae4f8 -[UIApplication workspace:didCreateScene:withTransitionContext:completion:] + 496
    24  UIKitCore                           0x0000000111c1fc48 -[UIApplicationSceneClientAgent scene:didInitializeWithEvent:completion:] + 260
    25  FrontBoardServices                  0x0000000184ea46b4 -[FBSScene _callOutQueue_agent_didCreateWithTransitionContext:completion:] + 316
    26  FrontBoardServices                  0x0000000184eca3b0 __92-[FBSWorkspaceScenesClient createSceneWithIdentity:parameters:transitionContext:completion:]_block_invoke.59 + 92
    27  FrontBoardServices                  0x0000000184eb019c -[FBSWorkspace _calloutQueue_executeCalloutFromSource:withBlock:] + 160
    28  FrontBoardServices                  0x0000000184eca038 __92-[FBSWorkspaceScenesClient createSceneWithIdentity:parameters:transitionContext:completion:]_block_invoke + 296
    29  libdispatch.dylib                   0x0000000105675d5c _dispatch_client_callout + 16
    30  libdispatch.dylib                   0x0000000105679974 _dispatch_block_invoke_direct + 392
    31  FrontBoardServices                  0x0000000184ee9c90 __FBSSERIALQUEUE_IS_CALLING_OUT_TO_A_BLOCK__ + 44
    32  FrontBoardServices                  0x0000000184ee9b84 -[FBSSerialQueue _targetQueue_performNextIfPossible] + 176
    33  FrontBoardServices                  0x0000000184ee9cc4 -[FBSSerialQueue _performNextFromRunLoopSource] + 24
    34  CoreFoundation                      0x0000000180371070 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 24
    35  CoreFoundation                      0x0000000180370fb8 __CFRunLoopDoSource0 + 172
    36  CoreFoundation                      0x0000000180370728 __CFRunLoopDoSources0 + 232
    37  CoreFoundation                      0x000000018036ae68 __CFRunLoopRun + 756
    38  CoreFoundation                      0x000000018036a75c CFRunLoopRunSpecific + 584
    39  GraphicsServices                    0x0000000188f60c98 GSEventRunModal + 160
    40  UIKitCore                           0x00000001120acb74 -[UIApplication _run] + 868
    41  UIKitCore                           0x00000001120b0b1c UIApplicationMain + 124
    42  Runner                              0x00000001042e8c50 main + 64
    43  dyld                                0x000000010458dfa0 start_sim + 20
    44  ???                                 0x00000001046d508c 0x0 + 4369240204
    45  ???                                 0x3b08800000000000 0x0 + 4253790585539788800
)
libc++abi: terminating with uncaught exception of type NSException
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Duplicate plugin key: InAppWebViewFlutterPlugin'
CoreSimulator 857.7 - Device: iPhone 14 Pro Max (423911B9-2054-4818-9A34-3433D72B9C3F) - Runtime: iOS 16.0 (20A360) - DeviceType: iPhone 14 Pro Max
terminating with uncaught exception of type NSException
konnic commented 1 year ago

Same for me. From my analysis the origin of this issue lies with the forked package flutter_inappwebview_quill, which uses the exact same package name as the original flutter_inappwebview package.

@sarbagyastha could you explain why the dependency to flutter_inappwebview_quill was introduced? Would it also be possible to rely on flutter_inappwebview instead?

konnic commented 1 year ago

@sarbagyastha just saw that you're not the official author of youtube_player_flutter_quill, but that your package was forked as well. Would you know by any chance who the author of the fork is?

Update: nvm, found it: https://github.com/jisjoemathew91/youtube_player_flutter_quill

gi-nam-dev commented 1 year ago

I see. I took down the quill package. Can I use them both now?

konnic commented 1 year ago

I see. I took down the quill package. Can I use them both now?

I don't understand what you mean with "Can I use them both now?". I think you need to open up an issue in this repo: https://github.com/jisjoemathew91/youtube_player_flutter_quill