expo-build-properties config plugin lets you customize iOS and Android build settings from app.json without editing native files directly.
Installation
Basic Usage
Add the plugin to yourapp.json:
app.json
Android Configuration
SDK Versions
| Property | Description | Default |
|---|---|---|
| compileSdkVersion | SDK version to compile against | 34 |
| targetSdkVersion | Target API level | 34 |
| minSdkVersion | Minimum supported API level | 23 |
| buildToolsVersion | Build tools version | 34.0.0 |
NDK Version
- React Native libraries with native C++ code
- Custom JNI modules
- Specific NDK features
Kotlin Version
Gradle Properties
Memory Settings
Multidex
ProGuard/R8
iOS Configuration
Deployment Target
iOS 13.4+ is required for Expo SDK 50+
Use Frameworks
"static": Use static frameworks (recommended)"dynamic": Use dynamic frameworksnull: No frameworks (default)
- Swift libraries
- Some CocoaPods dependencies
Flipper
- Production builds
- Smaller binary size
- Faster builds
New Architecture
Cocoapods
Common Configurations
Minimum Example
app.json
Production Optimized
Development Optimized
New Architecture
Monorepo Configuration
Platform-Specific Features
Android Only
Jetpack Compose
Material 3
iOS Only
Swift Modules
App Clips
EAS Build Integration
Build Profiles
eas.json
app.json
Environment-Specific Configuration
Using app.config.js
app.config.js
Multiple Configurations
app.config.js
Troubleshooting
Build Fails: SDK Version Mismatch
iOS Build Fails: Framework Not Found
Android Build Fails: Duplicate Classes
CocoaPods Install Fails
Best Practices
1. Use Specific Versions
2. Match Platform Targets
3. Optimize for Release
4. Test After Changes
Next Steps
Prebuild
Learn about the prebuild workflow
Creating Builds
Build with custom properties
Monorepos
Configure monorepo builds
Native Modules
Create native modules