firebase / flutterfire

🔥 A collection of Firebase plugins for Flutter apps.
https://firebase.google.com/docs/flutter/setup
BSD 3-Clause "New" or "Revised" License
8.64k stars 3.95k forks source link

🐛 [firebase_dynamic_links] Can't open a link generated on Android to IOS and vis versa #4000

Closed loicgeek closed 3 years ago

loicgeek commented 3 years ago

Bug report

Describe the bug When I generate a link on Android app , if I share to IOS user the link is not recognized.

  Future<String> createCommodityLink(CommodityModel com) async {
    PackageInfo info = await PackageInfo.fromPlatform();
    Uri imageUri;
    if (com.gallery.isNotEmpty) {
      imageUri = Uri.parse(com.gallery.first.url);
    }
    final DynamicLinkParameters parameters = DynamicLinkParameters(
      uriPrefix: FlavorConfig.instance.values.firebaseDynamicLink,
      link: Uri.parse('https://www.chairwatch.com/commodities?commodity_id=${com.id}'),
      androidParameters: AndroidParameters(
        packageName: info.packageName,
      ),
      // NOT ALL ARE REQUIRED ===== HERE AS AN EXAMPLE =====
      iosParameters: IosParameters(
        bundleId: info.packageName,
        // minimumVersion: '1.0.1',
        appStoreId: Config.APPLE_APPSTORE_ID,
      ),
      // googleAnalyticsParameters: GoogleAnalyticsParameters(
      //   campaign: 'example-promo',
      //   medium: 'social',
      //   source: 'orkut',
      // ),
      // itunesConnectAnalyticsParameters: ItunesConnectAnalyticsParameters(
      //   providerToken: '123456',
      //   campaignToken: 'example-promo',
      // ),
      socialMetaTagParameters: SocialMetaTagParameters(
        title: com.name,
        imageUrl: imageUri,
        description:
            "${com.description} ${com.addons?.map((e) => e.name)?.join(',')}",
      ),
    );

    final ShortDynamicLink shortenedLink = await parameters.buildShortLink();
    return shortenedLink.shortUrl.toString();
  }

Steps to reproduce

Configure firebase deep link

Expected behavior

Open the app whatever platform we share the link on.


Additional context

Add any other context about the problem here.


Flutter doctor

Run flutter doctor and paste the output below:

Click To Expand ``` [√] Flutter (Channel stable, 1.22.1, on Microsoft Windows [Version 10.0.18363.1139], locale en-US) • Flutter version 1.22.1 at D:\src\flutter • Framework revision f30b7f4db9 (3 weeks ago), 2020-10-08 10:06:30 -0700 • Engine revision 75bef9f6c8 • Dart version 2.10.1 [√] Android toolchain - develop for Android devices (Android SDK version 29.0.3) • Android SDK at C:\Users\loicngou\AppData\Local\Android\sdk • Platform android-30, build-tools 29.0.3 • Java binary at: D:\setups\android-studio\jre\bin\java • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01) • All Android licenses accepted. [√] Android Studio (version 4.0) • Android Studio at D:\setups\android-studio • Flutter plugin version 47.1.2 • Dart plugin version 193.7361 • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01) [√] Connected device (1 available) • Redmi Note 9 Pro (mobile) • 7144d1f4 • android-arm64 • Android 10 (API 29) • No issues found! ```

Flutter dependencies

Run flutter pub deps -- --style=compact and paste the output below:

