React Native - 为什么 React Native 应用程序需要连接到本地主机?

ReactNative - Why does a React Native App need to connect to Local Host?

我一直在阅读一本关于 React Native 的书,它在前几章中为 IOS 构建了一个简单的 React Native 应用程序。在编译和 运行 Xcode 中的项目时,打包程序在后台运行,我还可以看到我的应用程序正在尝试连接到本地主机。

我的理解是 React Native 将 JSX 元素转换为平台特定的视图。所以我的问题是为什么应用程序需要连接到服务器以及后台打包器运行的目的是什么?

此外,运行 Xcode 模拟器上的应用与在应用商店中部署应用有何不同?

我试图在网上寻找答案,但没有人解决。似乎每个人都想当然地认为这一切都是显而易见的。

在寻找答案后,我偶然发现来自 Facebook 的 following guide 回答了不同的问题,但也间接解决了我的问题。

显然,localhost 是一个开发服务器,用于 link 您的 javascript 应用程序代码,如果您在物理设备或模拟器上进行测试,则可以使用它。因此,阅读本文后想到的一个问题是,为什么不将 javascript 代码与编译后的 IOS 文件捆绑在一起?好吧,最好将它们分开,因为它使您能够简单地从您的计算机更改您的 javascript 代码并让它自动与您的 IOS 应用程序同步。

现在,在部署到应用商店时,您需要捆绑 javascript 代码并删除连接到本地主机的实现部分,这同样用于调试目的.

您似乎回答了自己的问题!在开发模式下,JavaScript 包由您机器上的 react-native packager 服务器提供。

在为 App Store 和 Google Play 发布版本时,JavaScript 被缩小并捆绑到应用程序文件中(.ipa/.app for iOS,.apk Android).

运行 从 Xcode 开始,应用处于发布模式是可能的。根据项目的设置方式,发布模式可以是不同的目标、一个目标中的不同方案或目标方案中的构建配置。有关 iOS targets/schemes 的更多信息,请参阅:Xcode: What is a target and scheme in plain language?