You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cordova.apache.org by "Josh Bavari (JIRA)" <ji...@apache.org> on 2014/04/08 19:00:19 UTC

[jira] [Created] (CB-6414) Cordova plugman will ignore config_munge features for config.xml if two are listed in plugin.xml

Josh Bavari created CB-6414:
-------------------------------

             Summary: Cordova plugman will ignore config_munge features for config.xml if two are listed in plugin.xml
                 Key: CB-6414
                 URL: https://issues.apache.org/jira/browse/CB-6414
             Project: Apache Cordova
          Issue Type: Bug
          Components: Plugman
    Affects Versions: 3.4.0
         Environment: Android
            Reporter: Josh Bavari
            Assignee: Josh Bavari
            Priority: Minor


When using a phonegap plugin like the Facebook Connect plugin, there are two series of listed config transforms, as such:

The <config-file> element,

  <config-file target="config.xml" parent="/*">
	    <access origin="https://m.facebook.com" />
	    <access origin="https://graph.facebook.com" />
	    <access origin="https://api.facebook.com" />
	    <access origin="https://*.fbcdn.net" />
	    <access origin="https://*.akamaihd.net" />
    </config-file>

As well as the transform for Android:

 <config-file target="config.xml" parent="/*">
            <feature name="FacebookConnectPlugin">
                <param name="android-package" value="org.apache.cordova.facebook.ConnectPlugin" />
            </feature>
        </config-file>

Which after running 'cordova prepare android':

"config_munge": {
        "res/xml/config.xml": {
            "/*": {
                "<feature name=\"Camera\"><param name=\"android-package\" value=\"org.apache.cordova.camera.CameraLauncher\" /></feature>": 1,
                "<feature name=\"Contacts\"><param name=\"android-package\" value=\"org.apache.cordova.contacts.ContactManager\" /></feature>": 1,
                "<feature name=\"Device\"><param name=\"android-package\" value=\"org.apache.cordova.device.Device\" /></feature>": 1,
                "<feature name=\"Notification\"><param name=\"android-package\" value=\"org.apache.cordova.dialogs.Notification\" /></feature>": 1,
                "<feature name=\"File\"><param name=\"android-package\" value=\"org.apache.cordova.file.FileUtils\" /><param name=\"onload\" value=\"true\" /></feature>": 1,
                "<feature name=\"FileTransfer\"><param name=\"android-package\" value=\"org.apache.cordova.filetransfer.FileTransfer\" /></feature>": 1,
                "<feature name=\"Geolocation\"><param name=\"android-package\" value=\"org.apache.cordova.geolocation.GeoBroker\" /></feature>": 1,
                "<feature name=\"InAppBrowser\"><param name=\"android-package\" value=\"org.apache.cordova.inappbrowser.InAppBrowser\" /></feature>": 1,
                "<feature name=\"Media\"><param name=\"android-package\" value=\"org.apache.cordova.media.AudioHandler\" /></feature>": 1,
                "<feature name=\"Capture\"><param name=\"android-package\" value=\"org.apache.cordova.mediacapture.Capture\" /></feature>": 1,
                "<feature name=\"NetworkStatus\"><param name=\"android-package\" value=\"org.apache.cordova.networkinformation.NetworkManager\" /></feature>": 1,
                "<feature name=\"SplashScreen\"><param name=\"android-package\" value=\"org.apache.cordova.splashscreen.SplashScreen\" /></feature>": 1
            }
        },
        "AndroidManifest.xml": {
            "/*": {
                "<uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\" />": 5,
                "<uses-permission android:name=\"android.permission.READ_CONTACTS\" />": 1,
                "<uses-permission android:name=\"android.permission.WRITE_CONTACTS\" />": 1,
                "<uses-permission android:name=\"android.permission.GET_ACCOUNTS\" />": 1,
                "<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\" />": 1,
                "<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\" />": 1,
                "<uses-permission android:name=\"android.permission.RECORD_AUDIO\" />": 2,
                "<uses-permission android:name=\"android.permission.MODIFY_AUDIO_SETTINGS\" />": 1,
                "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\" />": 1,
                "<uses-permission android:name=\"android.permission.RECORD_VIDEO\" />": 1,
                "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\" />": 1
            },
            "application": {
                "<meta-data android:name=\"com.facebook.sdk.ApplicationId\" android:value=\"@string/fb_app_id\" />": 1,
                "<activity android:label=\"@string/fb_app_name\" android:name=\"com.facebook.LoginActivity\" />": 1
            }
        },
        "res/values/facebookconnect.xml": {
            "/*": {
                "<string name=\"fb_app_id\">448</string>": 1,
                "<string name=\"fb_app_name\">RaiseMore</string>": 1
            }
        },
        "config.xml": {
            "/*": {
                "<access origin=\"https://m.facebook.com\" />": 1,
                "<access origin=\"https://graph.facebook.com\" />": 1,
                "<access origin=\"https://api.facebook.com\" />": 1,
                "<access origin=\"https://*.fbcdn.net\" />": 1,
                "<access origin=\"https://*.akamaihd.net\" />": 1,
                "<feature name=\"FacebookConnectPlugin\"><param name=\"android-package\" value=\"org.apache.cordova.facebook.ConnectPlugin\" /></feature>": 1
            }
        }
    },

Which then leads to the final config.xml that only has the config munge from the facebook plugin:

<?xml version='1.0' encoding='utf-8'?>
<widget id="io.cordova.hellocordova" version="0.0.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
    <preference name="loglevel" value="DEBUG" />
    <feature name="App">
        <param name="android-package" value="org.apache.cordova.App" />
    </feature>
    <access origin="https://m.facebook.com" />
    <access origin="https://graph.facebook.com" />
    <access origin="https://api.facebook.com" />
    <access origin="https://*.fbcdn.net" />
    <access origin="https://*.akamaihd.net" />
    <feature name="FacebookConnectPlugin">
        <param name="android-package" value="org.apache.cordova.facebook.ConnectPlugin" />
    </feature>
    <name>HelloCordova</name>
    <description>
        A sample Apache Cordova application that responds to the deviceready event.
    </description>
    <author email="dev@cordova.apache.org" href="http://cordova.io">
        Apache Cordova Team
    </author>
    <content src="index.html" />
    <access origin="*" />
    <preference name="Orientation" value="landscape" />
</widget>




--
This message was sent by Atlassian JIRA
(v6.2#6252)