docs: function resolveConfigFilePath(project_dir, platform, file) {
      var filepath = path.join(project_dir, file);
      var matches;
  
  
      if (file.indexOf('*') > -1 && file.indexOf('plist') > -1) {
          project_dir = path.join(project_dir);
          // handle wildcards in targets using glob.
          matches = modules.glob.sync(path.join(project_dir, '**', file));
          if (matches.length) filepath = matches[0];
          else {
              project_dir = path.join(project_dir, '..');
              // handle wildcards in targets using glob.
              matches = modules.glob.sync(path.join(project_dir, '**', file));
              if (matches.length) filepath = matches[0];
          }
  
          // [CB-5989] multiple Info.plist files may exist. default to $PROJECT_NAME-Info.plist
          if(matches.length > 1 && file.indexOf('-Info.plist')>-1){
              var plistName =  getIOSProjectname(project_dir)+'-Info.plist';
              for (var i=0; i < matches.length; i++) {
                  if(matches[i].indexOf(plistName) > -1){
                      filepath = matches[i];
                      break;
                  }
              }
          }
          return filepath;
      }else if (platform === 'ios' && (file != 'config.xml' || file != 'JudpluginConfig.xml')){
          return filepath = path.join(project_dir, getIOSProjectname(project_dir), file);
      }
  
      // special-case config.xml target that is just "config.xml". This should be resolved to the real location of the file.
      // TODO: move the logic that contains the locations of config.xml from cordova CLI into plugman.
      if (file == 'config.xml') {
          if (platform == 'ubuntu') {
              filepath = path.join(project_dir, 'config.xml');
          } else if (platform == 'ios') {
              var iospath = getIOSProjectname(project_dir);
              filepath = path.join(project_dir,iospath, 'config.xml');
          } else if (platform == 'android') {
              filepath = path.join(project_dir, 'res', 'xml', 'config.xml');
          } else {
              matches = modules.glob.sync(path.join(project_dir, '**', 'config.xml'));
              if (matches.length) filepath = matches[0];
          }
          return filepath;
      }
  
      // XXX this checks for android studio projects
      // only if none of the options above are satisfied does this get called
      if(platform === 'android' && !fs.existsSync(filepath)) {
        // JUD_HOOK_START
        if (file === 'AndroidManifest.xml') {
            filepath = path.join(project_dir, 'judplugin', 'src', 'main', 'AndroidManifest.xml');
        } else {
            filepath = path.join(project_dir, 'judplugin', 'src', 'main', 'res', 'xml', 'config.xml');
        }
        // JUD_HOOK_END
      }
  
      // None of the special cases matched, returning project_dir/file.
      return filepath;
  }