diff --git a/docs/dynamic-links/receive.md b/docs/dynamic-links/receive.md index fd4c55b5a6ff..362a95bd4942 100644 --- a/docs/dynamic-links/receive.md +++ b/docs/dynamic-links/receive.md @@ -73,7 +73,7 @@ start the activity with this intent filter to handle the link. 1. On the Signing & Capabilities page, enable **Associated Domains** and add the following to the Associated Domains list: - + ``` applinks:example.page.link ``` @@ -180,3 +180,8 @@ FirebaseDynamicLinks.instance.onLink.listen((dynamicLinkData) { // Handle errors }); ``` + +### Testing A Dynamic Link On iOS Platform + +To test a dynamic link on iOS, it is required that you use an actual device. You will also need to run the app in release mode (i.e. `flutter run --release`.), +if testing a dynamic link from a terminated (i.e. app has been swiped closed.) app state. diff --git a/packages/firebase_dynamic_links/firebase_dynamic_links/example/ios/Podfile b/packages/firebase_dynamic_links/firebase_dynamic_links/example/ios/Podfile index f7d6a5e68c3a..707b581a5329 100644 --- a/packages/firebase_dynamic_links/firebase_dynamic_links/example/ios/Podfile +++ b/packages/firebase_dynamic_links/firebase_dynamic_links/example/ios/Podfile @@ -1,5 +1,5 @@ # Uncomment this line to define a global platform for your project -# platform :ios, '9.0' +platform :ios, '10.0' # CocoaPods analytics sends network stats synchronously affecting flutter build latency. ENV['COCOAPODS_DISABLE_STATS'] = 'true' @@ -28,6 +28,8 @@ require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelpe flutter_ios_podfile_setup target 'Runner' do + use_frameworks! + use_modular_headers! flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__)) end diff --git a/packages/firebase_dynamic_links/firebase_dynamic_links/example/ios/Runner/Info.plist b/packages/firebase_dynamic_links/firebase_dynamic_links/example/ios/Runner/Info.plist index 674f580c9c59..e06f59c07238 100644 --- a/packages/firebase_dynamic_links/firebase_dynamic_links/example/ios/Runner/Info.plist +++ b/packages/firebase_dynamic_links/firebase_dynamic_links/example/ios/Runner/Info.plist @@ -58,9 +58,7 @@ UIViewControllerBasedStatusBarAppearance - FirebaseDynamicLinksCustomDomains - - https://reactnativefirebase.page.link/** - + CADisableMinimumFrameDurationOnPhone + diff --git a/packages/firebase_dynamic_links/firebase_dynamic_links/example/lib/firebase_options.dart b/packages/firebase_dynamic_links/firebase_dynamic_links/example/lib/firebase_options.dart index cea1537e1d1f..b5967a0867db 100644 --- a/packages/firebase_dynamic_links/firebase_dynamic_links/example/lib/firebase_options.dart +++ b/packages/firebase_dynamic_links/firebase_dynamic_links/example/lib/firebase_options.dart @@ -1,5 +1,5 @@ // File generated by FlutterFire CLI. -// ignore_for_file: lines_longer_than_80_chars +// ignore_for_file: lines_longer_than_80_chars, avoid_classes_with_only_static_members import 'package:firebase_core/firebase_core.dart' show FirebaseOptions; import 'package:flutter/foundation.dart' show defaultTargetPlatform, kIsWeb, TargetPlatform; @@ -22,7 +22,6 @@ class DefaultFirebaseOptions { 'you can reconfigure this by running the FlutterFire CLI again.', ); } - // ignore: missing_enum_constant_in_switch switch (defaultTargetPlatform) { case TargetPlatform.android: return android; @@ -33,35 +32,43 @@ class DefaultFirebaseOptions { 'DefaultFirebaseOptions have not been configured for macos - ' 'you can reconfigure this by running the FlutterFire CLI again.', ); + case TargetPlatform.windows: + throw UnsupportedError( + 'DefaultFirebaseOptions have not been configured for windows - ' + 'you can reconfigure this by running the FlutterFire CLI again.', + ); + case TargetPlatform.linux: + throw UnsupportedError( + 'DefaultFirebaseOptions have not been configured for linux - ' + 'you can reconfigure this by running the FlutterFire CLI again.', + ); + default: + throw UnsupportedError( + 'DefaultFirebaseOptions are not supported for this platform.', + ); } - - throw UnsupportedError( - 'DefaultFirebaseOptions are not supported for this platform.', - ); } static const FirebaseOptions android = FirebaseOptions( - apiKey: 'AIzaSyCdRjCVZlhrq72RuEklEyyxYlBRCYhI2Sw', - appId: '1:406099696497:android:40da41183cb3d3ff3574d0', - messagingSenderId: '406099696497', - projectId: 'flutterfire-e2e-tests', - databaseURL: - 'https://flutterfire-e2e-tests-default-rtdb.europe-west1.firebasedatabase.app', - storageBucket: 'flutterfire-e2e-tests.appspot.com', + apiKey: 'AIzaSyCuu4tbv9CwwTudNOweMNstzZHIDBhgJxA', + appId: '1:448618578101:android:1be54ee660fd87d2ac3efc', + messagingSenderId: '448618578101', + projectId: 'react-native-firebase-testing', + databaseURL: 'https://react-native-firebase-testing.firebaseio.com', + storageBucket: 'react-native-firebase-testing.appspot.com', ); static const FirebaseOptions ios = FirebaseOptions( - apiKey: 'AIzaSyDooSUGSf63Ghq02_iIhtnmwMDs4HlWS6c', - appId: '1:406099696497:ios:e666f0a995aa455a3574d0', - messagingSenderId: '406099696497', - projectId: 'flutterfire-e2e-tests', - databaseURL: - 'https://flutterfire-e2e-tests-default-rtdb.europe-west1.firebasedatabase.app', - storageBucket: 'flutterfire-e2e-tests.appspot.com', + apiKey: 'AIzaSyAHAsf51D0A407EklG1bs-5wA7EbyfNFg0', + appId: '1:448618578101:ios:3e76955ab6d49ecaac3efc', + messagingSenderId: '448618578101', + projectId: 'react-native-firebase-testing', + databaseURL: 'https://react-native-firebase-testing.firebaseio.com', + storageBucket: 'react-native-firebase-testing.appspot.com', androidClientId: - '406099696497-tvtvuiqogct1gs1s6lh114jeps7hpjm5.apps.googleusercontent.com', + '448618578101-a9p7bj5jlakabp22fo3cbkj7nsmag24e.apps.googleusercontent.com', iosClientId: - '406099696497-nqjkqmm0fm17cdksju0o817aj226ooqb.apps.googleusercontent.com', - iosBundleId: 'io.flutter.plugins.firebase.dynamiclinksexample', + '448618578101-4km55qmv55tguvnivgjdiegb3r0jquv5.apps.googleusercontent.com', + iosBundleId: 'io.invertase.testing', ); }