I want to make one main APK which has menu inside it that linked to other APK so that I can update each sub-APK independently. And I also want so that when each menu clicked first it will check whether the sub-APK we have is already updated to the latest version or not (note that this is only for private use application). Thanks before :)
This is exactly what you want
https://play.google.com/store/apps/details?id=com.inappsquared.devappsdirect
The app used to be open source. I'm not sure what happened to the link to their repository. Now it seems they turned it into a commercial product.
http://www.inappsquared.com/devappsdirect.html
Related
I am trying to update an application in my developer Console , but this is the error I am getting when trying to publish it after uploading the apk.
The application could not be saved. Please check the form for errors.
I had the same problem and figured out what I should do. If you click Save as Draft it will take you back and show you the error. In my case it was the target SDK version being lower than what was in the previous version of the app.
I had to add a Privacy Policy before I could Unpublish my app.
(That is under Store presence > Store listing, at the bottom)
I found that in the first instance because in the menu it highlighted everything it wanted me to look at (however that was only for the first app, I needed to update 6 but after I followed those menu indicators for the first one they disappeared, even though all my apps needed a privacy policy).
I had the same issue with one outdated app and that helped me was to fill all new required field for the app, e.g. featured graphics, ratings. After that, it was possible to update the app
I was facing the same issue, then I found the solution to this problem. Save your application to draft. Then you will see this error. Move your new version to alpha testing. Now deactivate the current version and move the version in alpha testing to production.
I had the same issue. To solve this issue one must try some of the points below.
Check if all the mandatory fields are filled up
Check if app's terms and condition has a link
Check the distribution page
I hope it works
I faced this issue. I had an existing app. The issue was that I was using a hyphen in the name of the experiment. Apparently, we are not allowed to use it. Hope this helps someone.
I want ti install same app twice without replacing the each Other.
something like :I Want play a game from the start without losing previous game saved data.so, Is there a way i can install same apk twice without replacing the previous one. is it possible??
Will changing the apk package name & changing default installed Directory of app work?,but i think it doesn't work.
Actually you can I do that before BY:
You must have a different package name (make sure the package name in the AndroidManifest.xml file is different), there is no other way. I had two different versions of the same product (free & paid) and used: com.package.paid & com.package.free.
This means that nothing is shared between the two apps (DB included).
You can also use ANT scripts to build both apps from the same code base, I just changed it manually every time I needed to build a version. Hope this help :)
You can't do that, android only allow one version of an app exists. Do an upgrade or downgrade installation, or find another device to install the same app.
This question already has answers here:
Best way to have paid and free version of an Android app [closed]
(9 answers)
Closed 9 years ago.
I am building an android application and I want to split it into two versions, Pro and Free.
The pro app will be the complete ad-free, and the free will be limited and with ads.
The base of the business logic of the two apps will be the same... So I don't think that is correct to "write the code" twice.
Handling same code in two projects can be very annoying for bug fixing and code improvements.
Is there any way to do it with one project?
Shared-preference for example is not good solution for this because many people have root access so they can change it very easily.
Firstly Hello,
As far as I've heard or seen, two versions of the same app (Free and Pro) should be two distinct projects. You could, but should NOT, use the same app and just check for a flag saved in the Prefs, but root users can override that (as you already stated).
You could also use Google's in App purchase to verify this as the other answer states. In my opinion you should not use the same project and check for a flag because it's bound to create some overhead, especially if you check using the Internet. If the user has a slow or unreliable network connection his experience will suffer.
The "clean" way to do it is to make two distinct apps like everyone else does: users can install the free app, or the pro app. This is ideal because you have two distinct options for users and if they want the pro version they don't need to get the free one and then see the option unlock in the menu. It's just way more straightforward for users.
I recommend you build the pro app first and after it is completed derive the free version by restricting functionality and including adds because it's easier to strip it down than to add-in. After you finish the pro version, just click on:
File -> New -> Project (pop up menu appears) -> select Android folder -> select "Android Project from Existing Code" -> select your App and click Finish
The drawback is that if you spot a bug you must fix it in both projects. If you want to optimize finding bugs, you could build the free version, put it on the market and fix the bugs reported by the end-users as well as the ones you spot. After you consider everything to be fine, you can create the pro version from the existing code and carry on with that.
ps: I realize I filled this whole page, but this is my first answer here and it seems I'm overenthusiastic :-)
How about using Google's in App purchase? This way the Google server manages the PRO/Trial detail. The only con is that your app needs to have internet access for validation purpose :)
I'm sorry if this solution seems a bit raw, but...
Why not have a hard-coded flag in your code... some static variable in some class saying something like:
public static final boolean isFreeVersion = true/false;
Then, in any place where you want to decide whether or not to show adds, simply reference this boolean.
You'll still need to build your app twice and publish it to the store twice (under different app signatures), once with the boolean as true, and once as false. But at least the code base will be the same. This way, if you find a bug, you can fix it, and just publish the same app twice with only switching the boolean value.
I'm pretty sure you could even find an ant script to change the value of the boolean for you during a build.
check whether the Amazon or the samsung market or the google play that installed android app in device.
Say if i have app named ABC installed in my android phone. In my application i list down all the apps installed in my phone and need to list the market from where they where downloaded.
How can this be done?
Quoting an answer from Detect if app was downloaded from Android Market
Starting with API 5, you can use
PackageManager.getInstallerPackageName(String). From the
documentation:
Retrieve the package name of the application that installed a package.
This identifies which market the package came from.
To get the package of the Android Market, this post may help.
I guess with the appropriate devices, you could build an app to output the package names of each market you want to recognise.
One option is to package them individually. If at some point you decide to use any marketplace specific features, such as licensing or in-app payments, you'll need to do that anyway.
A manageable way of doing so is a library project containing almost everything and a number of mini-projects that rerference it and contain only the specifics.
The drawback: multiple projects instead of one. The benefits: manageability, maintainability.
Edit: if you still prefer using the certificates for that, this example can help: thomascannon.net/misc/android_apk_certificate/ .
Please post the solution you eventually come up with.
I did it this way(a single src and res folder for all projects, different LauncherActivities for each market):
Copy your res and src folder somewhere like /sharedsources/
Make a three new projects for Google/Amazon/Samsung.
Delete the res and src folder from each project
In each project link to /sharedsources/res and .../src
Now make a three new activities:
e.g. GoogleLicensing,AmazonLicensing,SamsungLicensing
Google Project Manifest: set GoogleLicensing as Launcher Activity
Samsung Project Manifest: set SamsungLicensing as Launcher Activity
Amazon Project Manifest: set AmazonLicensing as Launcher Activity
Google Project: remove SamsungLicensing and AmazonLicensing activities from build(dont delete)
Samsung Project: remove GoogleLicensing and AmazonLicensing activities from build(dont delete)
Amazon Project: remove SamsungLicensing and GoogleLicensing activities from build(dont delete)
Done.
Export each Project.
Keep in mind that you have three AndroidManifests now, which need to be edited accordingly.
Also keep in mind that you should only have one project open at a time.
There is no reason for opening more than one anyway, since they share the same source...
Actually i did this to be able to swap between Linux and Windows (my sharedsources folder is on a shared hdd) only for 1 project, but it worked out very well for the different markets aswell.
So I have managed to get a couple apps up on the marketplace only to have a stray thought of what is the best way to go about managing my projects/apps within eclipse to accommodate future updates to the marketplace. My question resides within Eclipse and what to do with my projects/apps as I apply updates.
Do I simply copy my project/app, paste it and the increment the version information accordingly? Or am I continuously working on my published project/app? Or...Is there a recommended/preferred method of going about this. Since they are up and good on the marketplace I am leery of doing something that will cause problems for me later on down the line.
And don't change the package name....correct?
This is what I currently have on the Marketplace...
Wind Chill Calculator
True Love Game
First of all, everyone's posts were very helpful and I have spent some time looking over documentation through the links provided.
So...and brace for impact as I say this. Being one who has NEVER used any form of SCM for my projects this is all new to me (as everyone's faces cringe), which is why I am asking the original question in the first place. I hate to say tell me anything without doing my research...so within the past few hours using git within eclipse I have gleamed the following:
Team > Share Project ...ignores...any tags(for version info)which is what I am after...commits...THEN
Clone? File -> Import -> Git -> Git Repository at this point once I have cloned my project do I create a new tag with the new version info, and go through the commit process again? If this is the case I now have two items in my Git Repository. One of which has the single tag of 1.0, and the other item which contains two tags 1.0 and 1.1, and when I look at the history I see two tags Version 1.0 and Version 1.1. Then I just switch between the resources I need from within the repository?
I just want to make sure my process is correct before I begin to implement some of this on existing projects that are pretty extensive already. As for the rest I am just going to learn on the fly...branches
You might want to use a revision control system like SVN or git or one of dozens of other options, and continuously update the single project in Eclipse. The benefit of using source control is that you can branch into a new project for major changes, update your existing code for minor changes, and tag the branches so you can revert back to an old snapshot in the future.
I personally use bitbucket which is hosted remotely and is free. It supports SVN and Mercurial.
No, dont change the package name, that will make it new app, instead of upgrade of original.
Use a version control system, like SVN.
Manage Tags for a complete working state of code(through svn), so you can always revert back to that tag.
When ready for new release, increment version no. etc and update on market...
EDIT After addition in question:
Don't get much confused with various GIT/SVN working.. There main purpose is that they will allow you to switch your code back and forth to any point in past, that allows you to code in a way properly knowing that you can always revert back to a Working state.. and it is definitely of much more benefit in a Team , when multiple people are working on same codebase and possibly same files...
Being a long-time user of SVN, I recommend subclipse (svn for eclipse). When you're ready to release another version of your app, create a 'tag' for the release version and you'll always be able to go back to that exact version.
SVN has excellent docs. There is also TortoiseSVN for repo work outside of eclipse.