React-Native ios App在没有报告的情况下崩溃

前端之家收集整理的这篇文章主要介绍了React-Native ios App在没有报告的情况下崩溃前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用React Native建立一个iOS应用程序,并尝试在手机上进行测试.

如果我将手机插入计算机并直接“构建”到手机上,则应用程序已正确构建并打开/正常运行,没有任何问题.

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

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

如果有任何代码或其他数据可能需要查看,请通知我.有些是保密的,但我会尝试发布一个近似版本.

正如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返回消息.

但是,通过TestFlight或Fabric.io来捆绑/归档/发送应用程序的内容会缩小并修改JavaScript,从而改变类名.所以相反,如果我这样做 – var msg = new Message(data,relations); msg.className – 我会得到一个随机变量名,像’t’.

这是我的应用程序中的一个问题,因为我的主页包含一个从className开始的switch语句:

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 – ‘t’的值是.所以,如果我试图隧道进入,说,颜色值,我会打错误,因为我试图访问的颜色属性为null.

为什么没有报告,我不知道(我遵循克里斯的建议,并安装了哨兵,但似乎还没有报告错误).

但是这是怎么回事只有当我通过TestFlight / Fabric在手机上安装应用程序时,才会发生分类/ uglification,这就是为什么应用程序只会在这些情况下崩溃.

希望这样可以节省任何一个遇到类似错误的人从头发脱落.

猜你在找的React相关文章