1

I followed the documentation on creating firebase dynamic link for my app. https://firebase.google.com/docs/auth/web/cordova

My social media login functions (Google, Facebook, etc..) were already integrated to my Firebase account. Based on what I read here: https://github.com/firebase/firebaseui-web/issues/195

It's possible that the firebase social media logins do not redirect back to the app if a dynamic link in firebase is not set up. So, I pushed to this solutions so it could redirect back to my app.

However, it returned me an error, saying:

Android Studio project detected config file res/values/facebookconnect.xml requested for changes not found at C:\Users\Kyle Louise Villar\QuickEApp\platforms\android\res\values\facebookconnect.xml, ignoring config file res/values/facebookconnect.xml requested for changes not found at C:\Users\Kyle Louise Villar\QuickEApp\platforms\android\res\values\facebookconnect.xml, ignoring Preparing Firebase on Android Cannot read property 'manifest' of undefined

My Code

<?xml version='1.0' encoding='utf-8'?>
<widget id="com.codelean.quicke" version="0.0.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
    <name>QuickEApp</name>
    <description>An awesome Ionic/Cordova app.</description>
    <author email="hi@ionicframework" href="http://ionicframework.com/">Ionic Framework Team</author>
    <content src="index.html" />
    <access origin="*" />
    <allow-intent href="http://*/*" />
    <allow-intent href="https://*/*" />
    <allow-intent href="tel:*" />
    <allow-intent href="sms:*" />
    <allow-intent href="mailto:*" />
    <allow-intent href="geo:*" />
    <preference name="ScrollEnabled" value="false" />
    <preference name="android-minSdkVersion" value="19" />
    <preference name="BackupWebStorage" value="none" />
    <preference name="SplashMaintainAspectRatio" value="true" />
    <preference name="FadeSplashScreenDuration" value="300" />
    <preference name="SplashShowOnlyFirstTime" value="false" />
    <preference name="SplashScreen" value="screen" />
    <preference name="SplashScreenDelay" value="3000" />
    <platform name="android">
        <allow-intent href="market:*" />
        <icon density="ldpi" src="resources/android/icon/drawable-ldpi-icon.png" />
        <icon density="mdpi" src="resources/android/icon/drawable-mdpi-icon.png" />
        <icon density="hdpi" src="resources/android/icon/drawable-hdpi-icon.png" />
        <icon density="xhdpi" src="resources/android/icon/drawable-xhdpi-icon.png" />
        <icon density="xxhdpi" src="resources/android/icon/drawable-xxhdpi-icon.png" />
        <icon density="xxxhdpi" src="resources/android/icon/drawable-xxxhdpi-icon.png" />
        <splash density="land-ldpi" src="resources/android/splash/drawable-land-ldpi-screen.png" />
        <splash density="land-mdpi" src="resources/android/splash/drawable-land-mdpi-screen.png" />
        <splash density="land-hdpi" src="resources/android/splash/drawable-land-hdpi-screen.png" />
        <splash density="land-xhdpi" src="resources/android/splash/drawable-land-xhdpi-screen.png" />
        <splash density="land-xxhdpi" src="resources/android/splash/drawable-land-xxhdpi-screen.png" />
        <splash density="land-xxxhdpi" src="resources/android/splash/drawable-land-xxxhdpi-screen.png" />
        <splash density="port-ldpi" src="resources/android/splash/drawable-port-ldpi-screen.png" />
        <splash density="port-mdpi" src="resources/android/splash/drawable-port-mdpi-screen.png" />
        <splash density="port-hdpi" src="resources/android/splash/drawable-port-hdpi-screen.png" />
        <splash density="port-xhdpi" src="resources/android/splash/drawable-port-xhdpi-screen.png" />
        <splash density="port-xxhdpi" src="resources/android/splash/drawable-port-xxhdpi-screen.png" />
        <splash density="port-xxxhdpi" src="resources/android/splash/drawable-port-xxxhdpi-screen.png" />
    </platform>
    <platform name="ios">
        <allow-intent href="itms:*" />
        <allow-intent href="itms-apps:*" />
        <icon height="57" src="resources/ios/icon/icon.png" width="57" />
        <icon height="114" src="resources/ios/icon/icon@2x.png" width="114" />
        <icon height="40" src="resources/ios/icon/icon-40.png" width="40" />
        <icon height="80" src="resources/ios/icon/icon-40@2x.png" width="80" />
        <icon height="120" src="resources/ios/icon/icon-40@3x.png" width="120" />
        <icon height="50" src="resources/ios/icon/icon-50.png" width="50" />
        <icon height="100" src="resources/ios/icon/icon-50@2x.png" width="100" />
        <icon height="60" src="resources/ios/icon/icon-60.png" width="60" />
        <icon height="120" src="resources/ios/icon/icon-60@2x.png" width="120" />
        <icon height="180" src="resources/ios/icon/icon-60@3x.png" width="180" />
        <icon height="72" src="resources/ios/icon/icon-72.png" width="72" />
        <icon height="144" src="resources/ios/icon/icon-72@2x.png" width="144" />
        <icon height="76" src="resources/ios/icon/icon-76.png" width="76" />
        <icon height="152" src="resources/ios/icon/icon-76@2x.png" width="152" />
        <icon height="167" src="resources/ios/icon/icon-83.5@2x.png" width="167" />
        <icon height="29" src="resources/ios/icon/icon-small.png" width="29" />
        <icon height="58" src="resources/ios/icon/icon-small@2x.png" width="58" />
        <icon height="87" src="resources/ios/icon/icon-small@3x.png" width="87" />
        <icon height="1024" src="resources/ios/icon/icon-1024.png" width="1024" />
        <splash height="1136" src="resources/ios/splash/Default-568h@2x~iphone.png" width="640" />
        <splash height="1334" src="resources/ios/splash/Default-667h.png" width="750" />
        <splash height="2208" src="resources/ios/splash/Default-736h.png" width="1242" />
        <splash height="1242" src="resources/ios/splash/Default-Landscape-736h.png" width="2208" />
        <splash height="1536" src="resources/ios/splash/Default-Landscape@2x~ipad.png" width="2048" />
        <splash height="2048" src="resources/ios/splash/Default-Landscape@~ipadpro.png" width="2732" />
        <splash height="768" src="resources/ios/splash/Default-Landscape~ipad.png" width="1024" />
        <splash height="2048" src="resources/ios/splash/Default-Portrait@2x~ipad.png" width="1536" />
        <splash height="2732" src="resources/ios/splash/Default-Portrait@~ipadpro.png" width="2048" />
        <splash height="1024" src="resources/ios/splash/Default-Portrait~ipad.png" width="768" />
        <splash height="960" src="resources/ios/splash/Default@2x~iphone.png" width="640" />
        <splash height="480" src="resources/ios/splash/Default~iphone.png" width="320" />
        <splash height="2732" src="resources/ios/splash/Default@2x~universal~anyany.png" width="2732" />
    </platform>
    <universal-links>
        <host name="quicke.page.link" scheme="https" />
        <host name="quicke-219005.firebaseapp.com" scheme="https">
            <path url="/__/auth/callback" />
        </host>
    </universal-links>
    <plugin name="cordova-plugin-whitelist" spec="1.3.3" />
    <plugin name="cordova-plugin-statusbar" spec="2.4.2" />
    <plugin name="cordova-plugin-device" spec="2.0.2" />
    <plugin name="cordova-plugin-splashscreen" spec="5.0.2" />
    <plugin name="cordova-plugin-ionic-webview" spec="^2.0.0" />
    <plugin name="cordova-plugin-ionic-keyboard" spec="^2.0.5" />
    <plugin name="cordova-plugin-facebook4" spec="3.1.0">
        <variable name="APP_ID" value="2064374700294873" />
        <variable name="APP_NAME" value="QuickE" />
        <variable name="FACEBOOK_ANDROID_SDK_VERSION" value="4.37.0" />
    </plugin>
    <plugin name="cordova-plugin-googleplus" spec="5.3.2">
        <variable name="REVERSED_CLIENT_ID" value="com.googleusercontent.apps.1078026289343-hiqr2p7ojlcmtg8upnm1ppdo90i59cg4" />
        <variable name="WEB_APPLICATION_CLIENT_ID" value="1078026289343-hiqr2p7ojlcmtg8upnm1ppdo90i59cg4.apps.googleusercontent.com" />
    </plugin>
    <plugin name="cordova-plugin-firebase" spec="2.0.5" />
    <plugin name="cordova-instagram-plugin" spec="0.5.7" />
    <plugin name="cordova-plugin-advanced-http" spec="2.0.1" />
    <plugin name="cordova-plugin-buildinfo" spec="2.0.2" />
    <plugin name="cordova-universal-links-plugin" spec="~1.2.1" />
    <plugin name="cordova-plugin-browsertab" spec="0.2.0" />
    <plugin name="cordova-plugin-inappbrowser" spec="3.0.0" />
    <plugin name="cordova-plugin-customurlscheme" spec="4.3.0">
        <variable name="URL_SCHEME" value="com.codelean.quicke" />
    </plugin>
    <preference name="AndroidLaunchMode" value="singleTask" />
    <engine name="android" spec="7.1.1" />
    <engine name="browser" spec="5.0.4" />
