我的Cordova iOS插件中的冗余问题

我的Cordova iOS插件中的冗余问题,ios,cordova,cordova-plugins,Ios,Cordova,Cordova Plugins,我不明白Cordova(最新版本6.1)是如何处理插件的。我的应用程序有以下项目: myapp (only relevant folders and files shown) +-config.xml +-platforms | +-ios | +-CordovaLib | +-MyApp | +-Plugins | +-com-myproj-myplugin | |-myplugin.h | |-myplugin.m +-plugin

我不明白Cordova(最新版本6.1)是如何处理插件的。我的应用程序有以下项目:

myapp (only relevant folders and files shown)
+-config.xml
+-platforms
| +-ios
|   +-CordovaLib
|   +-MyApp
|     +-Plugins
|       +-com-myproj-myplugin
|         |-myplugin.h
|         |-myplugin.m
+-plugins
| +-com-myproj-myplugin
|   |-plugin.xml
|   +-src
|     +-ios
|       |-myplugin.h
|       |-myplugin.m
+-www
如您所见,此项目有一个插件
myplugin
,位于2个目录中:

  • plugins
    文件夹-Here文件
    myapp\plugins\com myproj myplugin\src\ios\myplugin.m
    不包含任何代码实现(只包含签名和函数中的空内容)
  • iOS应用程序特定的
    Plugins
    文件夹-Here文件
    myapp\platforms\iOS\myapp\Plugins\com.myproj.myplugin\myplugin.m
    实际上包含实现
冗余在哪里? 我认为模型如下:

  • 我调用
    cordova构建ios
  • Cordova将把
    myapp\plugins\
    中的资源复制到
    myapp\platforms\…\plugins\
  • 但事实并非如此。不会将常规
    插件
    文件夹复制到特定于平台的
    插件
    文件夹中

    插件这是我的插件的
    plugin.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <plugin xmlns="http://apache.org/cordova/ns/plugins/1.0" id="com.myproj.myplugin" version="0.1.0">
      <name>MyPlugin</name>
      <description>Just my plugin</description>
      <license>Me</license>
      <js-module src="www/myplugin.js" name="myplugin">
        <clobbers target="myplugin" />
      </js-module>
    
      <!-- ios -->
      <platform name="ios">
        <config-file target="config.xml" parent="/*">
          <feature name="MyPlugin">
            <param name="ios-package" value="MyPlugin"/>
            <param name="onload" value="true"/>
          </feature>
        </config-file>
    
        <header-file src="src/ios/myplugin.h" />
        <source-file src="src/ios/myplugin.m" />
      </platform>
    </plugin>
    
    
    我的插件
    只是我的插件
    我
    

    我的问题我应该如何开发插件以避免这种冗余?代码是否应仅放在平台特定的
    插件
    文件夹中?但是放在generic
    plugins
    文件夹中的
    plugin.xml
    怎么样?

    您想创建自己的插件吗?您必须创建包含类和plugin.xml文件的plugin文件夹。plugin.xml文件是告诉cordova复制什么的文件。@jcesarmobile:Yes,但是,为什么Cordova不将这些文件复制到特定于平台的插件文件夹中?您有plugin.xml文件吗?是的,我有该特定插件的文件,并且头文件和源文件是特定的。如果您从CLI安装插件,并且有plugin.xml,则应将文件复制到正确的位置