反应原生 iOS 应用程序 - 在发布模式下崩溃

Posted

技术标签:

【中文标题】反应原生 iOS 应用程序 - 在发布模式下崩溃【英文标题】:React native iOS app - crashing on release mode 【发布时间】:2017-10-25 04:15:33 【问题描述】:

您好我是新来的反应原生并尝试进行发布构建。我已将 jsCodeLocation 更改为 jsbundle。还更改了架构以在发布模式下运行。但是当我运行应用程序并单击一个按钮时,整个应用程序都崩溃了。

我按照以下网址中的示例进行操作

https://medium.com/react-native-development/deploying-a-react-native-app-for-ios-pt-1-a79dfd15acb8

这是按钮点击的代码

moveToJoinScreen()
    this.props.navigation.navigate('JoinNowScreen')

这是错误

2017-10-25 17:10:50.240 [error][tid:com.facebook.react.javascript] undefined is not an object (evaluating 'console.tron.log')

2017-10-25 17:10:50.264 [fatal][tid:com.facebook.react.ExceptionsManagerQueue] Unhandled JS Exception: undefined is not an object (evaluating 'console.tron.log')

2017-10-25 17:10:50.270 StudentCardApp[1101:710561] *** Terminating app due to uncaught exception 'RCTFatalException: Unhandled JS Exception: undefined is not an object (evaluating 'console.tron.log')', reason: 'Unhandled JS Exception: undefined is not an object (evaluating 'console.tro..., stack:

<unknown>@1222:448

navigate@722:256

value@779:867

onPress@779:1314

touchableHandlePress@575:1882

_performSideEffectsForTransition@488:8512

_receiveSignal@488:7295

touchableHandleResponderRelease@488:4739

Gt@435:21830

invokeGuardedCallback@435:22155

invokeGuardedCallbackAndCatchFirstError@435:22277

C@435:1870

y@435:2072

nn@435:22882

rn@435:22989

P@435:3019

processEventQueue@435:23832

G@435:5536

handleTopLevel@435:27383

<unknown>@435:28885

qn@435:28110

z@435:6018

perform@436:3484

batchedUpdates@436:18575

Ce@435:10516

Q@435:6049

K@435:6111

_receiveRootNodeIDEvent@435:28856

receiveTouches@435:29236

value@340:3107

<unknown>@340:840

value@340:2535

value@340:812

'

*** First throw call stack:

(0x2488f91b 0x2402ae17 0x2488f861 0x8d2c9 0x8817f 0x248944c4 0x247ba87d 0x247be2f7 0x8b1df 0xd19e9 0xd1839 0x53ab7f 0x545493 0x53dde1 0x546ecf 0x5467cf 0x245c1b29 0x245c1718)

libc++abi.dylib: terminating with uncaught exception of type NSException

它在调试模式下运行良好。有人可以帮我解决这个问题。提前致谢

【问题讨论】:

一个好建议是在记录内容时使用__DEV__ &amp;&amp; console.tron.log('something') 100% 证明。 【参考方案1】:

好像您正在使用Reactotron。 问题是 Reactotron 在非 DEV 版本中不可用。 在讨论的地方查看这个问题https://github.com/infinitered/reactotron/issues/433

【讨论】:

【参考方案2】:

我通过以下方式解决了问题:

    使用 VS 代码 单击左上角的放大镜按钮,在工作区中搜索和替换,输入console.tron.log 并替换为if (__DEV__) console.tron.log 文件>全部保存。 成功。

【讨论】:

【参考方案3】:

最终使用了这个插件

https://github.com/infinitered/babel-plugin-ignite-ignore-reactotron

这会移除 Reacrtotron。

更多解释见以下链接

https://github.com/infinitered/reactotron/issues/433

【讨论】:

以上是关于反应原生 iOS 应用程序 - 在发布模式下崩溃的主要内容,如果未能解决你的问题,请参考以下文章

对任何崩溃或错误 iOS 做出反应原生白屏

反应本机应用程序在调试模式下工作,但在 ios 上不工作发布模式

在反应原生地图中使用 Geolocation.getCurrentPosition 时应用程序崩溃

iOS 上的 Expo 在没有错误的情况下崩溃了

在 Google Play 的独立版本上反应原生地图崩溃

在启动画面上反应原生应用程序 firebase 崩溃报告