Click To Expand ``` Dart SDK 2.10.1 Flutter SDK 1.22.1 chairwatch_flutter 2.0.0+19 dependencies: - advance_pdf_viewer 1.2.0 [flutter flutter_cache_manager path_provider numberpicker] - animations 1.1.2 [flutter] - assets_audio_player 2.0.10 [flutter rxdart uuid http path_provider assets_audio_player_web] - assorted_layout_widgets 2.0.0 [matrix4_transform flutter] - awesome_card 1.1.0 [flutter] - bloc 6.1.0 [meta] - cached_network_image 2.3.3 [flutter flutter_cache_manager octo_image] - carousel_slider 2.3.1 [flutter] - charts_flutter 0.9.0 [charts_common collection flutter intl logging meta] - connectivity 0.4.9+5 [flutter meta connectivity_platform_interface connectivity_macos connectivity_for_web] - crypto 2.1.5 [collection convert typed_data] - cupertino_icons 0.1.3 - datetime_picker_formfield 1.0.0 [flutter intl] - device_calendar 3.2.0 [flutter meta collection sprintf] - device_info 0.4.2+9 [flutter device_info_platform_interface] - dio 3.0.10 [http_parser path] - dio_http_cache 0.2.11 [flutter quiver json_serializable json_annotation dio sqflite path crypto] - equatable 1.2.5 [collection meta] - esys_flutter_share 1.0.2 [flutter path_provider] - firebase_analytics 6.0.2 [meta flutter firebase_core firebase_analytics_web firebase_analytics_platform_interface] - firebase_auth 0.18.1+2 [meta firebase_core firebase_core_platform_interface firebase_auth_platform_interface firebase_auth_web flutter] - firebase_core 0.5.0+1 [firebase_core_platform_interface flutter quiver meta firebase_core_web] - firebase_crashlytics 0.1.4+1 [flutter stack_trace] - firebase_dynamic_links 0.5.3 [flutter] - firebase_messaging 7.0.3 [meta flutter firebase_core] - flutter 0.0.0 [characters collection meta typed_data vector_math sky_engine] - flutter_bloc 6.0.6 [flutter bloc provider] - flutter_calendar_carousel 1.5.1 [intl flutter] - flutter_credit_card 0.1.3 [flutter] - flutter_cupertino_localizations 1.0.1 [flutter flutter_localizations] - flutter_facebook_auth 0.2.4 [flutter http meta] - flutter_inappwebview 4.0.0+4 [flutter uuid mime] - flutter_linkify 3.1.3 [flutter linkify] - flutter_local_notifications 1.5.0+1 [flutter platform flutter_local_notifications_platform_interface] - flutter_localizations 0.0.0 [flutter intl characters collection meta path typed_data vector_math] - flutter_native_timezone 1.0.4 [flutter] - flutter_secure_storage 3.3.5 [meta flutter] - flutter_slidable 0.5.7 [flutter] - flutter_staggered_grid_view 0.3.2 [flutter] - flutter_typeahead 1.8.8 [flutter flutter_keyboard_visibility] - fluttertoast 7.1.1 [flutter flutter_web_plugins] - font_awesome_flutter 8.10.0 [flutter] - gallery_saver 2.0.1 [flutter path_provider http path] - geolocator 5.3.2+2 [flutter meta equatable google_api_availability location_permissions vector_math] - get 3.13.2 [flutter] - get_it 4.0.4 [async meta] - google_maps_flutter 0.5.33 [flutter flutter_plugin_android_lifecycle google_maps_flutter_platform_interface] - google_sign_in 4.5.5 [google_sign_in_platform_interface flutter meta google_sign_in_web] - grec_minimal 0.0.3 - image_cropper 1.3.1 [flutter] - image_picker 0.6.7+12 [flutter flutter_plugin_android_lifecycle image_picker_platform_interface] - intl 0.16.1 [path] - location 3.0.2 [flutter meta location_platform_interface location_web] - logger 0.9.4 - meta 1.3.0-nullsafety.3 - package_info 0.4.3 [flutter] - paparazzi 0.0.1 [flutter] - path_provider 1.6.21 [flutter path_provider_platform_interface path_provider_macos path_provider_linux path_provider_windows] - percent_indicator 2.1.7+4 [flutter] - permission_handler 5.0.1+1 [flutter meta permission_handler_platform_interface] - photo_view 0.9.2 [flutter] - qr_code_scanner 0.0.12 [flutter] - qr_flutter 3.2.0 [flutter qr] - rrule 0.1.1 [basics collection meta pedantic time_machine] - rxdart 0.24.1 - share_extend 1.1.9 [meta flutter] - shimmer 1.1.2 [flutter] - sign_in_with_apple 2.5.4 [meta flutter] - simple_animations 2.2.3 [flutter sa_multi_tween sa_anicoto sa_stateless_animation sa_v1_migration] - sliding_panel 1.3.2 [flutter collection] - sliding_up_panel 1.0.2 [flutter] - smooth_star_rating 1.1.1 [flutter] - stripe_sdk 3.0.1+1 [flutter http url_launcher uni_links mask_text_input_formatter awesome_card flutter_slidable simple_animations supercharged] - supercharged 1.10.0 [supercharged_dart flutter] - syncfusion_flutter_calendar 18.3.40 [flutter timezone syncfusion_flutter_core syncfusion_flutter_datepicker intl] - syncfusion_flutter_datepicker 18.3.40-beta [flutter intl syncfusion_flutter_core] - time_machine 0.9.15 [meta collection resource] - uni_links 0.4.0 [flutter] - url_launcher 5.7.5 [flutter url_launcher_platform_interface url_launcher_web url_launcher_linux url_launcher_macos url_launcher_windows] - youtube_player_flutter 7.0.0+7 [flutter flutter_inappwebview] - zefyr 0.12.0 [flutter collection url_launcher quill_delta notus meta quiver_hashcode] dev dependencies: - build_runner 1.10.3 [args async build build_config build_daemon build_resolvers build_runner_core code_builder collection crypto dart_style glob graphs http_multi_server io js logging meta mime path pedantic pool pub_semver pubspec_parse shelf shelf_web_socket stack_trace stream_transform timing watcher web_socket_channel yaml] - flutter_launcher_icons 0.8.1 [image args yaml path] - flutter_test 0.0.0 [flutter test_api path fake_async clock stack_trace vector_math async boolean_selector characters charcode collection matcher meta source_span stream_channel string_scanner term_glyph typed_data] transitive dependencies: - _fe_analyzer_shared 11.0.0 [meta] - analyzer 0.40.4 [_fe_analyzer_shared args charcode cli_util collection convert crypto glob meta package_config path pub_semver source_span watcher yaml] - archive 2.0.13 [crypto args path] - args 1.6.0 - assets_audio_player_web 2.0.9+2 [flutter flutter_web_plugins] - async 2.5.0-nullsafety.1 [collection] - basics 0.4.0+1 [quiver] - boolean_selector 2.1.0-nullsafety.1 [source_span string_scanner] - build 1.5.0 [analyzer async convert crypto logging meta path glob] - build_config 0.4.2 [checked_yaml json_annotation meta path pubspec_parse yaml] - build_daemon 2.1.4 [built_collection built_value http_multi_server logging pedantic path pool shelf shelf_web_socket stream_transform watcher web_socket_channel] - build_resolvers 1.4.1 [analyzer build crypto graphs logging meta path package_config pool pub_semver] - build_runner_core 6.0.3 [async build build_config build_resolvers collection convert crypto glob graphs json_annotation logging meta path package_config pedantic pool timing watcher yaml] - built_collection 4.3.2 [collection quiver] - built_value 7.1.0 [built_collection collection fixnum quiver] - characters 1.1.0-nullsafety.3 - charcode 1.2.0-nullsafety.1 - charts_common 0.9.0 [collection intl logging meta vector_math] - checked_yaml 1.0.2 [json_annotation source_span yaml] - cli_util 0.2.0 [path] - clock 1.1.0-nullsafety.1 - code_builder 3.5.0 [built_collection built_value collection matcher meta] - collection 1.15.0-nullsafety.3 - connectivity_for_web 0.3.1+2 [connectivity_platform_interface flutter_web_plugins flutter] - connectivity_macos 0.1.0+5 [flutter] - connectivity_platform_interface 1.0.6 [flutter meta plugin_platform_interface] - convert 2.1.1 [charcode typed_data] - dart_style 1.3.7 [analyzer args path source_span] - device_info_platform_interface 1.0.1 [flutter meta plugin_platform_interface] - fake_async 1.2.0-nullsafety.1 [clock collection] - ffi 0.1.3 - file 5.2.1 [intl meta path] - firebase 7.3.2 [http http_parser js] - firebase_analytics_platform_interface 1.0.3 [flutter meta] - firebase_analytics_web 0.1.1 [flutter flutter_web_plugins firebase firebase_analytics_platform_interface meta] - firebase_auth_platform_interface 2.1.1 [flutter meta firebase_core plugin_platform_interface] - firebase_auth_web 0.3.1+1 [flutter flutter_web_plugins firebase meta http_parser intl firebase_core firebase_auth_platform_interface js] - firebase_core_platform_interface 2.0.0 [flutter meta plugin_platform_interface quiver] - firebase_core_web 0.2.0 [firebase firebase_core_platform_interface flutter flutter_web_plugins meta js] - fixnum 0.10.11 - flutter_blurhash 0.5.0 [flutter meta] - flutter_cache_manager 1.4.2 [flutter path_provider uuid http path sqflite pedantic clock file rxdart] - flutter_keyboard_visibility 3.2.2 [flutter] - flutter_local_notifications_platform_interface 1.0.1 [flutter plugin_platform_interface] - flutter_plugin_android_lifecycle 1.0.11 [flutter] - flutter_web_plugins 0.0.0 [flutter characters collection meta typed_data vector_math] - glob 1.2.0 [async collection node_io path pedantic string_scanner] - google_api_availability 2.0.4 [flutter] - google_maps_flutter_platform_interface 1.0.4 [flutter meta plugin_platform_interface stream_transform] - google_sign_in_platform_interface 1.1.2 [flutter meta quiver] - google_sign_in_web 0.9.2 [google_sign_in_platform_interface flutter flutter_web_plugins meta js] - graphs 0.2.0 - http 0.12.2 [http_parser path pedantic] - http_multi_server 2.2.0 [async] - http_parser 3.1.4 [charcode collection source_span string_scanner typed_data] - image 2.1.18 [archive xml meta] - image_picker_platform_interface 1.1.1 [flutter meta http plugin_platform_interface] - infinite_listview 1.0.1+1 [flutter] - io 0.3.4 [charcode meta path string_scanner] - js 0.6.2 - json_annotation 3.1.0 - json_serializable 3.5.0 [analyzer build build_config json_annotation meta path source_gen] - linkify 2.1.0 - location_permissions 3.0.0+1 [flutter meta] - location_platform_interface 1.0.0 [flutter meta plugin_platform_interface] - location_web 1.0.0 [flutter flutter_web_plugins location_platform_interface http_parser meta js] - logging 0.11.4 - mask_text_input_formatter 1.1.0 [flutter] - matcher 0.12.10-nullsafety.1 [stack_trace] - matrix4_transform 1.1.5 [flutter] - mime 0.9.7 - nested 0.0.4 [flutter] - node_interop 1.1.1 [js] - node_io 1.1.1 [node_interop path] - notus 0.1.5 [collection meta quill_delta quiver_hashcode] - numberpicker 1.2.1 [flutter infinite_listview] - octo_image 0.3.0 [flutter flutter_blurhash] - package_config 1.9.3 [path charcode] - path 1.8.0-nullsafety.1 - path_provider_linux 0.0.1+2 [path xdg_directories path_provider_platform_interface flutter] - path_provider_macos 0.0.4+4 [flutter] - path_provider_platform_interface 1.0.3 [flutter meta platform plugin_platform_interface] - path_provider_windows 0.0.4+1 [path_provider_platform_interface meta path flutter ffi win32] - pedantic 1.9.2 [meta] - permission_handler_platform_interface 2.0.1 [flutter meta plugin_platform_interface] - petitparser 3.1.0 [meta] - platform 2.2.1 - plugin_platform_interface 1.0.3 [meta] - pool 1.4.0 [async stack_trace] - process 3.0.13 [file intl meta path platform] - provider 4.3.2+2 [flutter nested collection] - pub_semver 1.4.4 [collection] - pubspec_parse 0.1.5 [checked_yaml json_annotation pub_semver yaml] - qr 1.3.0 [meta] - quill_delta 1.1.3 [collection quiver_hashcode] - quiver 2.1.3 [matcher meta] - quiver_hashcode 2.0.0 - resource 2.1.7 [typed_data] - sa_anicoto 1.0.3 [flutter supercharged] - sa_multi_tween 1.1.3 [flutter supercharged] - sa_stateless_animation 1.0.3 [flutter supercharged sa_anicoto] - sa_v1_migration 1.1.2 [flutter] - shelf 0.7.9 [async collection http_parser path stack_trace stream_channel] - shelf_web_socket 0.2.3 [shelf web_socket_channel stream_channel] - sky_engine 0.0.99 - source_gen 0.9.7+1 [analyzer async build dart_style glob meta path pedantic source_span] - source_span 1.8.0-nullsafety.2 [charcode collection path term_glyph] - sprintf 4.1.0 - sqflite 1.3.1+1 [flutter sqflite_common path] - sqflite_common 1.0.2+1 [synchronized path meta] - stack_trace 1.10.0-nullsafety.1 [path] - stream_channel 2.1.0-nullsafety.1 [async] - stream_transform 1.2.0 - string_scanner 1.1.0-nullsafety.1 [charcode source_span] - supercharged_dart 1.2.0 - syncfusion_flutter_core 18.3.40 [flutter pedantic] - synchronized 2.2.0+2 - term_glyph 1.2.0-nullsafety.1 - test_api 0.2.19-nullsafety.2 [async boolean_selector collection meta path source_span stack_trace stream_channel string_scanner term_glyph matcher] - timezone 0.5.7 [path] - timing 0.1.1+2 [json_annotation] - typed_data 1.3.0-nullsafety.3 [collection] - url_launcher_linux 0.0.1+1 [flutter] - url_launcher_macos 0.0.1+8 [flutter] - url_launcher_platform_interface 1.0.8 [flutter meta plugin_platform_interface] - url_launcher_web 0.1.4+1 [url_launcher_platform_interface flutter flutter_web_plugins meta] - url_launcher_windows 0.0.1+1 [flutter] - uuid 2.2.2 [crypto convert] - vector_math 2.1.0-nullsafety.3 - watcher 0.9.7+15 [async path pedantic] - web_socket_channel 1.1.0 [async crypto stream_channel] - win32 1.7.3 [ffi] - xdg_directories 0.1.2 [meta path process] - xml 4.5.1 [collection convert meta petitparser] - yaml 2.2.1 [charcode collection string_scanner source_span] ```

markusaksli-nc commented 3 years ago

Hi @loicgeek The generated links should be the exact same if the code is the same. Are you talking about short links? Do the links work across the same OS? Is anything logged with flutter run -v that you could share? Thank you

loicgeek commented 3 years ago

Hi @loicgeek The generated links should be the exact same if the code is the same. Are you talking about short links? Do the links work across the same OS? Is anything logged with flutter run -v that you could share? Thank you

@markusaksli-nc , android - android: perfect, ios-ios: always app store , ios-android/android-ios : website

markusaksli-nc commented 3 years ago

@loicgeek On iOS id you paste the link into the notes app and long press it, it should show the option to open it in the app if you have followed all the Xcode steps. Does it not do so for links generated on Android?