在iPhone上运行反应本机应用程序
我试图运行一个应用程序创建与反应本机(v0.3)没有连接到我的电脑。我已将该应用与react-native bundle --dev false --entry-file index.ios.js --bundle-output ios/main.jsbundle --platform ios
捆绑在一起,并在我的连接iPhone上运行(在Xcode上也更改为Release
)。在iPhone上运行反应本机应用程序
这工作正常,即使(启动后)我禁用WiFi并从我的Mac断开手机。但如果我完全关闭应用程序并尝试重新启动它(没有连接WiFi或USB),它会崩溃(它显示应用程序屏幕并在几秒钟后崩溃)...
在启动时,我可以看到一个绿色条像“连接到192. *”(这可能是我的mac的IP地址)。我怎样才能完全禁用连接?该连接对调试非常有用,但不可能将该应用展示给某人。
取消注释在AppDelegate.m
的jsCodeLocation
部分作为official documentation建议是不是非常有帮助的,因为它是不可能有这样生成的代码:
#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:@"weather"
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;
}
还是我失去了一些东西?
版本:
- OSX 10.11.5
- 的Xcode 7.3.1
- 阵营原住民0.3
- NPM 3.10.3
一个可能的解决方案将是在Release
模式下运行您的应用程序,该模式将自动使用编译的包而不是托管包。在开发模式下,bundle不会被编译并存储在设备上,从而缩短构建时间。当您将配置设置为Release
时,react-native-xcode.sh
脚本会自动为您运行bundle
命令,并准备资产以及您的Javascript代码以存储在设备上。
要做到这一点,只需点击你的项目的名称(在这种情况下,它的基本):
然后从模式选择Edit Scheme
和调试改变Build configuration
发布。
请注意,您也可以创建一个新的方案,以便同时提供两种Debug &发布模式。为此,只需从前面提到的模式中选择New Scheme
而不是Edit Scheme
,并相应地应用相同的调整。
非常感谢,这工作! – Dennis