【发布时间】:2018-06-29 21:28:24
【问题描述】:
由于某种原因,我在通过 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("函数...'
这是我在 bundlejs 文件中发现的出现上述错误的代码源:
!(function(e){"use strict";var r,t=e.babelHelpers={};t.typeof="function"==typeof Symbol&&"symbol"===t.typeof("function"==typeof Symbol?Symbol.iterator:"@@iterator")?
我已经尝试了这两种发布版本的方法:
- 通过将方案编辑为发布包来制作包
- 使用以下命令自行导出捆绑包:
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 构建中获取它:
环境
- 操作系统: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
【问题讨论】:
标签: ios xcode react-native babeljs react-native-ios