Swift工程集成ReactNative

##集成步骤

swift2.3  OSX 10.11.6  Xcode8.0

创建一个ReactNative工程很简单

react-native init ProjectName

那么如何在一个现有的Swift工程内集成ReactNative呢?

  1. 首先在项目根目录创建一个ReactNative的文件夹

    cd ProjectRootDir
    mkdir ReactNative
    
  2. 创建一个package.json,注意,这里选用0.30.0版本,最新的0.33.0版本集成后会有问题,具体的问题可以去ReactNative的issue上去看。

    {
          "dependencies": {
                "react": "15.2.0",
            "react-native": "0.30.0"
          }
    }
    
  3. 加载node_modules

    cd ReactNative
    npm install
    
  4. 加载成功后在你的Podfile文件里加上这几句

    pod 'React', :path => './ReactNative/node_modules/react-native', :subspecs => [
    'Core',
    'RCTImage',
    'RCTNetwork',
    'RCTText',
    'RCTWebSocket',
    ]
    
  5. 最后

    pod install
    
  6. 编译通过 大功告成

##一些技巧

  1. 如何在工程编译运行的时候自动启动Server呢?

在Xcode的run script里添加如下shell

if nc -w 5 -z localhost 8081 ; then
if ! curl -s "http://localhost:8081/status" | grep -q "packager-status:running" ; then
echo "Port 8081 already in use, packager is either not running or not running correctly"
exit 2
fi
else
open $SRCROOT/ReactNative/node_modules/react-native/packager/launchPackager.command ||     echo "Can't start packager automatically"
fi
  1. 如何在真机运行时自动打包main.jsbundle呢

在Xcode的run script里添加如下shell

export NODE_BINARY=node
sh $SRCROOT/ReactNative/node_modules/react-native/packager/react-native-xcode.sh