反应原生 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__ && 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 上不工作发布模式