apache / cordova-android

Apache Cordova Android
https://cordova.apache.org/
Apache License 2.0
3.59k stars 1.52k forks source link

config resource-file is copied to the wrong target #1663

Open DavidWiesner opened 7 months ago

DavidWiesner commented 7 months ago

Bug Report

Problem

when defining a <resource-file src="example.xml" target="res/values/example.xml" /> see cordova documentation config.xml the src-file is not copied into the application-resources folder <platform-dir>/app/src/main/, but instead to the <project-dir>. In contrast when defining the same <resource-file /> in a plugin.xml, the file will be copied to the right destination see https://github.com/apache/cordova-android/blob/e61e271f5bbb517a9598078f7a1ad7585bfe5f9c/lib/pluginHandlers.js#L61

What is expected to happen?

The defined src should be copied within the application-resource folder <platform-dir>/app/src/main/

What does actually happen?

The src-file will be copied to the <project-dir>

Information

Command or Code

Environment, Platform, Device

Version information

Cordova Packages:

cli: 12.0.0
    common: 5.0.0
    create: 5.0.0
    lib: 12.0.1
        common: 5.0.0
        fetch: 4.0.0
        serve: 4.0.1

Project Installed Platforms:

android: 12.0.1

Ionic:

Ionic CLI : 7.1.1

Checklist

jcesarmobile commented 7 months ago

I feel like the config.xml behavior is the correct behavior, since you might want to add files to other folders, not just to app/src/main. In example a common case of usage for resource-file is to copy the google-services.json file, which needs to be inside app folder, not in app/src/main folder. But changing the behavior for plugins at this point will break a lot of plugins, so I think we should document the difference of behavior when using it in config.xml vs plugin.xml