Reducing App Size on iOS
The Client SDK increases app size mainly because of the bundled WebRTC and noise suppression frameworks. For background on where the size comes from, see Client SDK App Size.
On iOS the observed ~14.5 MB increase already reflects a near-optimal, device-specific download — App Store thinning is applied automatically. The recommendations below ensure your release builds stay at that floor.
1. App Store thinning (automatic)
The Apple App Store automatically performs App Thinning, delivering only the device-specific slice to each user. This means the ~14.5 MB figure already reflects a near-optimal download size for real devices — it is close to the floor for iOS today. No action is required.
2. Enable dead-code stripping
Ensure the following build settings are enabled in your Release scheme in Xcode:
| Build setting | Value | Key |
|---|---|---|
| Strip Linked Product | Yes | STRIP_INSTALLED_PRODUCT |
| Dead Code Stripping | Yes | DEAD_CODE_STRIPPING |
These settings remove unused symbols and code from the final binary, reducing the shipped binary size.
3. Exclude simulator slices from production builds
Verify that your production/Release build does not bundle simulator slices (x86_64, i386). Simulator architectures should only be present in Debug/development builds — shipping a build with simulator slices unnecessarily inflates the app size for end users.
TIP
If you integrate via an XCFramework, device and simulator slices are kept in separate framework variants and Xcode selects the correct one per configuration automatically. Double-check any manual .framework integration or custom build scripts that might copy simulator slices into a Release build.
Summary
| Recommendation | Impact |
|---|---|
| App Store Thinning | Automatic — already applied |
| Strip Linked Product / Dead Code Stripping | Reduces binary size |
| Exclude simulator slices in Release | Prevents unnecessary bloat |