【问题标题】:Cordova/iOS: Retrieving Console Log from Release Build?Cordova/iOS:从发布版本中检索控制台日志?
【发布时间】:2020-10-29 20:30:10
【问题描述】:

我正在尝试调试我的应用的发布/TestFlight 版本的问题。它是用 Cordova 7.1.0 和 cordova-ios 5.1.1 构建的。在调试模式下部署到设备/模拟器时它工作正常,但来自 TestFlight 的发布版本挂在启动画面上。我怀疑启动例程中的某些内容失败了,但设备日志中没有任何内容。我真的很想从 Web 视图中查看控制台日志——是否可以将我的应用程序的控制台日志重定向到设备日志,以便更好地了解正在发生的事情?

【问题讨论】:

  • 您无法在发布版本中调试/使用控制台。

标签: ios cordova


【解决方案1】:

很遗憾,无法从应用程序中获取控制台日志。但是,您可以利用或构建 API 端点并重载 console.log 以输出到控制台(以便在开发测试时看到它)和 API 端点(这样您就可以看到生产中可能发生的情况)。

以下只是一个非常基本的示例,但只是为了让您了解(至少从前端)您将要查看的内容。

window.LogToConsole = window.console.log;
window.console.log = (message) => {
  window.LogToConsole(new Date, message);
  const data = {
    type: "LOG",
    data: mesage,
  };
  fetch('https://api.mydomain.tld/v1/log',
    {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'Authorization': `Bearer ${userToken}`
    },
    body: JSON.stringify(data) 
  });
};

window.ErrorToConsole = window.console.error;
window.console.error = (message) => {
  window.ErrorToConsole(new Date, message);
  const data = {
    type: "ERROR",
    data: mesage,
  };
  fetch('https://api.mydomain.tld/v1/log',
    {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'Authorization': `Bearer ${userToken}`
    },
    body: JSON.stringify(data) 
  });
};

您的 API 端点可以使用数据库或简单的文件日志,这完全取决于您。发挥创意!我希望这个想法会有所帮助。

【讨论】:

    猜你喜欢
    • 2019-01-21
    • 1970-01-01
    • 2016-02-17
    • 1970-01-01
    • 1970-01-01
    • 2012-01-25
    • 2017-03-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多