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;
}
最後の行が問題でした。私のローカルシミュレータで、私はそれを差し込んで私の携帯電話にアプリケーションを構築する場合、これは正常に動作します。メッセージモデルがBaseModelから継承する場合、var msg = new Message(data, relations); msg.className
を呼び出すとMessage
が返されます。
しかし、TestFlightやFabric.ioでアプリケーションをバンドル/アーカイブ/送信すると、がのように、クラス名が変更されてしまいます。そこで代わりに、私がこれを行うと、var msg = new Message(data, relations); msg.className
- 't'のようなランダムな変数名が返されます。 - 't'
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
}
しかし、this.props.className
の値を予想通り、'Message'
ませんでした:私のホームページはクラス名のオフに働いていたswitch文が含まれているため
これは、私のアプリで問題でしたありました。そして、color
の値にトンネルしようとすると、null
のcolor
プロパティにアクセスしようとしていたため、エラーが発生しました。
なぜ報告されなかったのですか(私はChrisの提案に従い、Sentryをインストールしましたが、まだそのエラーを報告していないようです)。
しかし、それは何が起こっていたのです。私がTestFlight/Fabricを介して電話機にアプリケーションをインストールしたときに、細工/脆化がしか発生しなかったため、そのような状況でアプリがクラッシュしたのです。
これにより、似たようなバグに遭遇している人は誰でも自分の髪を引き裂くことがなくなります。
私はこの問題についてまだ聞いていません。バンドルを使用するようAppDelegate.mを更新したと仮定しても問題ありませんか?私が想定しているのは、RNバージョンが好きなのです。正気のチェックと同じように、おそらく新しい新鮮なアプリを構築して、それが期待どおりに機能することを確認してください。それから、試行錯誤し、破られるまでそれにスケッチのあるビットを追加する。吸いますが、それはまっすぐに思い浮かぶものです。 –
Ha yeah。それはまさに私がやることにしたものです。クラッシュレポートがないにもかかわらず、新アプリがうまく動作するようになっても、自分のアプリについては何かであるように見えます。アプリを1つのHello Worldページに導きます。 – Sasha
その場合、私はあなたのコードを共有することなくここで多くの助けを得ることになるとは思わない。残念ながら、TestFlightとCrashlyticsは、ネイティブ側でクラッシュが発生した場合にのみ通知します。 JSのクラッシュレポートを取得するには、https://getsentry.com/、https://trackjs.com/などのようなものを試す必要があります。 –