Overview
Your app icon is the first thing users see. Expo makes it easy to configure icons for both iOS and Android with support for adaptive icons and automatic asset generation.Basic Configuration
Single icon for all platforms
app.json
- Size: 1024 x 1024 pixels
- Format: PNG
- Design: Square with important content centered
Platform-Specific Icons
- iOS
- Android
iOS app icon
app.json
- Size: 1024 x 1024 pixels
- Format: PNG (no transparency)
- No alpha channel (fully opaque)
- Border radius applied automatically by iOS
Multiple icon sizes
Expo automatically generates all required sizes:- 20x20 (Notification)
- 29x29 (Settings)
- 40x40 (Spotlight)
- 58x58 (Settings @2x)
- 60x60 (App)
- 76x76 (iPad)
- 80x80 (Spotlight @2x)
- 87x87 (Settings @3x)
- 120x120 (App @2x)
- 152x152 (iPad @2x)
- 167x167 (iPad Pro)
- 180x180 (App @3x)
- 1024x1024 (App Store)
You only need to provide the 1024x1024 icon. Expo generates all other sizes automatically.
Creating Adaptive Icons
Foreground layer
The foreground contains your logo or main icon element:- Keep important elements within the 528x528 safe zone
- Use transparency for areas that should show the background
- Test with different mask shapes
Background layer
Options for the background:- Solid Color
- Image
- Both
app.json
Round Icons
Android also supports legacy round icons:app.json
Notification Icons
Configure icons for notifications:app.json
- Size: 96 x 96 pixels (xxxhdpi)
- Format: PNG with transparency
- Content: White with transparency (background removed)
- Android only uses the alpha channel, tinting it with the specified color
Asset Generation
Using online tools
Using command-line tools
Programmatic generation
scripts/generate-icons.js
Design Guidelines
iOS design tips
- No transparency: iOS icons should have no transparent areas
- No border radius: iOS applies the border radius automatically
- High contrast: Icons should be recognizable at small sizes
- Consistent style: Match iOS design patterns
- Test in context: View your icon next to other iOS apps
Android design tips
- Use adaptive icons: Support all Android devices and OEM customizations
- Safe zone: Keep important content in the 528x528 center area
- Flexible colors: Your icon will be displayed on various backgrounds
- Test all shapes: Preview your icon as circle, square, squircle, and teardrop
- Material Design: Follow Material Design icon guidelines
Universal tips
- Simple and memorable: Avoid complex details that don’t scale
- Unique: Stand out from other apps
- Consistent branding: Match your brand colors and style
- Test at small sizes: Icons are often viewed at 60x60 or smaller
- Avoid text: Text in icons is hard to read at small sizes
- Use vectors: Start with SVG or vector graphics for best quality
Testing Your Icons
Preview on device
Preview adaptive icon shapes
Use Android Studio’s Adaptive Icon Preview:- Open Android Studio
- Navigate to
android/app/src/main/res/mipmap-anydpi-v26/ - Right-click on
ic_launcher.xml - Select “Preview Adaptive Icon”
Online preview tools
Advanced Configuration
Custom icon sets
Provide different icons for different contexts:app.json
Development vs production icons
Use different icons for development builds:app.development.json
Troubleshooting
Icon not updating after rebuild
Icon not updating after rebuild
- Clear build cache:
npx expo prebuild --clean - Uninstall the app from your device
- Rebuild and reinstall
- On iOS: Clean Xcode build folder (Cmd+Shift+K)
Adaptive icon looks wrong on some devices
Adaptive icon looks wrong on some devices
- Verify safe zone: Important content within 528x528 center
- Test with different mask shapes using preview tools
- Check that foreground and background are 1024x1024
iOS icon has black background
iOS icon has black background
iOS doesn’t support transparency in app icons. Ensure your icon has a solid background color with no transparent areas.
Notification icon appears as gray square
Notification icon appears as gray square
- Notification icons should be white silhouettes with transparency
- Remove all colors from the notification icon
- Use only the alpha channel for the icon shape
Icon Checklist
- Main icon is 1024x1024 PNG
- iOS icon has no transparency
- Android adaptive icon configured
- Foreground content within safe zone (528x528)
- Notification icon is white silhouette
- Tested on both iOS and Android
- Tested at small sizes
- Previewed with different adaptive icon shapes
- Icon matches brand guidelines
- High contrast and recognizable