为啥 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 日开始,您必须让我们知道为啥您的应用需要广泛的存储访问权限”