I'm developing an internal application and it will not be on google play, how can I update this application?
Thanks a lot for all!
Send people the new apk, or have it detect when there is a new version, and tell them to click on a link to download.
In case you wanted to code the server in node.js, here's the code:
var app = express.createServer();
app.get('/version'', function(req, res){
res.send('99');
});
app.listen(80);
Google play provide a very powerful way to push updates of a given app , if you will override this way you will be obliged to redeploy your app "manually" (new apk sent to x given devices)
Or make your app have it's content linked to a server and this way the only thing that will be updated will be the "data" on the server side .
I solved the problem by mounting a server that keeps a file with apk and information from them and rode a lib that makes communication and install the update, as I did at work I'll have to wait the people here to post the lib on github it, but if someone need uses before me post the lib here.
Simply distributing the .apk to your internal users is probably the easiest way to get started, however you will have to implement a custom update process for this.
By now there are more options available that will handle the update process, e.g. Private Channel (for Google Apps users), Alpha/beta stages for internal distribution (more like a hack..) or complex MDM solutions.
Please see my answer in Google Play deployment for internal company user only for reference.
Related
I have one service where I can put new apk file.For example, (https://myweb.com/newversion.apk).My project is not in play store and I would to update my app remote,without play store.
I search about this in google,found some examples and articles,but I don't know witch is a best practice to solve my problem
In your option,how I can solve my problem most optimal way?
Thanks
To implement auto update you can manage with your server with version details but for that you have to checked with application as well.
But there are another option from where you can manage auto-update.
You can use custom class provide by below URL.
http://www.auto-update-apk.com/
One of the most optimal ways is to store APP version somewhere in web (for example in JSON file) with your APK file. And when running your app check if app version is not lower than stored in web JSON. If current app version is lower than stored in web - download new APK in background and and prompt user with notification and dialog about successful download and offer him to launch installation. For more details check this and this threads.
I'm making a Cordova 4.0 Android app that will be sold in Google Play, and I would like to prevent illegal use of it (for example preventing someone to extract the APK from the system and re-distributing it).
One theoretical way of doing this would be by checking that when the app is launched by the user, he did actually download it from Google Play (versus being it sideloaded). I'm not even sure if this is possible or if there's an alternate way of doing something like this.
One way that works in other cases is to use require some sort of login when accessing the app, but in this case I can't do that. Any advice would be appreciated!
Google offers a way to implement validation / licensing:
http://developer.android.com/google/play/licensing/index.html
Take a look if this is what you need!
One suggestion would be for those apps which are get connected to a server to fetch some data.
App verification token
Generate an encoded 64-bit long token and store on both device & server as well. This will be a unique token per app
Whenever app tries to connect to server, it sends the device token details. Server needs to verify it before fulfilling its request.
On specific events, server can generate a new token for a device.
Same way, device token can be mapped to a user or an app on the server side.
Token could carry some app related information, for instance.
first 4 or 6 digits represent app size
second block of digits could represent user specific or device or some other details
Or another block could hold app contents modification date
In case of any change, server could verify the app size, last app contents modification dates, etc.
Generally it is recommended to uglify, obfuscate and minimize app resources before submission.
You can use the package manager class to determine the source of an app (only google or amazon currently detected)
You can similarly use google analytics which gives same information.
This is pretty neat since Android stores the source of every package, allowing apps to know where they came from, to prevent piracy and sideloading.
Great if you always publish to google or amazon. Useless if you sideload your app.
I want to sell custom apps so I need to know how I can privately publish them over the net without giving away apk file.
Is there a way that I can give the customer a password that he/she will use to install the app only once from a website
without getting the apk file? After the installation the access to the download should be cancelled.
You cannot install apps without using an APK file, unless the target device is rooted.
Even Google Play downloads APK files for applications. They are stored in /cache/download, which can only be browsed with root access. Once downloaded, they get installed in /data/app, which also requires root access to read.
Google Play alpha/beta testing
What you could do, as a workaround, is use the Google Play alpha/beta testing feature with a private Google+ Community. This will allow you to control who is able to download your application through Google Play, but it will not prevent them from rooting their device, and retrieving the apk.
You will get all the benefits of Google Play, and your customers wont notice any difference, once they've joined the Google+ Community.
Use alpha/beta testing & stages rollouts
The only thing i can think of is have the first activity that starts up create a large random string from the device's id and then send that string to your server ( assuming you have one ). If this is the first time your server receives a code for this app, let them in and store the code, then return a response of "OK" to your app, if its not the first time, check if this is the code you stored previously, if not return "NO", if it is the right code return "OK". then have your app shut down if it doesn't receive "OK" back from your server. This of course adds extra cost and requirements to your app...
If they have to install it on their devices, they have the apk already, and there is no need to root access though, you can retrieve the apk with ES File Explorer in a second. What is your concerns, your codes? Or something else?
HelloNot sure if this is really the best place to ask but I was wondering if anyone has any good suggestions on rolling out updates for apps that have not been published on the google play store? I create apps to be used in house by other members of staff at my work place and there's either no need for the apps to be put on the play store or the apps that have been created are for private use only.Currently i'm having to either email new versions of the apps to members of staff who then have to delete the old versions from their phones or I have to get hold of their phones and install the newer version from eclipse everytime I create a new version Obviously this is not ideal so I was wondering if anyone has any suggestions on how I could easily roll out updates to the phones with the apps installed??
Basic idea of auto-update is putting your new software somewhere your application know and can download from. Obviously you will need some sort of versioning in your application. Application should check for updates periodically, and if the online version is newer than current version it should download and update preferably by asking to the user if he/she wants to update.
Commonsguy has a library for this. It is a suspended project but it should give you the basic idea and you can even write your own library after that. cwac-updater here you go.
Make an update module in your application, that periodically polls a server to check for updates. Keep in mind that you have to do this in a battery-efficient way so as not to drain the battery of the user.
Another option could be using GCM. Look it up. When you have an update, just send a message to all the devices to prompt the user to download the new version.
I have an idea about updating App without through AppStore:
After publishing, the app has two main functions, loader function and app content function. If I want to fix some little bug, which is only one line code sometimes, or just need to change the background of APP UI, even some logic codes. In tradition solution that is updated the APP to APP store and notify the user to update it.
Is it possible, using the loader function to download changed app content from server?
Does Apple and Android allow to do it?
Thanks a lot.
You can't do that in iOS app. You should submit your next version app to access the new features. If you try to download codes or any other runtime content. Your App should be rejected.
Please refer the apple-review guideline here.
Thanks!
According to the google play Developer-Content-Policy:
An app downloaded from Google Play may not modify, replace or update its own APK binary code using any method other than Google Play's update mechanism.
No, you can not do it. If you want to make any change in the application, you will have to pass through store formalities to distribute the application to end client.
For iOS, you can go with enterprise distribution option, but using that you cant distribute the application outside your Organisation.
For customisable background or UI customisable, you can take help of server to receive configuration from server.