返回

React Native Expo开发 - 12 译 - 使用自己的主机承载应用

见解分享

通常情况下,当启用空中 (OTA) 更新时,您的应用程序将从 Expo 的 CDN 获取包含 JavaScript 捆绑包和资产的更新。然而,在某些情况下,您会希望在自己的服务器上托管您的JS捆绑包和资产。例如,在一些国家,OTA更新速度很慢或无法使用,而这些国家已经在AWS和Google Cloud Storage上拥有服务器。

启用托管更新

要启用托管更新,您需要在您的应用程序的 app.json 文件中添加一个 updates 字段。该字段的值是一个对象,其中包含 url 字段,该字段指向您托管更新的URL。

{
  "expo": {
    "updates": {
      "url": "https://your-server.com/updates"
    }
  }
}

托管您的更新

您可以使用任何您喜欢的服务器来托管您的更新。但是,您需要确保您的服务器能够提供以下内容:

  • 以快速且可靠的方式提供更新。
  • 支持范围请求。
  • 能够处理大量并发请求。

如果您不确定如何设置自己的服务器,您可以使用 Expo 提供的托管服务。托管服务是一种付费服务,它可以帮助您轻松地托管和管理您的更新。

分发您的更新

一旦您托管了您的更新,您需要分发它们给您的用户。您可以使用以下两种方式之一来做到这一点:

  • 使用 OTA 更新。 这种方法允许您的用户通过空中自动接收更新。
  • 使用手动更新。 这种方法要求您的用户手动下载并安装更新。

如果您希望使用 OTA 更新,您需要在您的应用程序的 app.json 文件中启用 OTA 更新。

{
  "expo": {
    "updates": {
      "url": "https://your-server.com/updates",
      "enabled": true
    }
  }
}

如果您希望使用手动更新,您需要在您的应用程序中提供一种方法让您的用户下载并安装更新。

故障排除

如果您在使用托管更新时遇到问题,您可以尝试以下一些步骤:

  • 确保您的服务器能够提供以下内容:
    • 以快速且可靠的方式提供更新。
    • 支持范围请求。
    • 能够处理大量并发请求。
  • 确保您在您的应用程序的 app.json 文件中正确配置了 updates 字段。
  • 确保您已经分发了您的更新给您的用户。
  • 如果您仍然遇到问题,您可以联系 Expo 支持团队寻求帮助。

结论

使用自己的主机来承载更新可以为您提供更多的控制权和灵活性。然而,它也需要您付出更多的努力来设置和维护您的服务器。如果您不确定是否要使用自己的主机来承载更新,您可以先尝试使用 Expo 提供的托管服务。