gpt4 book ai didi

ios - React-Native ios App 崩溃无报告

转载 作者:IT王子 更新时间:2023-10-29 08:03:46 32 4
gpt4 key购买 nike

我正在使用 React Native 构建一个 iOS 应用程序并尝试让它在手机上进行测试。

如果我将手机插入电脑并直接“构建”到手机,应用程序会正确构建并正确打开/运行,没问题。

但是,如果我尝试使用 iTunes Connect 的 TestFlight 或 Fabric with Crashlytics 将其存档并发送到手机,应用程序会在打开时立即崩溃。它简要地显示了启动屏幕,但仅此而已。

此外,一旦我重新插入手机,在 TestFlight、Crashlytics 或 XCode 中都没有崩溃报告。所以我在黑暗中操作,没有任何关于发生了什么问题的信息。在网上找不到类似的问题,所以我想我只是问问。有什么想法可能会出错吗?

如果您需要查看任何代码或其他数据,请告诉我。其中一些是 secret 的,但我会尝试发布一个大概的版本。

最佳答案

正如 Chris Geirman 所建议的,问题是 JavaScript 错误。我不确定有类似问题的人会找到这个线程,但如果他们找到了,这里是发生的奇怪错误。

我创建了一个简单的 ORM 系统,带有一个 BaseModel 和一堆从它继承的模型。 BaseModel 构造函数如下所示:

  constructor(props = {}, relations = {}) {
Object.keys(props).forEach((k) => {
// Save props to object
this[k] = props[k];
});

this.relations = relations;
this.className = this.constructor.name;
}

最后一行是问题所在。在我的本地模拟器上,如果我通过插入它来将应用程序构建到我的手机上,这工作正常。例如,如果 Message 模型继承自 BaseModel,则调用 var msg = new Message(data, relations); msg.className 返回 Message

但是有关通过 TestFlight 或 Fabric.io 捆绑/归档/发送应用程序的一些事情会缩小和丑化 JavaScript,从而更改类名。所以相反,如果我这样做—— var msg = new Message(data, relations); msg.className -- 我会取回一个随机变量名,类似于“t”。

这是我的应用程序中的一个问题,因为我的主页包含一个 switch 语句,该语句与 className 相关:

iconContent() {
return {
Message: {
icon: <Image style={styles.feedItemIconImage} source={ require('../assets/img/icon_message.png') } />,
color: c.grass
}, ...
}[this.props.className] // from the model item
}

'Message' 并非如预期的那样是 this.props.className 的值 -- ' 是。因此,如果我试图进入,比方说,color 值,我会遇到一个错误,因为我试图访问 color 属性

为什么不报,我也不知道(我按照Chris的建议安装了Sentry,但是好像还是不报那个错)。

但这就是发生的事情。当我通过 TestFlight/Fabric 在手机上安装应用程序时发生缩小/丑化,这就是应用程序仅在这些情况下崩溃的原因。

希望这可以避免任何遇到类似错误的人撕掉他们的头发。

关于ios - React-Native ios App 崩溃无报告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35785747/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com