You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Some of our developers are not able to publish their apps to the Play Store, due to large asset files, or large library files (app bundles larger than 150mb are not allowed). They need a solution. It seems that, in the long term, the solution is to use APK expansion files.
This is a huge pain point for affected developers.
@sfshaza2 just to add to this we have a video app that has many types of video codecs in it and gif generation tools. Currently, we cannot post it to the Android app store. Seem's to be no solution for us since it isn't the assets that are too big.
We have an app with 3 language packs for an audio tour app. These are ~60Mb each, so obviously when bundled in assets, it means the APK is too large for Google Play.
The language packs are available to download from a server, however this is not practical due to where users install the app. WiFi is not existent when on the tour, and usually those needing other languages are on roaming data, which is expensive and also not available in a lot of places on site!
The base app and libraries is under the Google Play threshold, and in native Android, we would add an expansion file/OBB for the language packs, however this isn't available.
The app also uses AR which means the APK is large, but Unity allows splitting the package into an OBB, but Flutter is where this breaks down as well.
So far, it sounds like we're talking about assets. Are these Flutter managed assets that were added from the pubspec?
If so, I'd rescope this feature request.
Having a plugin that makes use of the Play Core API to dynamically load new asset modules for app bundles is reasonable. If that's the request, we'll add it to our queue.
This implies we're excluding: ask expansions/obbs, since they're not supported with AABs and AABs are the current Android delivery recommendations.
Dynamic modules for native libraries or AOT snapshot code compiled from Dart (or generally anything other than assets) since they introduce additional complexities.
@xster I'll see if I can produce a demo app with a library over 150mb. Mainly FFmpeg library that's taking a fair chunk (I'm aware of their optimizations but that's off point).
Do you think Dart/Flutter could load dynamic libraries with the APK expansion files?
@xster it's a few libraries but the main one is FFMPG, I'm aware you can use light versions of the library but we use some of the more advanced features.
Now that we're getting fairly close on #57617, I'm going to merge this bug in. When split feature modules is completed, it will support deferred asset loading on Android.
This thread has been automatically locked since there has not been any recent activity after it was closed. If you are still experiencing a similar issue, please open a new bug, including the output of flutter doctor -v and a minimal reproduction of the issue.
Activity
ollyde commentedon Feb 27, 2020
@sfshaza2 just to add to this we have a video app that has many types of video codecs in it and gif generation tools. Currently, we cannot post it to the Android app store. Seem's to be no solution for us since it isn't the assets that are too big.
xster commentedon Feb 27, 2020
@OllyDixon any chance you can share with us the breakdown of the APK/AAB content so we could know where to start looking?
pascalfriedrich commentedon Feb 27, 2020
I need this feature too, I even thought about rewriting the app in Xamarin Forms. What a scary thought ;-)
My app is a soundboard and contains hundreds of soundfiles, some small icons and just a few .dart files besides the flutter default files.
WallyHale commentedon Feb 27, 2020
We have an app with 3 language packs for an audio tour app. These are ~60Mb each, so obviously when bundled in assets, it means the APK is too large for Google Play.
The language packs are available to download from a server, however this is not practical due to where users install the app. WiFi is not existent when on the tour, and usually those needing other languages are on roaming data, which is expensive and also not available in a lot of places on site!
The base app and libraries is under the Google Play threshold, and in native Android, we would add an expansion file/OBB for the language packs, however this isn't available.
The app also uses AR which means the APK is large, but Unity allows splitting the package into an OBB, but Flutter is where this breaks down as well.
xster commentedon Feb 27, 2020
Thanks for the feedback. These are useful.
So far, it sounds like we're talking about assets. Are these Flutter managed assets that were added from the pubspec?
If so, I'd rescope this feature request.
Having a plugin that makes use of the Play Core API to dynamically load new asset modules for app bundles is reasonable. If that's the request, we'll add it to our queue.
This implies we're excluding: ask expansions/obbs, since they're not supported with AABs and AABs are the current Android delivery recommendations.
Dynamic modules for native libraries or AOT snapshot code compiled from Dart (or generally anything other than assets) since they introduce additional complexities.
[-]Unable to publish large apps to the app store[/-][+]Support dynamic asset modules on Android[/+]Sun3 commentedon Feb 28, 2020
For one of my clients they have proprietary audio files that need to be embedded into the app and these assets are greater than 150 MB limit.
xster commentedon Feb 28, 2020
@Sun3 thanks for the feedback. Yup, that falls in the above categorization (e.g. assets only).
WallyHale commentedon Feb 28, 2020
As far as I have seen, Android App bundles do not work with expansion files? Only APK does. Or am I missing something.
xster commentedon Feb 28, 2020
That's what I was saying above. If we do add support, it would be for dynamic modules rather than expansion files and only for assets.
WallyHale commentedon Feb 28, 2020
Pardon my misunderstanding, how will this allow us to publish larger app packages to Google Play?
ollyde commentedon Feb 29, 2020
@xster I'll see if I can produce a demo app with a library over 150mb. Mainly FFmpeg library that's taking a fair chunk (I'm aware of their optimizations but that's off point).
Do you think Dart/Flutter could load dynamic libraries with the APK expansion files?
xster commentedon Mar 10, 2020
@OllyDixon can you point me to the specific libraries?
ollyde commentedon Mar 10, 2020
@xster it's a few libraries but the main one is FFMPG, I'm aware you can use light versions of the library but we use some of the more advanced features.
xster commentedon Mar 13, 2020
Can you point to the specific maven link so we can look at it and see if there are optimizations we can make?
xster commentedon Dec 16, 2020
Now that we're getting fairly close on #57617, I'm going to merge this bug in. When split feature modules is completed, it will support deferred asset loading on Android.
github-actions commentedon Aug 8, 2021
This thread has been automatically locked since there has not been any recent activity after it was closed. If you are still experiencing a similar issue, please open a new bug, including the output of
flutter doctor -vand a minimal reproduction of the issue.