React-native项目未在ios设备上运行(版本0.39.0)

问题描述:

Iam正在开发react-native应用程序。 以前我的应用程序版本是0.25.0,但现在我升级了我的应用程序的反应原生版本。React-native项目未在ios设备上运行(版本0.39.0)

现在我的应用没有在iOS设备上运行。 它显示为 '未实现loadSourceForBridge'时,'bundleURL必须为非零。

我AppDelegate.m文件看起来像:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    NSURL *jsCodeLocation; 
    jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index.ios" fallbackResource:nil]; 
    NSLog(@"JSCodelocationh=%@",jsCodeLocation); 
    RCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation 
                 moduleName:@"Roger" 
               initialProperties:nil 
                launchOptions:launchOptions]; 
    rootView.backgroundColor = [[UIColor alloc] initWithRed:1.0f green:1.0f blue:1.0f alpha:1]; 

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

在此我jsCodeLocation将返回空值。 任何人都可以告诉我如何解决这个问题。

+0

当您升级您的项目时,您是否还使用'react-native update'更新了项目文件? – martinarroyo

+0

是的,我遵循反应原生文档中给出的程序,我用'反应原生升级' –

某些反应原生版本升级需要手动步骤。 Read official docscheck with rn-diff

+0

是的,我检查,但我已经改变了一切,但仍然在jscodelocation中得到空。 –

+0

Tq我发现解决方案我有一些内部错误,我不能在控制台中看到,因为我的main.jsbundle没有正确创建。清除所有错误后,我的main.jsbundle被正确创建,现在获得我的jscodelocation。 –

我有一个类似的问题。 添加-lc++Other Linker Flags帮助。

我也更新在AppDelegate中的代码不使用jsBundleURLForBundleRoot(它在示例项目用于反应本地导航)

检查:(NPM 3有同样的问题) https://github.com/wix/react-native-navigation/issues/1

+0

Tq我发现解决方案我有一些内部错误,我不能在控制台中看到,因为我的main.jsbundle没有正确创建。清除所有错误后,我的main.jsbundle被正确创建,现在获得我的jscodelocation。 –

谢谢你帮助我解决我的问题。 我发现解决方案我有一些内部错误,我不能在控制台中看到,因为我的main.jsbundle没有正确创建。清除所有错误后,我的main.jsbundle被正确创建,现在获得我的jscodelocation。