</widget>

Thanks in advance

Ali Ahmed
  • 2,130
  • 1
  • 13
  • 19

3 Answers3

11

I was having the same problem. It seems that the path to the manifest file is incorrect in the plugin.

I opened the file at

./plugins/cordova-universal-links-plugin/hooks/lib/android/manifestWriter.js

Here I noticed that it had a hard coded path to:

var pathToManifest = path.join(cordovaContext.opts.projectRoot, 'platforms', 'android', 'AndroidManifest.xml');
console.log("pathToManifest:" + pathToManifest)// returning empty.
var manifestSource = xmlHelper.readXmlAsJson(pathToManifest);

So I added the console log above and found it wasn't finding the manifest file. So I then found the file and modified the path to.

var pathToManifest = path.join(cordovaContext.opts.projectRoot, 'platforms', 'android', 'app', 'src', 'main', 'AndroidManifest.xml');

Then it started working for me. I'm not entirely sure if I got the right file, but it looks like it might be, and things seem to be working correctly.

I was also running the emulate with verbose on so I could see all of the real errors.

cordova emulate android --verbose
Wes Jones
  • 146
  • 6
3

I updated the plugin as Wes Jones stated above. Install it with:

# Remove old plugin first:
cordova plugin remove cordova-universal-links-plugin

# Install this patched version:
cordova plugin add https://github.com/cgaeking/cordova-universal-links-plugin-fix.git
C. Gäking
  • 163
  • 1
  • 9
0

Had this issue recently and solved it using the solution posted here https://stackoverflow.com/a/63980974/1084306. The error is referring to an issue with the universal links plugin that is outdated and is not correctly referencing the android manifest file. Uninstalling the universal links plugin and installing from the repo below fixes the manifest path issue.

@okaufmann you can use the changed version of the plugin. since it's not merged in the nordnet repository, you must remove the plugin and install again using: cordova plugin add https://github.com/walteram/cordova-universal-links-plugin

Donovan
  • 906
  • 2
  • 11
  • 17