Hello community.
I am currently using Flutter with the following versions:
Flutter 3.7.12 • channel stable • GitHub - flutter/flutter: Flutter makes it easy and fast to build beautiful apps for mobile and beyond
Framework • revision 4d9e56e694 (4 weeks ago) • 2023-04-17 21:47:46 -0400
Engine • revision 1a65d409c7
Tools • Dart 2.19.6 • DevTools 2.20.1
And using the package auth0_flutter: ^1.1.0.
I followed the installation and configured both, iOS and Android to be able to login/logout users in my app.
For iOS it works like a charm but it does not work in Android (tested in emulators)
I am getting the following error after calling the login function:
final Auth0 api;
Future<Credentials> login() async {
return await api.webAuthentication().login();
}
Exception: No implementation found for method webAuth#login on channel auth0.com/auth0_flutter/web_auth
I configured the auth0 allowed callback/logout URLs (notice I used https schema es suggested in the docs for Android) as following:
<myBundleId>://<domain>/ios/<myBundleId>/callback, https://<domain>/android/<myAppId>/callback
And updated the android/app/src/build.gradle file with the suggested configuration:
defaultConfig {
applicationId "<myAppId>"
...
minSdkVersion 21 // <--- min sdk version needed by auth0 package
targetSdkVersion flutter.targetSdkVersion
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
manifestPlaceholders += [auth0Domain: "<domain>", auth0Scheme: "https"] // <--
}
What am I missing here?
I would appreciate any help.
Many thanks.
PS: Official package documentation (auth0_flutter | Flutter Package) states that the manifestPlaceholders should be defined as following:
manifestPlaceholders = [auth0Domain: "company.us.auth0.com", auth0Scheme: "https"]
But that generates the following error:
Attribute application@name at AndroidManifest.xml:5:9-42 requires a placeholder substitution but no value for <applicationName> is provided.
since it is overwriting instead of just appending the auth0 properties. That is why I used the += instead