ExpoのManaged WorkflowでAndroidやiOSの最低対応バージョンを変更する方法です。
素の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の場合は編集できません(そもそもandroid
、ios
フォルダ自体が管理されていない)。これらを変更したい場合expo-build-propertiesを使います。
expo-build-propertiesはビルド時の設定値を変更するためのConfig Pluginです。
EAS Buildではビルド時にビルド用の設定値をandroid/gradle.properties
、ios/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
を追加できたり、細かな設定が可能なことがわかります。