-
Notifications
You must be signed in to change notification settings - Fork 975
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Size of JRE.xcframework exceeds 75MB limit of appstoreconnect #2241
Comments
Most iOS projects build with the Compounding this problem is that the JRE is huge, including the JRE framework makes apps much bigger. So linking with the JRE.framework is really just for development and testing. Published apps need to be trimmed down somehow. The easiest thing to try is to remove the That's why the JRE subset libraries exist. We broke the JRE into chunks where possible, consisting of a This isn't a perfect solution, though, as some JRE subsets reference other subsets. The subset for the If you need JRE subset frameworks instead of libraries, in the |
I'm using the JRE.xcframework in my own framework. I've built the JRE.xcframework for arm64_32 and armv7k. I can see that that all worked well, because there is a corresponding folder. So my full set up is: My project -> links my framework -> links JRE.xcframework
When uploading my app, is not exceeds the 75MB treshold by a tiny margin:
"ITMS-90389: Size limit exceeded - The size of the watchOS variant at "/Payload/Surfr..app/Watch/Surfr..app" is 75MB, which exceeds the maximum allowable size of 75MB after app thinning. For details about reducing your app's size, view: https://developer.apple.com/documentation/xcode/reducing-your-app-s-size"
I followed the instructions and indeed found out that in some of the thinned IPA's there is a Surfr..app in the Payload/Watch folder of 75.8 mb. This is mainly because of the linked binary of the JRE.xcramework, which is already 68MB (approx 32mb per architecture). If I remove one of the architectures (and build JRE.xcframework, my framework , and my app again) than the size of the Payload/Watch/Surfr..app drops to 43MB.
It seems like my thinned IPA's aren't really thinned/splitted per architecture. I would expect that one of my thinned IPA's would never contain more than one architecture.
What is expected here and how can I resolve this issue so that in my thinned IPA's only one architecture is included and I'm not exceeding the appstore limit?
Here a picture of the linked JRE.xcframework, which make my watch IPA increase with 68MB, because the JRE.xcframework contains two frameworks.
Here the actual problem, a 75.8MB watch IPA within my app archive bundle (thinned ipa's). If I built the JRE.xcframework for, for example only ARM64_32, then the size drops to +- 40MB. But appstore requires both ARM64_32 and ARMv7k so dropping an architecture is not an option. My main question is though, why does including an extra architecture lead to lineair increase in IPA size. I would expect that the app splitting/thinning proces would take care of that and the IPA would be splitted per architecture.
The text was updated successfully, but these errors were encountered: