【问题标题】:Build .apk for react native app为反应原生应用构建 .apk
【发布时间】:2018-05-02 20:33:53
【问题描述】:

我对 react-native 世界很陌生。到目前为止,我还没有了解如何创建 apk(我假设 ipa 会类似)。我知道有一些文档条目和许多其他问题似乎可以回答这个问题,但它们都不适合我。

所以我感兴趣的基本用例是为演示应用程序构建一个 apk。在开始之后我会做

create-react-native-app MyProject

现在我可以启动打包程序和服务器并使用 expo。完美的。但我现在想构建apk。我找到的所有答案都是通过某种cd android && ./gradlew build 完成的,但应用程序中没有 android 文件夹(显然是因为 expo 会为未弹出的应用程序处理它)。另一种方法可能是使用expo,但我一直都遇到错误。在入门指南中,expo 没有直接提及,而是 npm 命令可能不是要走的路。

我知道 https://facebook.github.io/react-native/releases/0.19/docs/signed-apk-android.html 需要 android 文件夹。还提到了curl 版本,即这里的https://github.com/facebook/react-native/issues/2943,这与How to build react native android app for production? 中的所有方法一样,都不是诀窍。

【问题讨论】:

    标签: android react-native react-native-android


    【解决方案1】:

    因为您使用CRNA 创建项目,所以android/ios 文件夹(包含构建工具)不存在。

    CRNA 将您的项目配置为使用 Expo 客户端应用程序支持的代码。但是 Expo XDE 不具备直接构建生产应用程序的能力(目前)。所以有两种方式:

    1. Eject and install the native code dependencies 用于您的 CRNA 应用并使用 adb/Android Studio 或 XCode 正常构建

    2. 由 CRNA 开发人员使用 exp(世博会)其中 recommended

    对于第二选择:运行npm install -g exp 获取它,使用Expo 帐户登录。像这样配置app.json

    {
       "expo": {
        "name": "Your App Name",
        "icon": "./path/to/your/app-icon.png",
        "version": "1.0.0",
        "slug": "your-app-slug",
        "sdkVersion": "17.0.0",
        "ios": {
          "bundleIdentifier": "com.yourcompany.yourappname"
        },
        "android": {
          "package": "com.yourcompany.yourappname"
        }
       }
     }
    

    然后通过exp start 开始构建。应用启动后,运行 exp build:androidexp build:ios 在您需要的平台上构建生产应用。

    见:https://docs.expo.io/versions/latest/guides/building-standalone-apps.html

    【讨论】:

    • 好的,谢谢。反正我没有使用 Expo XDE。我觉得有点奇怪,如果你通过 CRNA 开始,你通过npm 做所有事情,然后你必须通过exp 进行构建,在我看来,react-native 文档中没有提到。它还给出了关于不使用 react 的 expo 版本的警告。接下来是expo building通过URL发布这些构建,所以imho遵循入门指南让你没有选择在本地构建(除了分离)......至少应该提到。不过还是谢谢你。你猜没有别的办法了吗?
    • @patman exp 属于 Expo,CRNA 开发者推荐。我已经编辑了答案,请看一下。
    猜你喜欢
    • 2018-08-12
    • 1970-01-01
    • 2021-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-28
    • 2016-09-24
    • 2020-07-08
    相关资源
    最近更新 更多