Xcode发行版中的Bundlejs错误(react-native)

时间:2018-06-29 21:28:25

标签: ios xcode react-native babeljs react-native-ios

由于某些原因,通过react-native构建应用程序的发行版时,出现以下错误。

  

***由于未捕获的异常'RCTFatalException,正在终止应用程序:未处理的JS异常:t.typeof不是函数。 (在't.typeof(“ function” == typeof Symbol?Symbol.iterator:“ @@ iterator”)'中,'t.typeof'未定义)(/ Users /../ THEAPP.app/main.jsbundle: 11)”,原因:“未处理的JS异常:t.typeof不是函数。 (在't.typeof(“ function ...”

这是在我的bundlejs文件中发现上述错误的代码源:

!(function(e){"use strict";var r,t=e.babelHelpers={};t.typeof="function"==typeof Symbol&&"symbol"===t.typeof("function"==typeof Symbol?Symbol.iterator:"@@iterator")?

我已经尝试了这两种发布版本的方法:

  1. 通过将“方案”编辑为发行版捆绑包来制作捆绑包
  2. 使用以下方法自己导出分发包:react-native bundle --entry-file index.js --platform ios --dev false --bundle-output ios/main.jsbundle --assets-dest ios

我都遇到了相同的错误。当然,这是在我将 AppDelegate.m 更改为以下内容之后:

//jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil];
jsCodeLocation = [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];

我也遵循了Github问题中的someone's response,并尝试了以下方法,但在事实结束后又出现了另一个问题:

我做到了:

npm uninstall -g babel-preset-env
npm install --save @babel/preset-env

将此添加到我的package.json文件

 "babel": { "presets": ["@babel/preset-env", "react-native"] }

并在我的根项目中创建一个.babelrc文件,

{ "presets": ["@babel/preset-env", "react-native"] }

然后在Xcode构建上获取它:

enter image description here

环境

  • 操作系统:macOS High Sierra 10.13.4
  • 节点:9.11.1
  • npm :5.6.0
  • 值班员:4.9.1
  • Xcode :版本9.4(9F1027a)
  • 反应:16.3.1
  • 本机:0.55.4

1 个答案:

答案 0 :(得分:0)

我通过完全重新启动应用程序并使用以下方法解决了此问题:

react-native init PROJECTNAME