SDK Binary Sizes
Understand how SDK binary sizes differ between the distributed artifacts and what gets installed in your app.
Overview
The Veryfi Lens SDK is distributed as fat binaries that include native code for all supported architectures. This makes integration simple, but the download size of the artifact is larger than the size that actually ends up in your built app.
When you build your app, the build system (Gradle on Android, Xcode on iOS) typically includes only the architecture(s) needed for your target devices. As a result, the size added to your app is smaller than the size of the distributed .aab or .xcframework.
- iOS
- Android
These sizes refer to the full SDK flavor. If you use a specific SDK flavor (e.g. checks-only on iOS), the size can be reduced almost by half. Not all flavors reduce the same; on iOS the SDK size in your app with a specific flavor can be in the range of roughly 5 MB to 15 MB, depending on the flavor.
iOS: XCFramework size vs app size
On iOS, the SDK is distributed as an XCFramework. The XCFramework contains slices for all supported architectures and platforms, for example:
- arm64 (iPhone/iPad devices)
- x86_64 (Simulator, Intel Mac)
- arm64 (Simulator, Apple Silicon)
So one XCFramework includes device + simulator slices for multiple architectures.
Distributed XCFramework size (all architectures)
As of Feb 10, the full Lens SDK XCFramework (all slices: device + simulator) is approximately:
| Artifact | Approximate size |
|---|---|
| Lens SDK XCFramework (all slices) | ~110 MB |
Screenshot: XCFramework size

Size in your app (e.g. device only)
When you build an app for the App Store, you typically include only device architectures (e.g. arm64). Simulator slices are not shipped. The IPA size increase when adding the SDK to a new project is roughly ~29 MB. The actual download size for users can be smaller, as Apple may further reduce it per device (e.g. via App Thinning).
| In your app (device arm64 only) | Approximate size |
|---|---|
| IPA size increase with SDK | ~29 MB |
Actual user download size may be lower than the IPA size increase; Apple handles device-specific variants (e.g. App Thinning).
Screenshot: IPA size comparison (without SDK vs with SDK)

During development, you may notice that the release APK size is quite large (for example, 179 MB for the veryfi-lens-receipts-android-demo release APK). This is a universal APK—a single installation file that contains code and resources for all supported device configurations, including multiple CPU architectures (ABIs) and screen densities.
Publishing a universal APK is no longer recommended. The standard approach on the Google Play Store is to use an Android App Bundle (AAB). App Bundles significantly reduce download size and improve delivery efficiency by allowing Google Play to serve only the code and resources required for a user’s specific device.
You can estimate the final download size of an app that uses the Lens SDK with bundletool, the same tool used by Android Studio, the Android Gradle Plugin, and Google Play to build App Bundles and APKs. In this example, we use Veryfi’s Receipt Demo, which includes the receipts SDK flavor.
1. Build the App Bundle
git clone https://github.com/veryfi/veryfi-lens-receipts-android-demo
cd veryfi-lens-receipts-android-demo
./gradlew bundleRelease
2. Download bundletool
Download bundletool from the official GitHub releases page:
curl -L -o bundletool.jar https://github.com/google/bundletool/releases/download/1.18.3/bundletool-all-1.18.3.jar
3. Generate APKs from the App Bundle
java -jar bundletool.jar build-apks \
--bundle=app/build/outputs/bundle/release/app-release.aab \
--output=app-release.apks
4. Estimate APK Download Sizes
java -jar bundletool.jar get-size total \
--dimensions=ABI \
--apks=app-release.apks
Result:
| ABI | MIN | MAX |
|---|---|---|
| x86 | 39.6 MB | 39.7 MB |
| x86_64 | 45.5 MB | 45.6 MB |
| arm64-v8a | 31.2 MB | 31.3 MB |
| armeabi-v7a | 29.3 MB | 29.5 MB |

For ARM64 (arm64-v8a)—which represents over 90% of active modern devices—the estimated Google Play download size is approximately 31 MB.
5. Verify the Size in the Google Play Console
- Upload your App Bundle to the Internal Test Track(Play Console → Test and release → Testing → Internal testing → Create new release).
- After uploading, open the App Bundle details page to view the estimated download size for new installs (the image below corresponds to the Lens Demo app using the full Lens SDK flavor).

Estimated Sizes by Lens SDK Flavor (ARM64)
| Flavor | Max Size |
|---|---|
| Full | 53 MB |
| Bank Statements | 25.3 MB |
| Barcodes | 22.1 MB |
| Business Cards | 22.5 MB |
| Checks | 26.5 MB |
| Credit Cards | 30.2 MB |
| Credit Cards (Headless) | 21.3 MB |
| Receipts | 31.3 MB |
| Receipts (Headless) | 19.5 MB |
| Long Receipts | 26.6 MB |
| Codes | 25.4 MB |
| W-2 | 25.3 MB |
| W-9 | 25.3 MB |
| Prescription Labels | 27.4 MB |
| Any Docs | 34.7 MB |
| Lite | 15.7 MB |