React Native故障排除

我的React Native生成失败,并显示"找不到 FBSDKCoreKit/FBSDKCoreKit.h"文件

此错误通常是因为 Facebook SDK 要求它安装在用户主目录中,这对于托管生成来说可能是有问题的。 若要解决此要求,请执行以下步骤:

  1. 将 FacebookSDK 签入到存储库。 它可以转到任何位置,但下面的脚本假设已添加到 <repo-root>/vendor/FacebookSDK

  2. 将 npm 预安装脚本添加到 package.json:

"scripts": {
    ...
    "preinstall": "./npmpreinstall.sh"
}
  1. npmpreinstall.sh 通过以下代码 ~/Documents/FacebookSDK 与存储库进行符号链接:
#!/bin/sh
if [ ! -L ~/Documents/FacebookSDK ]; then
    echo 'Symlinking ~/Documents/FacebookSDK to Facebook SDK in repo'
    ln -s $(cd ./vendor/FacebookSDK; pwd) ~/Documents/FacebookSDK
fi
  1. 使 npmpreinstall.sh 可执行文件:
chmod u+x npmpreinstall.sh

我的React Native生成失败,出现"错误:CALL_AND_RETRY_LAST分配失败 - JavaScript 堆内存不足"

可以通过使用 标志分配更多内存来 --max-old-space-size 解决此问题。

在 Android 上,将以下内容添加到项目的 build.gradle 文件:

project.ext.react = [
    nodeExecutableAndArgs: ["node", "--max_old_space_size=8192"]
]

在 iOS 的 Xcode 中,选择目标并转到"生成阶段"选项卡,在"捆绑代码React Native映像"部分中,将 标志添加到 shell 脚本:

export NODE_BINARY="'node --max_old_space_size=8192'
../node_modules/react-native/packager/react-native-xcode.sh"