2022-10-05

ExpoのManaged Workflowでビルド時の設定値(ターゲットOSバージョン等)を変更する

ExpoのManaged WorkflowでAndroidやiOSの最低対応バージョンを変更する方法です。

Bare Workflowの場合

素のReact Nativeプロジェクト(Bare Workflow)ではAndroidのSDKバージョンやiOSのターゲットバージョンは設定ファイルで変更できます。

Androidの場合はandroid/build.gradleを編集します。

buildToolsVersion = "31.0.0"
minSdkVersion = 26
compileSdkVersion = 30
targetSdkVersion = 31

iOSの最低バージョンを指定するにはios/Podfileで以下を編集します。

platform :ios, '13.0'

ただこれらの設定はExpoのManaged Workflowの場合は編集できません(そもそもandroidiosフォルダ自体が管理されていない)。これらを変更したい場合expo-build-propertiesを使います。

expo-build-properties

expo-build-propertiesはビルド時の設定値を変更するためのConfig Pluginです。

EAS Buildではビルド時にビルド用の設定値をandroid/gradle.propertiesios/Podfile.properties.jsonから読み込みますが、expo-build-propertiesはその前にこれらのファイルに渡した値を書き込んでくれます。

設定したい値はapp.jsonで以下のように指定します。

{
  "expo": {
    ...
    "plugins": [
      [
        "expo-build-properties",
        {
          "android": {
            "compileSdkVersion": 31,
            "minSdkVersion": 26,
          },
          "ios": {
            "deploymentTarget": "13.0"
          },
        }
      ],
    ]
  }
}

設定可能な値は以下で参照可能です。

BuildProperties - Expo Documentation

Androidの場合sdkバージョンだけではなくkotlinのバージョンやpickFirstの記述を追加したり、iOSの場合useFrameworksを追加できたり、細かな設定が可能なことがわかります。

最終更新: 2022-10-05 00:15
筆者: @gaishimo 主にReact Nativeでのアプリ開発を行っています。
© 2021 Omoidasu, Inc. All rights reserved.