Repository navigation
App Clip uncompressed size is larger than 10MB #71098
Copy link
Copy link
Open
Labels
P2Important issues not at the top of the work listImportant issues not at the top of the work lista: sizeReducing IPA/APK/JS sizesReducing IPA/APK/JS sizesplatform-iosiOS applications specificallyiOS applications specificallyteam-iosOwned by iOS platform teamOwned by iOS platform teamtriaged-iosTriaged by iOS platform teamTriaged by iOS platform team
Description
Submitting a minimal app currently exceeds the 10mb uncompressed size limit with a
ITMS-90865: Thinned app clip size is too large
on 1.24.0-8.0.pre.344.
Compressed, thinned IPA is 4.6mb, but the current uncompressed breakdown is:
Total: 11,289,773 bytes
[ 320] AppClip.app
├── [ 90K] AppClip
├── [ 34K] Assets.car
├── [ 128] Base.lproj
│ ├── [ 160] LaunchScreen.storyboardc
│ │ ├── [2.2K] 01J-lp-oVM-view-Ze5-6b-2t3.nib
│ │ ├── [ 258] Info.plist
│ │ └── [ 896] UIViewController-01J-lp-oVM.nib
│ └── [ 160] Main.storyboardc
│ ├── [1.8K] BYZ-38-t0r-view-8bC-Xf-vdC.nib
│ ├── [ 258] Info.plist
│ └── [ 923] UIViewController-BYZ-38-t0r.nib
├── [ 128] Frameworks
│ ├── [ 192] App.framework
│ │ ├── [1.7M] App
│ │ ├── [ 794] Info.plist
│ │ ├── [ 96] _CodeSignature
│ │ │ └── [2.7K] CodeResources
│ │ └── [ 160] flutter_assets
│ │ ├── [ 2] AssetManifest.json
│ │ ├── [ 2] FontManifest.json
│ │ └── [725K] NOTICES
│ └── [ 192] Flutter.framework
│ ├── [7.4M] Flutter
│ ├── [ 956] Info.plist
│ ├── [ 96] _CodeSignature
│ │ └── [2.0K] CodeResources
│ └── [781K] icudtl.dat
├── [4.2K] Info.plist
├── [ 8] PkgInfo
├── [ 96] _CodeSignature
│ └── [6.7K] CodeResources
└── [104K] embedded.mobileprovision
The App.framework/App breakdown is:
The flutter package breakdown is:

The Flutter.framework/Flutter breakdown (on an equivalent Android libflutter.so, since we don't have a tool to break down iOS dylibs yet dart-lang/sdk#44278):
Possible explorations
-
[90k]Dig more into what the AppClip binary is. -
[1.6m]Build App.framework/App with split-debug-info. -
[781k]The NOTICES file is huge. Since the uncompressed size is being measured here, there might be de-duplication potential. Deduplicate NOTICES #71102 -
[1m]The 70kb ld-temp.o and the 950kb unattributed code in the Flutter.framework/Flutter / libflutter.so is suspicious.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
P2Important issues not at the top of the work listImportant issues not at the top of the work lista: sizeReducing IPA/APK/JS sizesReducing IPA/APK/JS sizesplatform-iosiOS applications specificallyiOS applications specificallyteam-iosOwned by iOS platform teamOwned by iOS platform teamtriaged-iosTriaged by iOS platform teamTriaged by iOS platform team


Activity
xster commentedon Nov 24, 2020
The measured App.framework/App is already building with split-debug-info, which went from 2,057,088 bytes to 1,774,672.
xster commentedon Dec 15, 2020
#71102 brings it down by a bit
Looks like the NOTICES part is down by ~700kB.
acoutts commentedon Apr 30, 2021
Does this mean it's under the 10mb limit now to use in production?
alex-zige commentedon May 4, 2021
@xster thanks for the #71102, looks like it's still just a bit over 10m for production?
oantajames commentedon May 5, 2021
@xster any updates on when this will be addressed?
xster commentedon May 8, 2021
Correct, it's still over 10mb currently unfortunately. I don't have an ETA for when it'll be addressed.
marcguillem commentedon Sep 10, 2021
neiljaywarner commentedon Nov 3, 2021
@xster bump :). (since it's been 2 months since request for info and 6 months since your last comment hope you don't mind gentle bump
oantajames commentedon Jan 3, 2022
kimmy-wang commentedon Jan 10, 2022
cweagans commentedon Jan 10, 2022
28 remaining items
jmagman commentedon Feb 13, 2024
From that WWDC video:
So targeting iOS 16 allows the 15MB limit.
keylinwu commentedon Feb 13, 2024
If doing an App Clip with Flutter could possibly be very limited by the size, would it be possible to create a Native AppClip(iOS)/Instant App(Android) within a Flutter Project?
ggirotto commentedon Feb 14, 2024
Yes, just implement it natively
espling commentedon Feb 14, 2024
Yes, as you can see I wrote about that earlier. It's just another target in xcode, and that will use a separat prov profile. All those kind of stuff is well documented on apples dev site.
Note, android instant apps does not support the nfc api (or at least it didn't some time ago), if you intend to use that for app clip invocation.
jmagman commentedon Feb 14, 2024
flutter/website#10145
jmagman commentedon Feb 14, 2024
Updating the sample flutter/samples#2162
Update iOS App Clip instructions for Xcode 15 and iOS 16 (#10145)
Update iOS App Clip instructions for Xcode 15 and iOS 16 (flutter#10145)
Update App Clip for Xcode 15 and iOS 16+ (#2162)
Update iOS App Clip instructions for Xcode 15 and iOS 16 (flutter#10145)
sumanthratna commentedon Jul 25, 2024
Hey @xster, is there anything we can do to help move this forward?
Our App Clip (uncompressed, thinned) is currently at 14.9 MB (even after switching out
MaterialAppforWidgetsApp). Happy to try and help to reduce Flutter engine size and overall iOS build size [with guidance]P.S. I noticed that App Thinning doesn't seem to help much -- the IPA size for Universal variant is equal to the IPA size for all compatible variants. Is this something you've seen before, and if so, does it imply that we've misconfigured something?
MarkOSullivan94 commentedon Feb 2, 2026
Is there any updates on whether we can expect App Clip with Flutter apps?
Update App Clip for Xcode 15 and iOS 16+ (#2162)
Update App Clip for Xcode 15 and iOS 16+ (#2162)
Update App Clip for Xcode 15 and iOS 16+ (#2162)