Hello,
I am encountering the following error when uploading a build to App Store Connect:
ITMS-90555: Thinned app size is too large – Your on-demand resources in the universal variant are 30 GB, which exceeds the maximum allowable size. After app thinning, the total size of your on-demand resource asset packs in any variant must be less than 30 GB.
Our application includes a large amount of font resources delivered via ODR. Before making structural changes, I need clarification because the documentation does not fully explain how ODR size calculations work per variant.
Environment
Xcode: (latest stable)
Distribution method: App Store submission
ODR total size before thinning: approximately (28 GB)
Build processing fails immediately with the ITMS-90555 error
Questions
- How exactly does App Thinning compute the size of ODR asset packs per variant?
Is ODR size evaluated:
Per device-specific variant,
Or is the “universal variant” treated as an additional variant that must independently stay under 30GB?
The documentation mentions a 30GB limit per variant, but the universal variant error message is ambiguous.
- If device-specific variants are below 30GB but only the “universal variant” exceeds it, is the build still rejected?
In our case:
iPhone-only variants appear to be below the limit,
But the universal variant exceeds 30GB due to aggregated resources.
Is this expected behavior?
- Best practices for managing very large ODR sets (e.g., fonts)
Fonts are small individually, but thousands of them produce very large ODR groups.
Is there recommended guidance from Apple for:
Structuring ODR bundles to avoid the universal variant exceeding the limit
Segmenting ODR by device class / feature sets
Any alternative packaging strategies
- Are there tools or logs that reveal how App Store Connect decides variant groupings and ODR size?
At the moment, the failure only shows the ITMS-90555 error without further detail.
Case-ID for DTS reference
DTS advised submitting this question here.
Case-ID: 17273913
Any clarification from Apple engineers or community members who have navigated ODR size limits would be greatly appreciated.
Thank you very much!