Visual Studio Apache Cordova 工具 - iOS remotebuild - 省略 www 中的 "plugins" 文件夹

Visual Studio Tools for Apache Cordova - iOS remotebuild - Omitting "plugins" folder within www

当尝试从 Visual Studio 2015 构建或调试 iOS Cordova 应用程序时,使用最新版本的 Visual Studio Apache Cordova 工具 (14.0.50902.4),我遇到了在我的 Mac.

上通过 remotebuild 构建期间,任何名称为 "plugins" 的文件夹都将从 www 目录中被忽略的问题

在 www 文件夹之外的实际 cordova "plugins" 目录不受影响。

重现步骤 -

  1. 在 Mac 上,打开终端并 运行 远程构建
  2. 在 PC 上,通过 Visual Studio 触发 iOS 构建或调试,并打开一个 Cordova 项目。
  3. 在 Mac 上,打开另一个终端并转到包含从 Visual Studio 发送到 remotebuild 以进行构建的远程构建文件的文件夹 -

/Users/someuser/.taco_home/remote-builds/taco-remote/builds/xxxxx/cordovaApp/

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

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

最近有人遇到过这个吗?

此外,如果我将 "plugins" 文件夹的名称更新为大写 "Plugins" - 那么就不会有任何问题,文件夹和其中的文件将被发送到 Mac / remotebuild for building :P 如果只有 1 或 2 个我自己创建的插件文件夹,这会起作用,但我们也有第三方 javascript 库,这些库使用 bower 下拉,这些库有插件文件夹会导致问题(例如,我们使用 Durandaljs,它也有自己的插件文件夹)

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

在我的 Mac 上安装 remotebuild

提前致谢。

感谢您使用我们的 Apache Cordova VS 工具并报告问题。这是 remotebuild 工作方式的合法问题,我们会在下一个版本(即将发布)中修复此问题。请留意 npm for remotebuild 上的发布。到那时,请通过将 "plugins" 文件夹重命名为其他名称来解决此问题。

谢谢, 浸泡。

我几天前安装了 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

这是我到目前为止尝试过的方法:

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

这是我注意到的:

  • 当我在 Visual Studio 中构建时,传输到 Mac 的应用程序的 .tgz 文件 是否 包含我的插件,但是 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 构建中?我们还能做些什么来帮助解决这个问题?

UPDATE:我没有撤消我在项目中将 plugins 文件夹重命名为 Plugins 的测试,并执行了清理然后重建。现在插件似乎正在正确复制到 iOS。我想我的经验教训是在解决像这样的 Cordova 应用程序问题时,始终执行 Rebuild,而不是增量 Build

丹的回答让我很开心!

对我来说,将 plugins 文件夹重命名为 Plugins 很神奇。

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

希望对大家有所帮助。