美文网首页iOSiOS开发React Native开发经验集
直接在Xcode7中导入ReactNative工程(免init)

直接在Xcode7中导入ReactNative工程(免init)

作者: AceHou | 来源:发表于2015-11-19 15:52 被阅读1391次

    默认开发环境:node: v4.2.1  npm: 2.14.7  Xcode:7.1

    给大众一个链接,这个适合刚初始化的新项目

    http://react-native.cn/bbs/post/35

    但是,如果是加入已经建好的老项目呢?ReactNative官方是推荐我们用pod React的,但是这个有时也难免会抽风。例如:我昨天在家pod的时候是没问题的,但是早上回公司pod一个新项目又不行,这个很令人沮丧,这个我就想到不如自己手动加入ReactNative的组件,不用pod了

    1、新建一个ReactNativeDemo项目,默认是一个老项目

    可以下载以下链接(其实就是我上面介绍各位下载免init初始化的ReactNative包),将里面这3个文件复制出来到自己项目根目录上一层处,放在上一层纯粹是为了方便以后Android的拓展,参考官方存放路径而已,各位自行参考

    http://react-native.cn/bbs/post/35

    2、在node_modules/react-native/React/Base/和node_modules/react-native/React/Libraries/导入这三个工程文件

    3、在General中添加依赖

    4、在Build Settings中搜索header search,在里面添加以下2段:

    $(SRCROOT)/../node_modules/react-native/React

    $(SRCROOT)/../node_modules/react-native/React/Base

    5、最重要一步!!!在Build Settings搜索other linker,看到Other Linker Flags,添加以下一句话

    $(OTHER_LDFLAGS) -ObjC

    为什么要这样做呢?

    不加这句话RCTBridge会奔溃报错,具体原因找到一个外国大神的合理解释:

    具体地址:

    http://stackoverflow.com/questions/32775481/rctbatchedbridge-perfstats-unrecognized-selector-sent-to-instance

    相关链接:https://developer.apple.com/library/mac/qa/qa1490/_index.html

    各位自行查看吧

    6、在ViewController里面引入头文件

    #import

    在viewDidLoad中写入:

    NSURL*jsCodeLocation = [NSURLURLWithString:@"http://localhost/index.ios.bundle?platform=ios&dev=true"];

    RCTRootView*rootView = [[RCTRootViewalloc]initWithBundleURL:jsCodeLocationmoduleName:@"MyProject"initialProperties:nillaunchOptions:nil];

    rootView.frame=self.view.frame;

    [self.viewaddSubview:rootView];

    7、因为Xcode7默认是没有开启http的,自己打开设置,这里不详细说明

    做到这里我们就大功告成,我们可以尽情用js写原生iOS APP了

    8、之前我们不是导入一个叫index.ios.js的文件嘛,这里随意写js就可以了

    这里MyProject是OC端注册的名字,Ace是js端注册的组件

    效果:

    相关文章

      网友评论

      • 踏云小子:$(SRCROOT)/../node_modules/react-native/React/Base,里面的".."要自己填,填自己的路径
      • 踏云小子:可以了,谢谢楼主,原来是xcodeproj导入位置不对
      • 踏云小子:楼主,我这报错。#import "RCTRootView.h"说RCTRootView.h找不到
      • 踏云小子:正在想怎么解决呢,正好遇到了楼主,真巧
      • fc703101578c:不错不错,加油加油
      • 时光管理员: :grin: 学习新知识了 虽然没用过这个

      本文标题:直接在Xcode7中导入ReactNative工程(免init)

      本文链接:https://www.haomeiwen.com/subject/txelhttx.html