什么可以使功能 运行 成为模拟器而不是设备?

What can make a functionality run a simulator and not on the device?

我正在使用 React Native 构建应用程序。 我正在获取从数据库中获取的一组值,以便为用户提供一个每 X 秒(3s atm)刷新一次的折线图。 这在 iOS 模拟器上运行良好,但当部署到 TestFlight 和 运行 设备上的应用程序时,曲线没有显示,什么也没有发生。 因为我可以使用其他一些需要从数据库中获取数据的功能,所以我发现问题不是来自 API 请求。 我目前使用 react-native-chart-kit,但我也尝试使用 react-native-svg-charts,问题仍然存在.

有什么提示吗?

当我显示获取值的数组时,问题是一样的,每 3 秒模拟器上就会出现一个新值,但它不会在设备上显示任何内容。

终于找到问题了

问题是在 API 请求中发现的。 我的请求需要 2 个时间戳参数:开始时间/结束时间

我总是使用浏览器调试应用程序并从 RN 项目启动 ios sim。

这次我尝试 运行 来自 Xcode 的项目并将 Scheme 编辑为 release 而不是 debug 。

当我从 Xcode 检查控制台时,我注意到我的开始时间戳被视为 'NaN'.. 而不是结束时间戳。

回到RN项目,回到浏览器控制台,时间戳没问题。

我做了一些随机更改,现在可以正常工作了。

这是我在解决问题之前的情况:

function formatDate(rawStamp) {
        const now = new Date(rawStamp);
        var convertToStr =
            now.getFullYear() +
            "-" +
            ("00" + (now.getMonth() + 1)).slice(-2) +
            "-" +
            ("00" + now.getDate()).slice(-2) +
            " " +
            ("00" + now.getHours()).slice(-2) +
            ":" +
            ("00" + now.getMinutes()).slice(-2) +
            ":" +
            ("00" + now.getSeconds()).slice(-2);

   
           return convertToStr
   }

   const nowStr = formatDate(Date.now() - 7200000) 
   const gameStampMinusX = Date.parse(nowStr) - (300000) 
   const gameStampMinusXToStr = formatDate(gameStampMinusX)

解决问题的方法如下:

   const nowStr = formatDate(Date.now() - 7200000)
   const gameStampMinusX = Date.now() - 7200000 - 300000
   const gameStampMinusXToStr = formatDate(gameStampMinusX)

我是新手,所以我无法解释这种行为,但似乎这个小改动让 Xcode 识别了时间戳,并正确地处理了 API 请求。

如果有人可以解释,请随意!