React Native 如何使用eas build构建expo apk

wztqucjr  于 2023-01-05  发布在  React
关注(0)|答案(4)|浏览(433)

更新expo后,它不再支持使用expo build:android -t apk构建apk文件,而是建议使用**eas build -p android --profile preview* a命令构建eas文件,但它最终构建了一个aab而不是apk。我看了一下新添加的eas.json文件,其中包含:

{
  "cli": {
    "version": ">= 0.52.0"
  },
  "build": {
    "development": {
      "developmentClient": true,
      "distribution": "internal"
    },
    "preview": {
      "distribution": "internal"
    },
    "production": {}
  },
  "submit": {
    "production": {}
  }
}

我读了EAS文档,它建议将我的eas.json更改为:

{
  "cli": {
    "version": ">= 0.52.0"
  },
  "build": {
    "preview": {
      "android": {
        "buildType": "apk"
      }
    },
    "preview2": {
      "android": {
        "gradleCommand": ":app:assembleRelease"
      }
    },
    "preview3": {
      "developmentClient": true
    },
    "production": {}
  }
}

运行构建命令后:eas build -p android --配置文件预览
它将应用程序正确地构建为APK文件,并在Android上安装得很好,但在打开它时会立即自动关闭。在试图重新打开它后,它再次关闭,现在提醒应用程序崩溃。
我的eas.json文件中是否有错误,或者我错过了什么?

jchrr9hc

jchrr9hc1#

eas.json中的生产密钥更改为此

"production": {
    "android": {
       "buildType": "apk"
    }
}

现在你的eas.json是这样的

{
  "cli": {
    "version": ">= 0.52.0"
  },
  "build": {
    "development": {
      "developmentClient": true,
      "distribution": "internal"
    },
    "preview": {
      "distribution": "internal"
    },
    "production": {
      "android": {
        "buildType": "apk"
      }
    }
  },
  "submit": {
    "production": {}
  }
}

要构建到.apk文件中,可以使用生产配置文件进行构建。

hl0ma9xz

hl0ma9xz2#

以下是详细说明:https://docs.expo.dev/build/eas-json/
您需要在项目目录中创建eas.json,如下所示:

{
  "build": {
    "preview": {
      "android": {
        "buildType": "apk"
      }
    },
    "preview2": {
      "android": {
        "gradleCommand": ":app:assembleRelease"
      }
    },
    "preview3": {
      "developmentClient": true
    },
    "production": {}
  },
  "cli": {
    "version": ">= 0.52.0"
  }
}

然后使用以下命令:

eas build -p android --profile preview

问候你,沙米尔

a6b3iqyw

a6b3iqyw3#

我也遇到了一些问题,当我的应用程序升级到EAS构建,原因是因为我使用的值从expo-constant和它返回null,所以它崩溃了我的应用程序。新的SDK移动的值,我需要expo-device
我的哨兵也造成了一个问题,它会导致即时崩溃时,应用程序打开。尝试删除它暂时,看看您的应用程序将打开

0s0u357o

0s0u357o4#

评论中提供的解决方案起作用了。我的错误是由新的SDK版本带来的,如果你安装了react-native-screensreact-native-safe-area-context,它只支持@react-navigation/native
对于任何人谁发现自己在这里用途:

npm install @react-navigation/native

expo install react-native-screens react-native-safe-area-context

然后按照其他答案的建议编辑eas.json。我希望它对您有用

相关问题