I am trying to setup my own Server to host apk files which will be available for installs and updates in the client App.
On new version update of apk, only the updated part should get downloaded at the client end. I am able to generate a patch file using "bsdiff" at the server end. But at the client, how should I merge the patch file with the original apk and install the update.
Based on your question, it looks like you are looking for some kind of patching system. Normally Google play store takes of managing this. When you upload a new version of APK, it only download the difference on client's device which saves data for customers. However the merging of this done on Mobile itself.
Since you are not using google play store, the only way available could be a patching system like AndFix. Some more options can be found on this SO. Most of them require some code changes.
You can also follow the concept of expansion files described by Google. You should be able to mimic the approach.
Note: Google play policy discourages this approaches if you are distributing it though Google play store and not utilizing Google Play's update mechanism. You need to be careful in case you are planning to distribute your app through play store in later stages
Related
I know that I can let users download apks from my server but...
What I need is a technique to implement a modular app with features that I can add and remove such as the Play Feature Delivery from Android App Bundles.
At the same time I can't use Google Play Store.
I read that:"App Bundle format is open source, so other stores can adopt it"
So I think I could implement my own store but how can I implement the Play Feature Delivery?
I read also about:
apk split
apk Expansion Files
over-the-air programming
native app over HTTP
Do you have any idea where I can start?
UPDATE 1
I can't put +1 but thanks to Rediska I can elaborate the question.
With bundletool I can generate an APK Set archive containing APKs for all possible devices.
How do I automate the installation of new features from the client point of view?
Can I use Play Core lib or another lib?
UPDATE 2
From here I found Evolve.
Evolve is a library for Android Developers that lets them deploy new
versions of an app without going through Google Play or asking users
to download an update. It works by using reflection and dynamic
bytecode generation to "trick" Android into running new code.
Now, this opens to ideas but also security risks.
There is bundletool - a utility for handling .aab files. It is open source, and it does have the ability to generate APK files based on specs.
I was wondering if there is any way to automate the building of apk and ipa file and publish them into Google Play or App Store?
The idea is customer will be able to change some image and content from website console then build the apk or ipa with their own changes and publish the app into Google Play or App Store by their own from the website console.
So my question is, is there any tools or techniques that can be used to build the apk or ipa from website where by customer click event, that tool or technique will perform the build using the modified source code saved in the server and also publish the app using necessary process including app signing.
I am asking this because I found some app builder websites are providing this kind of service where customer can publish their app by their own.
I have searched the web for this, and did not find anything to try.
Yes, there are services for building & releasing apps automatically. A build server using the right tools can build your app and be responsible for signing & publishing to the stores. This takes a bit of time to setup properly, but once setup it shouldn't be much of a hassle.
Have a look at Fastlane, their service should match your needs for mobile apps and it widely adopted as a deployment solution. You can have a look at their doc on how to set it up yourself.
As to wether or not this is the proper solution for you remains discussable. If all your clients wish to do is update images & simple content, you're much better off with a CMS. This would allow your client to update all the content while the app is live. That way, you wouldn't have to push an update to the store just to change an image, and the app users won't have to update everytime (which you can never guarantee).
It is possible to upload new apk to Google Play automatically? I mean not for already published apps (that have at least one APK uploaded), but for creating absolutely new application and upload its first apk. There is tools like Publisher API, Fastlane etc, but they are uploading apk's for update already published apps.
This is not possible with current android-publisher API version (all the other tools, including fastlane, are built on top of that).
From documentation:
You can only use this API to make changes to an existing app (that has
at least one APK uploaded); thus, you will have to upload at least one
APK through the Play Console before you can use this API.
I am developing a paid app that I will be placing in the google play store, but I want to give away some copies of the app for free to reviewers, for promotions, etc. I know that I can just link to the apk file but that is not secure as anyone could then copy and re distribute it. My question is, is there a way to distribute an application outside of the google play store but in a secure manner? Are there other services that allow you to upload your apk and distribute the app to specific individuals?
If you're concerned about people redistributing your APK, anyone who can install your app can retrieve the APK from their phone and then make that APK available to others, if they wish.
A dedicated android app distribution service might have useful Play-Store-like features, but if that's not essential for you then you just need a non-public file distribution method.
Some possible means of distributing a file to a named set of individuals:
Email it directly (depending on the size of your apk)
Send it using a web-based file hosting + distribution tool (e.g. sharefile.com)
Host it on a website with logins that you control.
As I'm currently facing a similar task, I looked into Zubhium and HockeyApp. However, I haven't evaluated their potential, yet, I just browsed through the website. Maybe you can start from there.
I have already published android app on Google Play. It is desired to distribute the application even offline as .apk file directly. My app is completely free and we wish it should spread to as many people.
I am not sure what could be advantages and disadvantages of providing .apk file?
Questions are :
Will Google play count direct .apk installation as a download, when connected to internet ?
Will users with direct .apk installation get any update published later ?
To answer your questions:
Yes, you will get a download prompt if you click on an .apk in Android. When you go to open the completed download, it will offer it up for install (see caveats below)
If you offer your .apk up for direct download outside of Google Play you get no "update checking" -- you have to do that yourself. Not entirely sure what happens if the .apk is available in the play store and via direct download.
It is easier to talk about the disadvantages for the approach of distributing the .apk yourself.
You have to do all the tracking yourself, if you publish to the play store you get some statistics
Similarly, you have to do all "update checking" on your own (either via writing it in your app or some other way.)
No secure way of distributing your application. The built in Android browser does not support downloads over HTTPS streams that require authentication **
Easier for users to get the source code of your app. They can download the .apk from your site, open it in 7zip (or similar) and have at the underlying class files. Whether or not this is a concern is really for you to decide.
The most important reason
Your users will have to check "Allow installation of packages from unknown sources". Your average person might not know how to do this, and may be hesitant to do so. So, it may limit your ability to gain a a wide market share.
So, in summary, ask yourself if not being in Google Play/Android Market is really worth the hassle that comes for both you and your users.
** Not sure if this is true with Chrome on Android -- it is certainly true with the older default browser
Google play collects statistics of Apps only installed through Play Store , with a Google account logged in. Read Documentation on App statistics.
Newer version of Play Store app can auto detect if any of installed app is also available on play store, and will notify for the update.
Also, there are numerous third party app markets other than Play Store. You can upload your app there too (auto update is not available with all of them).
Seems no, correct me if I am wrong :)
Yes, provided that the package name is the same and the version code of the apk file you've uploaded to google play is larger than the one installed in the device.