Change targetSdkVersion for stripe-react-native >= 0.2.4?

Hi @srbrahma

I’ve found out about an even easier way. Not sure how long this has existed:

There’s something called AndroidConfig.Version.withBuildScriptExtMinimumVersion in @expo/config-plugins. I think the easiest way to use it is from app.config.js.

I have a normal app.json and then in addition to that I have an app.config.js which overrides some things in app.json for dev/preview builds and also so that i don’t have to store an access key in Git. The plugins section is the relevant part to this discussion:

import "dotenv/config";

// For setting Android min/compile/target SdkVersions
import { AndroidConfig } from "@expo/config-plugins";

function app_variant(base, dev, preview) {
  switch (process.env.APP_VARIANT) {
    case "development":
      return `${base}${dev}`;
    case "preview":
      return `${base}${preview}`;
    default:
      return base;
  }
}

export default function ({ config }) {
  return {
    ...config,
    name: app_variant(config.name, " (Dev)", " (Preview)"),
    android: {
      ...config.android,
      package: app_variant(config.android.package, ".dev", ".preview"),
    },
    ios: {
      ...config.ios,
      bundleIdentifier: app_variant(config.ios.bundleIdentifier, ".dev", ".preview"),
    },
    extra: {
      accessKey: process.env.accessKey,
    },
    // Set Android min/compile/target SdkVersions
    plugins: [
      [
        AndroidConfig.Version.withBuildScriptExtMinimumVersion,
        {
          name: "minSdkVersion",
          minVersion: 24,
        },
      ],
      [
        AndroidConfig.Version.withBuildScriptExtMinimumVersion,
        {
          name: "compileSdkVersion",
          minVersion: 31,
        },
      ],
      [
        AndroidConfig.Version.withBuildScriptExtMinimumVersion,
        {
          name: "targetSdkVersion",
          minVersion: 31,
        },
      ],
    ],
  };
}
1 Like