用于Apache Cordova的Visual Studio工具 - iOS remotebuild - 在www中省略“plugins”文件夹

时间:2015-09-19 13:24:15

标签: visual-studio-cordova

当尝试使用最新版本的Visual Studio Tools for Apache Cordova(14.0.50902.4)从Visual Studio 2015构建或调试iOS Cordova应用程序时,我遇到一个问题,其中任何名为“plugins”的文件夹将在我的Mac上通过remotebuild构建时,在www目录中省略。

www文件夹之外的实际cordova的“插件”目录不受影响。

重现的步骤 -

  1. 在Mac上,打开终端并运行remotebuild
  2. 从PC启动iOS构建或通过Visual Studio打开Cordova项目进行调试。
  3. 在Mac上,打开另一个终端并转到包含从Visual Studio发送到远程构建的远程构建文件的文件夹以进行构建 -
  4. /Users/someuser/.taco_home/remote-builds/taco-remote/builds/xxxxx/cordovaApp /

    然后我可以看到cordova的正常“plugins”文件夹。但是www文件夹中的其他插件文件夹将丢失。

    当我们升级到最新版本的cordova工具和visual studio(使用visual studio 2013时正在工作)后,当我正在处理的cordova应用程序变得空白时发现了这个问题

    最近有人见过这个吗?

    此外,如果我将“plugins”文件夹的名称更新为大写“插件” - 那么就没有问题,文件夹和文件将被发送到Mac / remotebuild进行构建:P这是有效的如果我自己创建了只有1个或2个插件文件夹,但我们也有使用bower下拉的第三方javascript库,这些具有插件文件夹的库会导致问题(例如我们使用有自己的插件的Durandaljs文件夹也是)

    我已按照说明使用此链接 - https://msdn.microsoft.com/library/dn757054(v=vs.140).aspx#ios

    将remotebuild安装到我的Mac上

    提前致谢。

3 个答案:

答案 0 :(得分:0)

感谢您使用我们的VS Cordova VS工具并报告此问题。它是remotebuild工作方式的合法问题,我们在下一个版本中解决了这个问题(很快就会出来)。请注意npm for remotebuild上的发布。然后请通过将“plugins”文件夹重命名为其他内容来解决问题。

谢谢, 浸泡。

答案 1 :(得分:0)

我几天前安装了Cordova Tools Update 3,并且也遇到了这个问题。 Android插件编译得很好,但缺少iOS插件。

在Mac上,我正在运行这些版本:

Xcode: 6.4
Cordova: 5.3.3
node: 0.10.40
remotebuild: 2.0.1
taco-remote-multiplexer: 1.1.1
taco-remote-lib: 1.1.1

这是我到目前为止所尝试的内容:

  • 在Windows端卸载/重新安装工具
  • 更新了Mac端的工具
  • 删除并重新添加iOS平台到Cordova项目
  • 删除并重新添加所有插件
  • plugins文件夹重命名为项目中的Plugins
  • 使用插件在Visual Studio中创建了一个全新的Cordova项目
  • 手动删除项目中platforms文件夹的内容,并删除项目ios.json文件夹中的ios_remote.jsonplugins个文件

这是我注意到的:

  • 当我在Visual Studio中进行构建时,应用程序的.tgz文件传输到Mac 确实包含我的插件,但Xcode项目不包含任何插件(没有遗漏,根本没有包括在内)。构建成功,但由于缺少插件(没有相机,没有钥匙串),应用程序功能减少。
  • 更新后,在安全模式下运行在我的Mac上无效。我必须在配置文件和Visual Studio的设置中禁用安全模式才能使其成功连接。打开安全模式会导致此VS2015错误:基础连接已关闭:发送时发生意外错误。
  • remote-builds/taco-remote/builds/xxxxx/cordovaApp/plugins目录只有ios.json文件。
  • remote-builds/taco-remote/builds/xxxxx/cordovaApp/platforms/ios/myappname/Plugins只有README个文件。
  • 在更新3之前,这两个目录都将充满插件代码文件。
  • cordova_plugins.js文件以前有很长的插件信息列表,但现在只包含这个:

    cordova.define('cordova/plugin_list', function(require, exports, module) {
    module.exports = [];
    module.exports.metadata = 
    // TOP OF METADATA
    {}
    // BOTTOM OF METADATA
    });
    

    修改此文件不会执行任何操作,因为构建过程似乎会动态包含插件信息,并在编辑后将其还原为此。

是否有手动解决方法将这些内容包含在iOS版本中?我们还能做些什么来帮助解决这个问题?

更新:我没有将项目中plugins文件夹的测试重命名撤消到Plugins,然后执行了清理然后重建。现在,插件似乎正在正确地复制到iOS。我想在我的案例中,当解决Cordova应用程序问题时,总是要做重建,而不是增量构建

答案 2 :(得分:0)

丹回答了我的一天!

对我来说,将plugins文件夹重命名为Plugins可以实现神奇。

如果您使用Visual Studio构建.ipa,则验证插件未被省略的最简单方法是将.ipa的扩展名重命名为.zip并在任何归档软件中打开它。只需导航到Payload\<your app id>.app\www文件夹即可。如果你看到plugins文件夹很酷,如果没有 - 你的iOS应用程序将无法使用插件。

希望它有所帮助。