把 Reative Native 47 版本集成到已有的 Native iOS 工程中

一、搭建开发环境

http://reactnative.cn/docs/0.46/getting-started.html#content

二、创建一个模板

运行以下命令,创建一个最新版本的 reactive-native 的环境。RN 的版本如下:

react-native init MyTestRnWithNative
react-native -v
react-native-cli: 2.0.1
react-native: 0.47.1  

得到以下的工程目录。其中iOS文件夹中是 Native 的工程,index.ios.js 是用来生成 JS 代码的。

其中打开工程文件,可以看到在 Build Phases 有额外的一个步骤,是用来启动服务器的。

三、新建一个 Native 的工程

移除 ios 文件夹中所有文件,在 ios 文件夹中用 Xcode 新建一个 iOS 的工程,并把 Allow Arbitrary Loads 的值设为 YES,允许本地服务器访问。

四、链接 RN 的库到工程中

引入 RN 的库到工程中

如下图所示,把需要引入的库拖入工程的 Library Group里

我链接了如下几个库。其中 React 库位于 node_modules/react-native/React 文件夹中,其它 5 个库分别位于 node_modules/react-native/Libraries 文件夹下。

链接静态库

方法如下,把 6 个子工程的 Products 目录下的 .a 文件拖入工程的 Link Binary With Library 选项中。

设置头文件路径

Build SettingsHeader Search Paths 选项中,把工程的头文件设置正确。下面是设置完之后的截图。

五、设置启动 node 服务器的脚本

export NODE_BINARY=node
../node_modules/react-native/scripts/react-native-xcode.sh

六、写入 Demo 代码

#import <React/RCTBundleURLProvider.h>
#import <React/RCTRootView.h>

//viewDidLoad    
NSURL *jsCodeLocation;

jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index.ios" fallbackResource:nil];

RCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation
                                                    moduleName:@"Bananas"
                                             initialProperties:nil
                                                 launchOptions:nil];
rootView.backgroundColor = [[UIColor alloc] initWithRed:1.0f green:1.0f blue:1.0f alpha:1];

rootView.frame = CGRectMake(100, 200, 200, 400);
[self.view addSubview:rootView];

七、解决若干问题

'React/RCTBundleURLProvider.h' file not found

如下所示,去掉 Prarllelize Build选项,新增一个 Target。

RCTWebSocket编译报错

打开工程中的RCTWebSocket.xcodeproj -> build settings > all -> Apple LLVM 8.0 - Custom Comple Flags -> 去掉 Other Warning Flags中-Werror -Wall 值后重新编译即可。

八、Run

参考

  1. 搭建开发环境
  2. Linking Libraries
  3. XCode升级到8.0后RCTWebSocket编译报错

转载于:https://www.cnblogs.com/huahuahu/p/ba-Reative-Native-47-ban-ben-ji-cheng-dao-yi-you-d.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值