I work in a team and will be uploading to the Android play store soon.
Now I have pushed apps to the play store before on my own, but this is my first time doing it within a team of people. So I just have quick questions (of which I tried googling for, but I guess my googling skills failed me).
1 - I will be uploading this app. I will be creating the Keystore file on my local machine. But what if one of my team members wants to push an update? Can I just email him the file?
2 - I understand if we lose the file, we are pretty much done. But can we upload it to a private (but shared) dropbox folder or something?
3 - What if we create a new app? Can the team use the same file for all of the apps created within the team?
Thanks.
1 - I will be uploading this app. I will be creating the Keystore file
on my local machine. But what if one of my team members wants to push
an update? Can I just email him the file?
Yes, If you send them the file, they will be able to sign the app as well.
2 - I understand if we lose the file, we are pretty much done. But can we upload it to a >private (but shared) dropbox folder or something?
Right. Make sure you have multiple copies of the file, but also make sure that they are stored in very secure locations.
3 - What if we create a new app? Can the team use the same file for all of the apps created >within the team?
Yes, one keystore file can be used to sign multiple apps.
1- Yes, you can send your team members the keystore file anyway you want. Better to also send them the password used to create the keystore, so it can be used.
2- Ofcourse, just keep in mind to save where it will be safe. (ie. not stolen/lost).
3- The keystore can be used in all apps without any kind of problem.
Related
Assume that "app-v1.apk" has assets/a.png. user install this app.
then we delete "a.png" file from assets and generate "app-v2.apk" file.
Is there any way to access the "assets/a.png" file when the user updates the app?
As far as I understand your question, what you are trying to say is
can we access assets of previous build that are not present in current build?
As far as my knowledge goes, The answer is NO. Play store manages updates so when you upload the new apk playstore updates app with current build, so the assets or changes in the old build are not accessible anymore.
Hope this answers your query.
I think it's not a good idea. You have to provide a complete app to take into account new users. Moreover, Play Store is able to update an app incrementally so you don't have to care about duplication for your users
We are building a Meteor app that will be deployed to the app stores and online.
We need to store assets that will be auto-refreshed with Meteor (eg via hot-code-push), including in the app store versions.
The normal approach would be to put the assets into /public directory.
However, this means that the assets are all insecure and can be accessed and downloaded directly by anyone.
How can we make the assets in a Meteor app:
available to our app (in this case they are audio files that the app will play)
refresh when the app code updates, without requiring a new download from the app store
secure, so that only the app can access them, not outside bandits?
Thanks
Using something like S3 or CloudFront with signed URLs or signed cookies will be a lot more robust than rolling your own solution.
That being said, if you want to implement this yourself you could combine the security ideas from this question with my answer to how to serve files.
The answer really depends on how you want to store your files.
this is the first time I'm taking a look at the Dropbox API so I'm afraid I kinda don't understand much.
My purpose is to develop an App in which I place some files into a directory so as to be automatically uploaded to the server and synced in another device whose owner I'm sharing them with, so different accounts are being used of course.
In the end, it has to be something similar to Dropbox app itself: you are able to create a file, upload it and share it with some friends.
Any idea if this is possible, what to begin with, is it possible to use for this goal any folder i want or it has to be one particularly chosen by Dropbox...?
If you're asking for a way to programmatically share a folder with another user, the API doesn't currently support that. To do what you're doing, you would need to manually (with the Dropbox app or via dropbox.com) share a folder with the other user. From then on, you could use the Dropbox API to read from and write to that shared folder. (And the same would work from the other account, since the folder would be visible to both of you.)
I am trying to make the .apk file available to users. But, I don't want to go through app store. Now, my question is can we place the apk file on server? If yes, how? I tried to upload treating it like a war file and obviously it didn't work. Please suggest how to place it on server and access it.
Thank you!
Upload the APK to your server or any storage online, even a Dropbox can do the job.
Give the link of the APK to your users
Users download it on their phone or tablet
Users should have activated the installation from Unknown sources : Settings > Applications > Unknown sources...
You could also use Hockeyapp or similar service to automatically distribute the application among users. You can find Hockeyapp's API documentation for uploading .apk files here.
I'm looking to packing a large sqlite database with an android app, about 200-300MB. From what I've read, my options are putting it in the assets folder, and coping it out at runtime, resulting in duplicate data, or downloading the database from the web at runtime. I don't want to create a webserver for this app, so I was thinking of creating a seperate app that just installs the database to get around the data duplication problem.
All of those are pretty crummy, and I was wondering if there is a better solution?
First, I don't think you are allowed to put a 200-300MB database in your assets folder and distribute it as a single apk, since the hard limit for an apk file size is (as per google's documentation) 50 MB and I doubt that your db will compress that far.. Google introduced the "APK expansion files" for packaging large files with your apk. You can read all about those here: http://developer.android.com/google/play/expansion-files.html
I think (but I have no experience with expansion files myself) that this will not fix the issue you mentioned about having to deal with duplicate data because of the requirement to copy out your database file, but at least this will help you in the sense that you won't have to host your database file on your own webserver. I quickly scanned the documentation on the link I gave above and it clearly states that you should NOT throw away the expansion files when you are done with them, so no help on that part.
Of course, for the "setting up your own webserver part": I wouldn't even bother setting up my own webserver. There are plenty of parties out there that provide you some file hosting service. Probably you will have to pay for the bandwidth, but hey.. if people download your db file a lot, that also means that your app is doing well ;-)
I test of apk expansion files. I created a test app with a 100 MB sqlite database, uploaded the apk and database to the play store. I then downloaded the app onto the phone, the database was downloaded at the same time. The database was automatically renamed and placed in the publicly accessible directory:
/storage/sdcard0/Android/obb/com.example.app/main.1.com.example.app.obb
The app was able to open the database without any problems, but required external read and write permissions. The new and original database are bit for bit, the same. This appears to be the best solution for my use case.
A few issues, the new android developer console does not support uploading expansion files, so the old one needs to be used. Google only allows 2 expansion files, so that may be an issue for some use cases. Google say that you must not rename or delete the file, and that your app must be able to download the file from Google itself if it wasn't automatically installed.