Guides
Plan-enterprise-icon
Expo Application Services
API Reference

BuildProperties

expo-build-properties is a config plugin for managed apps to override the default native build properties. During expo prebuild, the config plugin will populate build properties from given config to android/gradle.properties and ios/Podfile.properties.json.

Platform Compatibility

Android DeviceAndroid EmulatoriOS DeviceiOS SimulatorWeb
Status-success-iconStatus-success-iconStatus-success-iconStatus-success-iconStatus-failed-icon

Installation

Info-icon
Note: To use this config plugin, your apps must be a managed app and build by either EAS Build or expo run:[android|ios]. This package has no effect on project's built with the classic expo build:android or expo build:ios commands, or when running in the Expo Go app.
Terminal
→ npx expo install expo-build-properties

{
  "expo": {
    "plugins": [
      [
        "expo-build-properties",
        {
          "android": {
            "compileSdkVersion": 31,
            "targetSdkVersion": 31,
            "buildToolsVersion": "31.0.0"
          },
          "ios": {
            "deploymentTarget": "13.0"
          }
        }
      ]
    ]
  }
}

Learn more from PluginConfigType

NameTypeDescription
configExpoConfigExpoConfig
propsPluginConfigTypeConfiguration for the config plugin

Config plugin to customize native Android or iOS build properties for managed apps

  • Undo-iconExpoConfig

Configuration for expo-build-properties

NameTypeDescription
android
(optional)
PluginConfigTypeAndroid-
ios
(optional)
PluginConfigTypeIos-

Config for Android native build properties

NameTypeDescription
buildToolsVersion
(optional)
stringOverride the default buildToolsVersion version number in build.gradle
compileSdkVersion
(optional)
numberOverride the default compileSdkVersion version number in build.gradle
enableProguardInReleaseBuilds
(optional)
booleanEnable Proguard (R8) in release builds to obfuscate Java code and reduce app size
extraProguardRules
(optional)
stringAppend custom Proguard rules to android/app/proguard-rules.pro
kotlinVersion
(optional)
stringOverride the default Kotlin version when building the app
minSdkVersion
(optional)
numberOverride the default minSdkVersion version number in build.gradle
packagingOptions
(optional)
PluginConfigTypeAndroidPackagingOptionsAGP PackagingOptions
targetSdkVersion
(optional)
numberOverride the default targetSdkVersion version number in build.gradle

AGP PackagingOptions

NameTypeDescription
doNotStrip
(optional)
string[]Adds a doNotStrip pattern
exclude
(optional)
string[]Adds an excluded pattern
merge
(optional)
string[]Adds a merge pattern
pickFirst
(optional)
string[]Adds a first-pick pattern

Config for iOS native build properties

NameTypeDescription
deploymentTarget
(optional)
stringOverride the default iOS Deployment Target version in the following projects:
  • in CocoaPods projects
  • PBXNativeTarget with com.apple.product-type.application productType in the app project
useFrameworks
(optional)
'static' | 'dynamic'Enable use_frameworks! in Podfile