【问题标题】:Can't deploy Visual Studio Cordova app to iPhone using remote agent: CordovaModuleLoadError无法使用远程代理将 Visual Studio Cordova 应用程序部署到 iPhone:CordovaModuleLoadError
【发布时间】:2015-06-09 19:33:13
【问题描述】:

我正在尝试通过 Remote Agent > Local Device 使用 Visual Studio 2015 RC 将我的 Cordova 应用程序部署到我的 iPhone。我已成功安装、运行远程代理并将其连接到我的 Visual Studio。根据此链接,当我运行本地设备时,iTunes 应该会在我的 Windows PC 上弹出并将应用程序安装到我的 iPhone:

https://msdn.microsoft.com/en-us/library/dn757056.aspx

New build request submitted:
/build/tasks?command=build&vcordova=4.3.0&cfg=debug&options=--device
{ 'accept-language': 'en-US',
  host: '192.168.0.9:3000',
  connection: 'keep-alive',
  'transfer-encoding': 'chunked' }
New build request submitted for cordovaVersion: 4.3.0; buildCommand: build; configuration: debug
Build will be executed under: /Users/JP/remote-builds/builds/3563
Saving build request payload to : /Users/JP/remote-builds/builds/3563
Saved upload to /Users/JP/remote-builds/builds/3563/upload_3563.tgz
Extracting /Users/JP/remote-builds/builds/3563/upload_3563.tgz to /Users/JP/remote-builds/builds/3563/cordovaApp...
POST /build/tasks?command=build&vcordova=4.3.0&cfg=debug&options=--device 202 5123ms - 487b
GET /build/tasks/3563 200 0ms - 487b
Extracted app contents from uploaded build request to /Users/JP/remote-builds/builds/3563/cordovaApp. Requesting build.
Taking 3563 as current build
Building cordova app CordovaApp2 at appDir /Users/JP/remote-builds/builds/3563/cordovaApp
Opened build log file /Users/JP/remote-builds/builds/3563/build.log
Done building 3563 : error CordovaModuleLoadError [ '4.3.0' ]
Done with currentBuild. Checking for next build in queue.
GET /build/tasks/3563 200 4ms - 142.31kb
GET /build/tasks/3563/log 200 1ms

另外,从 Visual Studio 我得到错误:

EACCES, open '/Users/JP/.npm/_locks/cordova-46ce3f50013cb5f4.lock'  CordovaApp2 C:\Users\J\Documents\Visual Studio 2015\Projects\CordovaApp2\CordovaApp2\MDAVSCLI   1

Remote build error from the build server undefined: {1} CordovaApp2 C:\Users\J\Documents\Visual Studio 2015\Projects\CordovaApp2\CordovaApp2\MDAVSCLI   1

运行远程测试时:

$ vs-mda-remote test --device
Initializing self test for https
downloading cert for pin 360583
Downloading client cert for selftest from https://Jamess-Mac-mini.local:3000/certs/360583 to /Users/JP/remote-builds/selftest/selftest-client.pfx
pfxPath: /Users/JP/remote-builds/selftest/selftest-client.pfx
serverUrl: https://Jamess-Mac-mini.local:3000
buildUrl: https://Jamess-Mac-mini.local:3000/build/tasks?vcordova=4.3.0&cfg=release&command=build&options=--device
Response statusCode: 202
{ 'x-powered-by': 'Express',
  'content-type': 'application/json',
  'content-location': 'https://jamess-mac-mini.local:3000/build/tasks/3570',
  'content-length': '489',
  date: 'Tue, 09 Jun 2015 22:05:58 GMT',
  connection: 'close' }
Response: {
  "buildNumber": 3570,
  "status": "uploaded",
  "cordovaVersion": "4.3.0",
  "buildCommand": "build",
  "configuration": "release",
  "options": "--device",
  "buildDir": "/Users/JP/remote-builds/builds/3570",
  "serverDir": "/Users/JP/remote-builds",
  "submissionTime": "2015-06-09T22:05:58.691Z",
  "changeList": null,
  "tgzFilePath": "/Users/JP/remote-builds/builds/3570/upload_3570.tgz",
  "statusTime": "2015-06-09T22:05:58.763Z",
  "message": "Uploaded build request payload."
}
buildingUrl: https://Jamess-Mac-mini.local:3000/build/tasks?vcordova=4.3.0&cfg=release&command=build&options=--device
[1] Response:  {
  "buildNumber": 3570,
  "status": "error",
  "cordovaVersion": "4.3.0",
  "buildCommand": "build",
  "configuration": "release",
  "options": "--device",
  "buildDir": "/Users/JP/remote-builds/builds/3570",
  "serverDir": "/Users/JP/remote-builds",
  "submissionTime": "2015-06-09T22:05:58.691Z",
  "changeList": null,
  "tgzFilePath": "/Users/JP/remote-builds/builds/3570/upload_3570.tgz",
  "messageId": "CordovaModuleLoadError",
  "statusTime": "2015-06-09T22:05:59.752Z",
  "appDir": "/Users/JP/remote-builds/builds/3570/cordovaApp",
  "appName": "HelloCordova",
  "messageArgs": [
    "4.3.0"
  ]
}

【问题讨论】:

  • 解决了这个问题:npm sudo cache clear

标签: ios cordova visual-studio-cordova


【解决方案1】:

您可能会遇到以下Known Issue。基本上,您的 npm 缓存中有一个文件是在以管理员身份运行 (sudo) 时添加的。结果,vs-mda-remote 无法访问它。下面的命令解决了这个问题(事实上,这是最新版本的 npm 默认执行的操作)。


iOS 构建相关的已知问题

安装最新版本的 vs-mda-remote 软件包后,您可能需要在启动远程代理之前运行以下命令。这些命令确保您的用户在使用旧版本的 Node.js 和 npm 时有权访问您的主目录中的 npm 包缓存的内容。较新版本的 Node.js 和 npm 会自动为您执行此操作。

sudo npm cache clear 
sudo chown -R `whoami` ~/.npm

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-22
    • 2016-08-07
    • 1970-01-01
    相关资源
    最近更新 更多