Symptoms:
- App size is bigger than the over-the-air download limit and forces iOS users to download the app via WiFi.
- I want to use resource slicing on iOS and tvOS.
Cause:
- My app is bigger than the over-the-air download limit on iOS and bigger than the main application bundle size on tvOS.
- I want to get the best download size and storage utilization for my iOS and tvOS app.
Resolution:
The primary objective of app resource slicing is to reclaim wasted bandwidth and space in cases when there are several variants of the same asset. Usage of different asset variants is frequently needed because there is large difference of hardware capabilities between the most recent and older, but still widely used iOS devices. Most of the time developers need to use assets of different quality to fully utilize the most performant devices without penalizing the rest. Prior to iOS 9.0, all asset variants had to be included into the main app bundle. That wasted bandwidth and storage space on devices, as all but one asset variants were unused. By employing app resource slicing, it's possible to exclude any unneeded assets from the application bundle.
Unity's resource slicing works in conjunction with modern optimization features like Addressables and Asset Bundles to provide fine-grained control over asset delivery and loading.
For detailed implementation guidance on resource slicing with Unity, refer to the official Unity documentation on iOS and tvOS optimization.
More Information:
- Read more about Optimizing iOS & tvOS apps with app thinning and IL2CPP
- Read more about App thinning on Apple Developer
- Learn about Addressables for asset management
This article applies to Unity 2022.3 LTS and higher, Xcode 14 and higher, iOS 12.0 and higher, and tvOS 12.0 and higher.