2

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

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

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

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

4

2 回答 2

2

在寻找答案后,我偶然发现了 Facebook 的以下指南,它回答了一个不同的问题,但也间接地解决了我的问题。

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

现在,当涉及到部署到应用商店时,您将需要捆绑 javascript 代码并删除它连接到本地主机的实现部分,这再次用于调试目的。

于 2017-06-26T06:39:38.580 回答
1

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

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

可以从 Xcode 以发布模式运行应用程序。根据项目的设置方式,发布模式可以是不同的目标、一个目标中的不同方案或目标方案中的构建配置。有关 iOS 目标/方案的更多信息,请参阅:Xcode:什么是纯语言的目标和方案?

于 2017-09-28T14:59:49.667 回答