A config plugin that allows customizing native build properties during prebuild.
GitHub
npm
expo-build-properties
is a config plugin configuring the native build properties
of your android/gradle.properties and ios/Podfile.properties.json directories during Prebuild.
This config plugin configures how Prebuild command generates the native android and ios folders and therefore cannot be used with projects that don't runnpx expo prebuild
(bare projects).
Android Device | Android Emulator | iOS Device | iOS Simulator | Web |
---|---|---|---|---|
-
npx expo install expo-build-properties
{
"expo": {
"plugins": [
[
"expo-build-properties",
{
"android": {
"compileSdkVersion": 31,
"targetSdkVersion": 31,
"buildToolsVersion": "31.0.0"
},
"ios": {
"deploymentTarget": "13.0"
}
}
]
]
}
}
export default {
expo: {
plugins: [
[
'expo-build-properties',
{
android: {
compileSdkVersion: 31,
targetSdkVersion: 31,
buildToolsVersion: '31.0.0',
},
ios: {
deploymentTarget: '13.0',
},
},
],
],
},
};
PluginConfigType
interface represents currently available configuration properties.
BuildProperties.withBuildProperties(config, props)
Name | Type | Description |
---|---|---|
config | ExpoConfig | Expo config for application. |
props | PluginConfigType | Configuration for the build properties plugin. |
Config plugin allowing customizing native Android and iOS build properties for managed apps.
ExtraIosPodDependency
Interface representing extra CocoaPods dependency.
ExtraIosPodDependency Properties
Name | Type | Description |
---|---|---|
branch (optional) | string | The git branch to fetch. See the git property for more information. |
commit (optional) | string | The git commit to fetch. See the git property for more information. |
configurations (optional) | string[] | Build configurations for which the pod should be installed. Example
|
git (optional) | string | Use the bleeding edge version of a Pod. Example { "name": "AFNetworking", "git": "https://github.com/gowalla/AFNetworking.git", "tag": "0.7.0" }
This acts like to add this pod dependency statement: pod 'AFNetworking', :git => 'https://github.com/gowalla/AFNetworking.git', :tag => '0.7.0'
|
modular_headers (optional) | boolean | Whether this pod should use modular headers. |
name | string | Name of the pod. |
path (optional) | string | Custom local filesystem path to add the dependency. Example
|
podspec (optional) | string | Custom podspec path. Example
|
source (optional) | string | Custom source to search for this dependency. Example
|
tag (optional) | string | The git tag to fetch. See the git property for more information. |
testspecs (optional) | string[] | Test specs can be optionally included via the :testspecs option. By default, none of a Pod's test specs are included. Example
|
version (optional) | string | Version of the pod. CocoaPods supports various versioning options. Example
|
PluginConfigType
Interface representing base build properties configuration.
PluginConfigType Properties
Name | Type | Description |
---|---|---|
android (optional) | PluginConfigTypeAndroid | Only for: Android Interface representing available configuration for Android native build properties. |
ios (optional) | PluginConfigTypeIos | Only for: iOS Interface representing available configuration for iOS native build properties. |
PluginConfigTypeAndroid
Interface representing available configuration for Android native build properties.
PluginConfigTypeAndroid Properties
Name | Type | Description |
---|---|---|
buildToolsVersion (optional) | string | Override the default |
compileSdkVersion (optional) | number | Override the default |
enableProguardInReleaseBuilds (optional) | boolean | Enable Proguard or R8 in release builds to obfuscate Java code and reduce app size. |
enableShrinkResourcesInReleaseBuilds (optional) | boolean | Enable |
extraMavenRepos (optional) | string[] | Add extra maven repositories to all gradle projects. This acts like to add the following code to android/build.gradle:
|
extraProguardRules (optional) | string | Append custom Proguard rules to android/app/proguard-rules.pro. |
flipper (optional) | string | By default, Flipper is enabled with the version that comes bundled with Use this to change the Flipper version when
running your app on Android. You can set the |
kotlinVersion (optional) | string | Override the Kotlin version used when building the app. |
minSdkVersion (optional) | number | Override the default |
networkInspector (optional) | boolean | Enable the Network Inspector. Default: true |
newArchEnabled (optional) | boolean | Enable React Native new architecture for Android platform. |
packagingOptions (optional) | PluginConfigTypeAndroidPackagingOptions | Interface representing available configuration for Android Gradle plugin PackagingOptions. |
targetSdkVersion (optional) | number | Override the default |
usesCleartextTraffic (optional) | boolean | Indicates whether the app intends to use cleartext network traffic. Default: false |
PluginConfigTypeAndroidPackagingOptions
Interface representing available configuration for Android Gradle plugin PackagingOptions.
PluginConfigTypeAndroidPackagingOptions Properties
Name | Type | Description |
---|---|---|
doNotStrip (optional) | string[] | Array of patterns for native libraries that should not be stripped of debug symbols. |
exclude (optional) | string[] | Array of patterns for native libraries that should be excluded from being packaged in the APK. |
merge (optional) | string[] | Array of patterns for native libraries where all occurrences are concatenated and packaged in the APK. |
pickFirst (optional) | string[] | Array of patterns for native libraries where only the first occurrence is packaged in the APK. |
PluginConfigTypeIos
Interface representing available configuration for iOS native build properties.
PluginConfigTypeIos Properties
Name | Type | Description |
---|---|---|
deploymentTarget (optional) | string | Override the default iOS "Deployment Target" version in the following projects:
|
extraPods (optional) | ExtraIosPodDependency[] | Add extra CocoaPods dependencies for all targets. This acts like to add the following code to ios/Podfile: pod '[EXTRA_POD_NAME]', '~> [EXTRA_POD_VERSION]'
# e.g.
pod 'Protobuf', '~> 3.14.0'
|
flipper (optional) | string | boolean | Enable Flipper when running your app on iOS in
Debug mode. Setting
|
networkInspector (optional) | boolean | Enable the Network Inspector. Default: true |
newArchEnabled (optional) | boolean | Enable React Native new architecture for iOS platform. |
useFrameworks (optional) | 'static' | 'dynamic' | Enable
|