【问题标题】:React Expo changing target Android APIReact Expo 更改目标 Android API
【发布时间】:2019-12-22 13:47:42
【问题描述】:

最近我们使用 react expo 构建 Android 应用,并使用以下命令 expo build:android -t apk 或 Android App Bundle expo build:android -t app-bundle 构建签名 APK

在我们构建签名的 APK 后,我们尝试上传到 Playstore,但出现了一些错误,需要我们将目标 API 从 26 升级到 28。在 SO 上探索和阅读了几个 QA,其中许多是针对 React Native 的。我们如何将我们的 APK 发布到 Play 商店?

这里是app.json

{
  "expo": {
    "name": "***",
    "slug": "***",
    "privacy": "public",
    "sdkVersion": "32.0.0",
    "platforms": [
      "ios",
      "android"
    ],
    "version": "1.2.3",
    "orientation": "portrait",
    "icon": "./assets/logo.png",
    "splash": {
      "image": "./assets/splash.png",
      "resizeMode": "contain",
      "backgroundColor": "#ffffff"
    },
    "updates": {
      "enabled": true,
      "checkAutomatically": "ON_LOAD",
      "fallbackToCacheTimeout": 0
    },
    "assetBundlePatterns": [
      "**/*"
    ],
    "ios": {
      "supportsTablet": true
    },
    "android": {
      "package": "com.qreatiq.foodmart",
      "permissions": [
        "CAMERA"
      ],
      "googleServicesFile": "./google-services.json",
    },
  }
}

我们已尝试检查文档 here 并且有 compileSDKVersion 或相关的属性,如原生应用程序。

在 Native 应用中我们可以很容易地配置如下

compileSdkVersion 27
buildToolsVersion "27.0.3"
minSdkVersion 16
targetSdkVersion 27

如何在 React Expo 上做到这一点?

更新 1developer.android.com阅读后

当您上传 APK 时,它需要满足 Google Play 的目标 API 等级要求。自 2019 年 8 月 1 日起,Google Play 要求 新应用至少面向 Android 9.0(API 级别 28),并且该应用 更新从 2​​019 年 11 月 1 日起针对 Android 9.0。在这些日期之前, 新应用和应用更新必须至少面向 Android 8.0(API 级别 26).

仍然对那些事情没有任何想法。

【问题讨论】:

    标签: android react-native expo


    【解决方案1】:

    按照以下步骤操作:

    1. 关闭您的 Expo CLI 服务器
    2. app.json 中,将sdkVersion 更改为"34.0.0"

    3. package.json 中,更改这些依赖项:

      • react-native"https://github.com/expo/react-native/archive/sdk-34.0.0.tar.gz"
      • expo"^34.0.3"
      • react"16.8.3" —(这个确切的版本)
      • react-navigation"^3.11.1"
      • jest-expo"^34.0.0"(如果你使用的话)
      • sentry-expo"~1.13.0"(如果你使用它)
    4. 如果你使用react-navigation,你也应该运行expo install react-native-gesture-handler react-native-reanimated

    5. 删除项目的node_modules 目录并再次运行npm install 或使用yarn

    6. 运行expo start -c

    完成这些步骤后,它应该可以工作了。

    来源:https://blog.expo.io/expo-sdk-34-is-now-available-4f7825239319

    【讨论】:

      【解决方案2】:

      您需要更改app.json 中的sdkVersion 属性并再次构建应用程序:

      "sdkVersion": "34.0.0",
          "platforms": [
            "ios",
            "android"
          ],
      

      使用expo build:android -t app-bundle 命令。

      确保您安装了最新的expo cli

      这是相应的blog 帖子。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-10-14
        • 2022-10-13
        • 1970-01-01
        • 2017-09-27
        • 1970-01-01
        • 1970-01-01
        • 2021-10-25
        • 1970-01-01
        相关资源
        最近更新 更多