0

我在 TACO (Visual Studio 15) 中有一个 Cordova 项目,该项目用于去年使用 TFS 为 Android 和 iOS 构建。我现在重新审视了该项目并升级了几乎所有内容的版本以支持最新版本的 Android 和 iOS。

  • 科尔多瓦 5.4.1 -> 6.4.0
  • 科尔多瓦安卓 4.1.1 -> 6.0.0
  • 科尔多瓦-ios 3.8 -> 4.3.1
  • 科尔多瓦插件文件 4.1.0 -> 4.3.2
  • 科尔多瓦插件文件传输 1.5.0 -> 1.6.2
  • 科尔多瓦-插件-文件-opener2 2.0.2 -> 2.0.8
  • 科尔多瓦插件白名单 1.2.1 -> 1.3.2
  • 节点 0.12.2 -> 6.10.1
  • Android SDK 24.0.2 -> 25.2.5
  • Java JDK 1.7.xx -> 1.8.0.25
  • XCode 6.3 -> 8.2.1
  • OSX 10.10 -> 10.11.5
  • ios-sim 4.1.1 -> 5.0.13
  • ios-部署 1.7.0 -> 1.9.1
  • 远程构建 2.1.1 -> 2.1.3
  • 优雅-fs 4.1.3 -> 4.1.11

两者都是从 Visual Studio 2015 内部构建的(iOS 使用 remotebuild),并且在通过 TFS 对 Android 构建进行了很多调整之后。

但是通过 TFS 的 iOS 抛出以下错误

  Executing "after_platform_add"  hook for all plugins.
  ------ Updating plugins
  ------ Currently installed plugins: cordova-plugin-compat@1.1.0,cordova-plugin-file@4.3.2,cordova-plugin-file-opener2@2.0.8,cordova-plugin-file-transfer@1.6.2,cordova-plugin-whitelist@1.3.2
  ------ Currently installed dependent plugins: cordova-plugin-compat,cordova-plugin-file
  ------ Currently configured plugins: 
MSBUILD : cordova-build error : Error: The edge module has not been pre-compiled for node.js version v6.10.1.

我在使用 Android TFS 构建时遇到了这个问题,但是在 TFS 构建框上安装更新版本的 edge 解决了这个问题。这个 iOS 版本是同一个 TFS 服务器,并在同一个帐户下运行。

我知道 vs-tac 带有 5.0.0 版本的 edge,这可能是问题的根源,但我已经在构建服务器上更新了 edge,并且 Android 构建很开心。VS 2015 中还有一个设置用于在我的开发 PC 上使用沙盒版本的节点(我已勾选),但在 TFS 中启动构建时我找不到任何类似的设置 - 尽管这可能是一个红鲱鱼。只是为了更好地衡量我已经在我的 Mac 上更新了 edge,但我认为构建实际上并没有达到调用 remotebuild 的程度。

任何帮助将不胜感激

4

1 回答 1

0

好的,我终于让 TFS 将构建传递给 Mac 上的远程构建服务器,但我不得不将节点降级到 5.12.0,因为 vs-tac 1.0.42 依赖于边缘 5.0.2,而这又似乎只能工作使用节点 5.x。

回顾了我使用的cordova平台和插件的所有platform.js文件,这个版本的节点已经足够晚了。

希望到 2018 年 4 月,cordova 不再支持低于 6.x 的节点时,将会有一个使用更新版本边缘的 TACO 更新。

我希望这个答案对其他人有用。

于 2017-04-04T11:23:01.107 回答