【问题标题】:Can't start Cordova debugging to iOS simulator无法启动 Cordova 调试到 iOS 模拟器
【发布时间】:2016-02-10 20:21:30
【问题描述】:

我已按照以下链接中的说明“在云中构建和模拟 Cordova iOS 应用程序”。 https://taco.visualstudio.com/en-us/docs/build_ios_cloud/

完成说明后,我能够构建并让 iOS 模拟器正常工作,但是,我无法附加调试器。

remotebuild 中显示的消息是:

GET /cordova/build/5655/debug 500 10.865 ms - 28

在 Visual Studio 中,我在“调试”窗口中看到以下内容:

Starting launch process C:\Program Files (x86)\nodejs\node.exe "(redacted)\node_modules\vs-tac\emulator.js" --platform ios --action launch --path "(redacted)\buildInfo.json" --serverUrl https://(redacted):3000/cordova --certificateName (redacted) --language en-US --loglevel info  --cliVersion 5.4.1 --npmInstallDir "(redacted)"  --deployTarget "iPhone 5"
Timed out connecting debugger to remote Apache Cordova app. See Output window for JavaScript console output.
------ Cordova tools 5.4.1 already installed.
Requesting emulate on iOS Simulator for buildNumber 5655 on server https://(redacted):3000/cordova...
Emulated - Successfully sent to ios Simulator
------ Cordova tools 5.4.1 already installed.
Requesting debug on remote iOS device for buildNumber 5655 on server https://(redacted):3000/cordova...
Failed to Debug iOS remote for build (redacted)\buildInfo.json to https://(redacted):3000/cordova :
iPhone 5

我的本​​地开发机器使用的是 Visual Studio 2015 和 Cordova 5.4.1。我在本地安装了 Node v0.12.2,在 MacInCloud 上安装了 v0.12.9。按照上面链接中的说明,我不是 Mac 机器上的管理员。

我也已经尝试过这个 SO 答案中建议的说明:Visual Studio Debugger failing to connect to remote Apache Cordova app in iOS simulator

【问题讨论】:

  • 这是另一篇最近的帖子,您可以尝试一些步骤:stackoverflow.com/questions/35208495/…
  • 感谢您的建议。我按照信中的说明进行操作,但错误消息是一样的。
  • 嗨,Jacob - 我在 Microsoft 的 Apache Cordova 工具团队工作。目前,我们正在研究使开发人员更容易从 VS 中的远程构建错误中恢复的方法。我希望与像您这样遇到远程构建问题并联系社区进行故障排除的人聊天。客户反馈是我们做出产品设计决策的第一方式,所以如果您能在本周或下周抽出 20 分钟的电话时间来谈谈您如何理解和克服构建问题,我会很高兴。 jomatthi [at] 微软 [dot] com

标签: visual-studio-cordova


【解决方案1】:

其他人提供的所有建议和链接都很有帮助,但最终我对问题的评估不是 Mac 上的管理员/root 用户。在我的原始问题中链接的 Visual Studio Cordova 文档建议您可以在没有管理员/root 访问权限的情况下在 Mac 上完成您需要的所有操作,但根据我的经验,情况并非如此。

感谢 MacInCloud 小组,他们在更改我请求的权限和重新安装软件包(如 brew、ios-webkit-debug-proxy、remotebuild 等)方面非常有帮助……但过了一会儿来回解决问题的方法被证明是痛苦的。当我从托管 MacInCloud 服务器切换到专用服务器时,一切都几乎立即运行。

回首往事,我认为 remotebuild 的初始执行,它执行 brew - 没有在盒子上成为管理员 - 导致整个过程走向南方。当我第一次运行 remotebuild 时,我被警告说它会安装一些可能需要 root 访问权限的 brew 组件。这对我来说应该是一个警告信号,不是盒子上的管理员将是一个问题......

尽管我能够让专用 MacInCloud 服务器正常工作,但我学到的关于控制 Mac 的教训促使我只买了一台 Mac Mini。这有点难以设置,因为我现在自己做所有事情,但最终我认为它最终会得到回报。

对于其他在类似问题上苦苦挣扎的人,这里是我在此过程中学到的一些东西的脑筋急转弯:

  1. 您不一定需要让 Visual Studio 与 Mac 对话来调试 Cordova 应用程序。您可以从 Mac 使用 Safari Web Inspector。 https://blog.nraboy.com/2015/10/debugging-your-apache-cordova-ios-app-with-safari/。尽管我终于让 VS 工作了,但我实际上更喜欢这个,因为它更像 Chrome 的调试器,而我更喜欢 Visual Studio 的。
  2. 其他 cmets 和链接中提到的 ios-webkit-debug-proxy NPM 包基本上是 Visual Studio 用来调试模拟器的代理,其方式与 Safari 上面提到的完全相同。要使此代理正常工作,您还必须被允许通过端口 9221-9322 连接到 Mac。 https://github.com/google/ios-webkit-debug-proxy。在得知之前我以为我只需要为 remotebuild 代理打开端口 3000...
  3. 从 remotebuild 启动 iOS 模拟器所需的包是 ios-sim,它在启动模拟器时偶尔超时并导致调试器无法附加。这是一个已知的限制。 https://github.com/phonegap/ios-simhttps://blogs.msdn.microsoft.com/visualstudio/2014/11/13/tools-for-apache-cordova-update-ios-debugging-windows-8-1-support/(参见 cmets)。
  4. 如果您觉得需要安装/卸载 brew,这很容易做到。只需运行安装脚本,如果已安装,它将为您提供有关如何卸载的说明。 http://brew.sh/https://github.com/Homebrew/homebrew/blob/master/share/doc/homebrew/Troubleshooting.md#troubleshooting。卸载或重新安装 NPM 包同样简单,Google 是您的朋友。
  5. 阅读并重新阅读以下两个链接以设置 Mac:https://taco.visualstudio.com/en-us/docs/ios-guide/https://taco.visualstudio.com/en-us/docs/build_ios_cloud/。正确设置 RemoteBuild.config 对于确保安全连接正常工作至关重要——尤其是如果您想在家中通过 Internet 访问您的 Mac Mini。
  6. 如果您要远程处理到 Mac,我强烈推荐 iRAPP 或其他一些 VNC 替代方案。我的经验是,VNC 痛苦地缓慢,并且在您解决问题时连接不良只会导致更严重的问题。 http://www.coderebel.com/products/irapp/
  7. 如上所述,当我请求支持时,MacInCloud 人员非常棒,但如果您确实需要超过 6 个月的 root 访问权限,Mac Mini 的成本低于专用服务器计划。

干杯

【讨论】:

    【解决方案2】:

    由于是对/cordova/[...]/debug 的调用失败,因此您可能没有安装ios_webkit_debug_proxy。您可以尝试确保安装了自制软件(来自http://brew.sh)并运行brew install ios-webkit-debug-proxy。之后您应该能够运行ios_webkit_debug_proxy 而不会出现错误。

    如果成功运行,那么您应该能够退出ios_webkit_debug_proxy,并且应该可以通过 remotebuild 进行调试。

    【讨论】:

      猜你喜欢
      • 2015-07-08
      • 2015-12-09
      • 2017-02-27
      • 2016-07-19
      • 1970-01-01
      • 1970-01-01
      • 2015-11-10
      • 2021-07-14
      相关资源
      最近更新 更多