Hybrid开发React Native

React Native iOS 真机调试

2017-07-08  本文已影响1661人  壹点微尘

注意:手机和电脑都必须在同一WIFI环境下,电脑不要连接网线 !

正确的操作步骤:
前置动作:1.退出所有的相关的终端,在真机调试之前你可能进行了模拟器的调试
2.确认手机和电脑是在同一个无线网下面。
操作步骤:1.查看电脑的局域网地址,在terminal中输入ifconfig | grep 192命令,即可查看

在terminal中输入`ifconfig | grep 192`命令,即可查看

2.用Xcode打开项目

3.打开AppDelegate.m文件,修改jsCodeLocation地址:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
  NSURL *jsCodeLocation;

//  jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index.ios" fallbackResource:nil];
  jsCodeLocation = [NSURL URLWithString:@"http://169.254.28.38:8081/index.ios.bundle?platform=ios&dev=true"];
  
  RCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation
                                                      moduleName:@"DoubanProject"
                                               initialProperties:nil
                                                   launchOptions:launchOptions];
  rootView.backgroundColor = [[UIColor alloc] initWithRed:1.0f green:1.0f blue:1.0f alpha:1];

  self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
  UIViewController *rootViewController = [UIViewController new];
  rootViewController.view = rootView;
  self.window.rootViewController = rootViewController;
  [self.window makeKeyAndVisible];
  return YES;
}

4.直接cmd + R run起来即可

碰到的问题主要是:Could not connect to development server


这个问题理解起来很简单,连不上服务器。这类的访问实际上类似于tomcat访问,只不过这里的服务器是npm。下面讲下我碰到的情况:
1.mac电脑设置了防火墙
解决方案,在系统设置里关闭防火墙
2.node或者npm的版本有问题
解决方案,全部更新至最新的版本

我的版本

3.还有一个就是iOS9的网络访问问题
其实在Xcode项目的plist文件里已经有App Transport Security Settings,关键是默认的设置是只允许localhost访问,不允许别的访问,那么就得修改下这儿。你可以从别的项目那儿copy这个过来,也可以直接改下如下所示:

上一篇下一篇

猜你喜欢

热点阅读