为啥 React Native 0.30 无法从 iPhone 设备上的开发服务器获取更改?

Posted

技术标签:

【中文标题】为啥 React Native 0.30 无法从 iPhone 设备上的开发服务器获取更改?【英文标题】:Why does React Native 0.30 not get changes from development server on iPhone device?为什么 React Native 0.30 无法从 iPhone 设备上的开发服务器获取更改? 【发布时间】:2016-08-11 18:38:34 【问题描述】:

自从我升级到 React Native 0.30 后,我的物理 iPhone 上的构建从预先捆绑的文件而不是开发服务器加载。查看更改的唯一方法是再次构建并运行应用程序。以前,我可以通过刷新在我的 iPhone 上立即看到变化。

如果我使用模拟器,从开发服务器更改负载就好了。

这是我的 AppDelegate.m:

#import "AppDelegate.h"

#import "RCTBundleURLProvider.h"
#import "RCTRootView.h"

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

  NSURL *jsCodeLocation;

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

  RCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation
                                                      moduleName:@"upool"
                                               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;


@end

【问题讨论】:

【参考方案1】:

您已将jsCodeLocation 设置为使用捆绑包。将该行更改为

jsCodeLocation = [NSURL URLWithString:@"http://DEV_SERVER_URI:8081/index.ios.bundle?platform=ios&dev=true"];

例如

jsCodeLocation = [NSURL URLWithString:@"http://192.168.0.7:8081/index.ios.bundle?platform=ios&dev=true"];

您可以通过在终端中运行 ifconfig 来获取您机器的公共 IP。 IP 地址在en0: 下列出,在inet 之后。

【讨论】:

【参考方案2】:

在 0.30 中你不需要编写 jsCodeLocation 运行 react-native upgrade 进行迁移和更改

【讨论】:

以上是关于为啥 React Native 0.30 无法从 iPhone 设备上的开发服务器获取更改?的主要内容,如果未能解决你的问题,请参考以下文章

为啥 React-Native 无法在与 Expo 的 Android 连接上启动项目?

开发服务器返回响应错误代码:500 react-native 为啥这个错误谁能告诉我

Nativebase React Native 为啥我不能在输入中传递一个数字

如何在WebView中禁用用户文本选择[React-Native]

无法从“App.js”解析“@react-navigation/native”-React Native + 如何解决?

React Native - Play 商店警告“从 5 月 5 日开始,您必须让我们知道为啥您的应用需要广泛的存储访问权限”