React Native App不显示console.logs()

时间:2018-06-01 01:44:06

标签: react-native

在发布我的应用程序进行制作后,我发现无论我尝试什么,我都无法再查看console.logs()。

我试图重现这个问题:

  1. 已安装最新版本的npm
  2. 使用create-react-native-app创建新应用。
  3. 添加了一个简单的按钮来调用console.log()
  4. Console.log()在IOS Simulator中工作
  5. npm run eject
  6. 打开Xcode项目并从内部运行。 Console.logs()仍然有效。
  7. localhost中删除了NSExceptionDomains条目。
  8. 编辑方案 - >跑 - >从调试更改为发布
  9. 将jsCodeLocation更改为jsCodeLocation = [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"]; 重建的应用程序。 Console.logs()不再显示,但应用程序已加载。
  10. 根据React Native's Building Your App for Production

    的指导原则,这就是应用已准备就绪的时刻

1 个答案:

答案 0 :(得分:1)

事后看来,生产版本不会显示console.logs()可能是有道理的,但我还是会发布这个版本,以防它帮助其他人。

如果像我这样的任何人想要获得console.logs(),那么就像执行教程的反向一样简单。请严格按照以下步骤将您的应用程序恢复到console.logs()将显示的状态:

  1. 在Xcode中,转到产品 - >方案 - >编辑方案 - >运行 - >将构建配置设置为调试
  2. AppDelegate.m中,将jsCodeLocation更改为jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil];
  3. 最后,在你的Info.plist中,添加以下代码(使用文本编辑器 - 而不是Xcode - 通过右键单击然后选择您选择的文本编辑器):
  4. 代码:

    <key>NSAppTransportSecurity</key>
    <dict>
        <key>NSExceptionDomains</key>
        <dict>
            <key>localhost</key>
            <dict>
                <key>NSExceptionAllowsInsecureHTTPLoads</key>
                <true/>
            </dict>
        </dict>
    </dict>
    

    关闭所有终端窗口,清理项目,关闭Xcode,关闭模拟器,然后再次启动Xcode并重建项目。 console.logs()将返回。