I am building an app using React Native that involves the use of many assets (specifically .mp4 files).
My app is around 430mb.
On the Android side, I have followed the Play Asset Delivery official documentation, and I cannot get it to work.
I am only using install_time assets, and therefore have not used the Play Core API. After setting everything up (as per the documentation), I generate a Signed Bundle, and try to upload it for internal testing on Google Play Console, only to get an error back because of my bundle size being larger than 150mb.
I cannot find anything online about this, as there are no tutorials or helpful documents yet, and everything I have found has been Unity related, which I am not using.
I currently have a module for the install_time_asset_pack, and a AndroidManifest.xml was generated when I built my app. That being said the bundle is still above 150mb and the Play Console does not seem to split the encapsulated .APK file and the PAD when I try to upload.
Does anyone know anything about this? Or can someone point me to an actually helpful tutorial to implement PAD? Preferably not unity related please.
Thanks!
EDIT:
So it seems the APK generated in my .aab file (the base folder) was larger than 150mb. It seemed to also keep the assets I split into the asset-packs, and thats why it had the large size. So I unzipped the .aab, removed those, and now I don't know how to zip the .aab together again. Any thoughts?
Related
I've built an app using react native augmented reality app where the filters are located in the android app's assets folder but together those filters take up about 60mb or so, so when I build an APK from it, it always end up being bigger than 100mb. I've tried minifying it with proguard, getting rid of any unnecessary code and node_modules ... etc but it's just outright impossible to downsize the APK to be less than 100mb.
What are the ways of uploading it? I've looked online and people recommended that i need to create separate the android assets in expansion files. But what even are expansion files? and how do I create them? There are no clear instructions or guidelines that explain the fundamentals nor practicals.
Look into Play Asset Delivery (https://developer.android.com/guide/app-bundle/asset-delivery). This solution has replaced the painful use of expansion files and allows to serve assets only when needed.
It can also make the download of your app faster by allowing the assets to be downloaded separately from the base of your app.
I am currently working on an android game but when I try to build it, we can do it in two ways i.e.
If we check the Bundle Opting in the build menu then it will come in a single file of formate .adb (Android Debug Bride) it may or may not work with Google Play Store or the App Store but I am not targeting on that I wanted a file or files that I can share with my friends or on itch.io because you can only upload a file or files on it, it is not responsible for installing for anything and whoever downloads the from it, he will just get the file on his/her android device and will not get an installed app to start playing it.
we can also check the Splitting opting in the player menu of project setting and then the build will split into two files, 1. .apk , 2. .obb. well this is a good option but with the same problem if I upload it to a distributor or share it to my friends the two files will be downloaded or shared with no installation
Please tell me a way how I can make a file that can download itself or any solution to this.
I just want a way to build an android game that can easily be installed through a distributor or through sharing
Thank You in Advance
What you want is just an APK.
An app bundle is intended for the Google Play Store. If you upload your app as an app bundle to the Play Store, Google repackages it into multiple APKs which only contain the data and code that is required for specific device configurations of end users. E.g. it only contains specific languages, and code for specific architectures and so on.
If you enable the "Split Application Binary" option, Unity limits the size of your APK to 100MB since this is the limit of the Google Play Store. It then creates the expansion file (.obb) which you would also upload to the Play Store.
In your case, you don't need any of it. You need one APK.
Disable "Build AppBundle (Google Play)" and "Split Application Binary" and you should be able to create one big APK.
I've got a question for the new AAB file format.
Until now we can use APK and OBB files to split our binaries from the assets. But after uploading a AAB file, I'm not able to upload an OBB file.
What can I do, if I want to use AAB and OBB? What's the best practice for that now?
There is currently no support for OBB files with the Android App Bundle. However, the Google Play team hope to add support for this in the very near future.
---- Edit
A year later and Google has just announced at Google I/O 2019 customizable feature delivery. The hope is that this will do everything OBBs did but much more. See all the details here.
at-install delivery is like OBBs - parts of your app that get installed when your App does. Except that you can have more different parts, not just 2.
on-demand delivery lets you install parts of your app later.
I am new to Android app development. My application has a size of 90MB and exceeds the Google Play limit. The developer console suggests to use APK expansion and to create an obb file. But I do not understand how to create an obb file and APK expansion. Does anyone know a better way to do that without changing any code in my application?
Thanks in advance. I'd like to see samples or tutorials about this topic.
I know it's a late answer, but it may help others who encounter a similar issue:
As of recently (Sept. 2015), you are able to upload APKs up to 100 MB if you are targeting Android 2.3 and above - you can read more about it on this help page. Since your app is 90 MB, you should be okay. There is also the Android developers blogspot article explaining the changes here.
Alternatively, or if your app exceeds the 100 MB APK limit, you can use expansion files. These are additional files that are downloaded after your app has installed and can be up to 4 GB (to be specific, you can have two expansion files of up to 2 GB each). You can learn more about expansion files on this page on the Android Developers website.
However, note that there are some limitations to using expansion files, apart from the 2 GB limit per file such as the fact that the user must have downloaded your app through Google Play. More details on these can also be found on the Android Developers page linked above.
I had a concern about the security of my android app.
I developed an app uploaded it on market and got more than 1 lac downloads. I also uploaded my app on Mobango(android store). On monago a persom can download my app's .apk file.
So if any person acn download .apk file of my app, he can upload it on other android store.
I have tried this I downloaded my app's apk from mobango and successfully uploaded on other android store.
My concern was anyone can steal my app and reupload with his name.
thanks
Yes we can reuse the .apk file and extract the source from it .......
This is a worry for all app developers on Google Play store. I've seen Google Chrome plugins which allows to download any apk from the store if you're brave enough to put your google login details and the device ID of your phone.
What you can do is obfuscate the content of the APK using something like ProGuard, which makes it hard to decompile.
Documents say:
The ProGuard tool shrinks, optimizes, and obfuscates your code by
removing unused code and renaming classes, fields, and methods with
semantically obscure names. The result is a smaller sized .apk file
that is more difficult to reverse engineer.
But you can see that it says that is more difficult to reverse engineer and so in theory it is not impossible.
Note that when you use ProGuard tool,you have to create a key.So if any body change your code and recreate another .apk from it this .apk can not publish as update or another version of your origin .apk .