RN集成iOS问题

2017-02-11  本文已影响130人  逗留

集成步骤:http://reactnative.cn/docs/0.41/getting-started.html,比android简单一万倍。。。还是我大iOS 666

如果出现xcrun: error: unable to find utility "instruments", not a developer tool or in PATH

在终端执行如下命令 sudo xcode-select -s /Applications/Xcode.app/Contents/Developer/即可。

如果编译一直卡在build double conversion这里,是因为0.45后的RN项目,会依赖一些三方库,然而在国内这些库很难下载到,翻墙也很难下到。把http://pan.baidu.com/s/1kVDUAZ9这些压缩文件放到~/.rncache即可

因为我们项目只是部分界面用到了RN,所以开始的做法是,单独建一个控制器,在控制器中重写loadView

- (void)loadView

{

NSURL *jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index.ios" fallbackResource:nil];//index.ios是存放ios端js代码的文件

YJAppDelegate *appDelegate = (YJAppDelegate *)UIAP.delegate;

RCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation

moduleName:@"App"

initialProperties:nil

launchOptions:nil];

self.view = rootView;//App是js中注册的模块名称AppRegistry.registerComponent('App', () => App);

}

找个地方初始化控制器,显示出来,没问题,打开远程调试,点一下屏幕,o,红屏了。。。咋办,查了半天,没有找到解释这个问题的,刚学RN也不是很懂,只能靠试+猜

看看没有设置的参数,initialProperties是传递参数,肯定不是,launchOptions,它要这个做什么,我也不知道,加上试一下,在- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions里拿到这个参数,放到这里,跑起来,呵呵,好了。。。

其他问题,百度一下就能找到,暂时不总结了。。。

持续中。。。

上一篇下一篇

猜你喜欢

热点阅读