I've a hybrid app to which I've published updates in past. In current update, I've added native facebook login, which required adding facebook jar package under 'libs' folder.
Now, when I add my APK in PlayStore, everything is fine except that Native platforms is being shown striked out (as shown in image). When I compare it with previous version, it shows the same but not striked out. I'm afraid publishing the update would not result in it being available on any devices. Any insights?
See snapshot here
I use native code in my application. And for it Google Play detects supported architectures by checking lib\armeabi, lib\armeabi-v7a, lib\x86 and so on. Can you check is that folders created into your APK?
Related
Good day.
My question today is the following:
If I installed my app from the google playstore then tried to update it manually with an updated signed APK generated straight from android studio would it throw an error?
Does google play add extra meta-data to my app upon submission in which it can only be updated through google play?
My reasons for asking this question are due to my own observations and are stated in the following.
I recently published my app to the app store (my first app). Afterwards I immediately began working on an update the update is ready but this is where things get complicated. I installed my app from google play and then attempted to update it through a signed apk directly from android studio.
The update ran successful however the first screen runs (splash screen nothing special) then it launches the second screen which retrieves data from the database. When it lands on the second screen my app crashes.
I tried the following install patterns:
Installing a direct older version apk which was not submitted to the play store then the new apk (both are signed) which resulted in success.
I installed the new updated apk independent of the old apk (by removing the old version) which resulted in success.
From attempting these two scenarios it is certain my code is working properly so the issue must be related to installing an apk from google play as well as a new version not from google play.
Thanks for your help.
No, Google Play cannot change anything in your uploaded APK as Google Play does not have your signing key. The fact that you're able to install a new version of the APK signed by your key confirms that the key is the same and the app is exactly as you uploaded it.
I have not updated my Android app for quite a while. Now I would like to use the Alpha Test to run some tests of the In-App Purchase features.
Problem is, that I do not see how I can install the Alpha version on my device using the Play Store. I did the following:
Created the APK in Android Studio 2.1
Logged into the Google Play Developer Console
Selected my app and switched to APK/Alpha-Test
Uploaded the APK the the Alpha Test and published it
It is a closed Alpha Test and I am the only tester. The e-mail address I entered in the tester list perfectly matches the address of the Play Account I am using on the device.
Opened activation URL in Chrome on my Device. Play Store webpage is shown, saying that I am a tester.
Clicked the link to the Play Store and downloaded the current Version of my app
Checked if there is an update to the Alpha Version, but there is not
I uploaded/published the alpha APK on three days ago. Even if it can take some hours before an update reaches the store, three days should be long enough, shouldn't it?
I found other threads dealing with this kind of problem and in some cases the solution was to clean the cache of the Play Store App and restart the app. However this did not change anything in my case.
So, none of the suggested solutions I found worked for me. Any other idea what I can do?
UPDATE:
Still not possible to update to the alpha version. I now switch from a Closed Alpha Test an Alpha Test using a Google+ Community. However, the result is the same:
While logged in with my developer account, I switched to Google+ and created a new Community.
Invited my test user (one of my other accounts) to the group.
Copied the URL of the Goole+ Community to the Aplha Testing section in the Developer Console.
Published the changes.
When visiting the test URL (https://play.google.com/apps/testing/com.mycompany.myapp) I got the message "You are not a tester"
Checking the e-mails of my test account. Found the invitation to the Google+ Community and joined.
When visiting the test URL I could now click on Become a tester and now I am tester.
Downloaded the App from the Play Store using my test account. Just received the public version.
No update to the Alpha version available...
UPDATE 2:
Also after switching to a Public Alpha Test still no update available.
I am running out of ideas...
After two weeks I was finally able to solve the issue. I share the solution here, just in case somebody encounters the same type of problem:
I contacted Google Support to find out, if there is any known problem that prevents the test version from beeing downloaded. They told me, that the uploaded APK was not compatible with my test device (Nexus 5) due to an incompatible ABI version.
This was quite confusing, sinc my app did not use any native code and thus did not configure any ABI version at all.
Finally Google told me, that the ABI version of the APK was identified as commons-io-2.4.jar. This still does not make sense, since this is obviously not an ABI version. However with this information I was able to move on and find a way to avoid the problem.
Android Stuido copied the commons-io-2.4.jar file into the lib folder within the APK. The Dev Console identified the content of this folder as ABI version (which does not make any sense) and thus the APK was marked as not compatible with the device.
Either there is a bug in Android Studio (copied the file into the lib folder) or the Dev Console (identifies the lib content als ABI version).
SOLUTION
Since I did not need the commons-io-2.4.jar anymore, I could simply remove it from the project and the new version is distributed without any problem in the Alpha/Beta Test Channel. I have no idea what I would have done, if the app would depend on this lib.
The information in the Dev Console on wether an APK is supported by specific devices or not is quite confusing:
The public version of the APK was (of course) compatible to thousands of different devices, including the Nexus 5 I use for my test. The Dev Console shows the same information (the one of the public APK) for the test APK as well. Thus I assumed, that the test APK is correct and compatible. One can only see the information about the test APK, by clicking on the APK in the Dev Console.
I am afraid with that. Is it necessary to include Google Play Services with our apk? If it were an external library the response is YES. But in this case, Android forces us to download latest Google Play Services version, so the code must be in the device...
The problem that I see is that every app with this library will use the same code that can have the device, thus saving space.
Practical case: I had an application with admob which is 800KB. Now, using Google Play Services is 2.8MB.
Could someone explain me that?
Thank you!
Firstly you don't need to include it in your apk - you can pretty much assume it's on the phone and up to date. The increase in size means that you are including it in your apk. To exclude it from the apk delete it from your libs folder.
If you get errors then you need to add it as a library to your app. You can do that by going into your project's properties then clicking on Android on the left and then in the bottom section add Google Play Services from your workspace as a library (that is on Eclipse).
Because most users have the latest version installed on their devices, you do not need to include the entire Play Services lib in your build. If they don't have it installed, or if they do not have the latest version then your code might not work correctly.
If the user has Google Play then they will get a dialog letting them know that their Google Play Services is out of date and needs updating. If they don't have Google Play then you can choose what to do, for example you can alert the user that the app will have a limited functionality. If your app can't run without Google Play Services and the user doesn't want to install/update Google Play Services then your app will not work properly. Using an outdated libs in your project might work however you would be using them at your own risk as they won't be updated.
What are the things to do for posting an app to the Android market when posting their first app to the market?
Most of it is explained in official docs, I'll add some points from experience:
Create your key store for App signing. Make sure you put some relevant info in your certificate if your App has copyright. keep a backup and guard it in every possible way, play store only accepts apk updates signed with same key as the original one, so does the device when installing an update.
Finalize your package name, make it unique , in future if you lose the signing key, you will have to re-upload app under a different package name.
Make a thorough review of code, watch out for test code, notes, useless comments and unwanted logging traces you might have placed there. Check your TODO items, run a code inspection from your IDE, remove any critical issues if found. Clear useless jar files, and resources. Also consider externalizing hard-coded strings to xml, so that you can add translations later on.
Check and validate manifest file, update version name and version code. Version name is shown when your app is listed in play store. Version code is incremented whenever you upload updated apk to play store. If its a major release you can bump up version name too.
Finally, build your apk in release mode, and optionally run pro-guard. If your app uses plain vanilla android API and no fancy external libraries such as RoboGuice etc, proguard will run fine. Other wise you will have to tell proguard to ignore classes under those packages. Proguard is optional, you can upload app without using it. Some IDE's have a nice GUI to do this.
Sign your apk with the key you created. Install it on test device, do a test run. Additionally, use emulator to test it across android versions. Take some screen shots, maybe a video too.
Prepare publishing material, write down few lines about your app, a list of features and any additional notes. Also, create a 512x512 icon image for your app.
If you have a website about your App, great, else make ready a valid mail id as a developer contact point.
Log in to developer console, upload apk file, fill in relevant screen shots, description, contact details etc etc. Save and publish. It can take anywhere between 2 to even 9-10 hours for your app to be visible in play store listings.
Your app url will be like https://play.google.com/store/apps/details?id=com.example.myapp. Keep an eye on statistics, put keywords along with app name like "muzo - music player" , most people don't know "muzo" they usually search for "music player". Have your app reviewed, links pointing to your app improve its search ranking.
There is an excelent topic in the android documentation talking about how to prepare your app for release. The procedure is the same for your 1st or you 1000st published app.
Please see here: http://developer.android.com/tools/publishing/preparing.html
PS: And a +1 for you, interesting question.
New to mobile app development and the release process and nearly ready to release my first app. Now I've signed up to use AdMob and some other vendors, but they all want my android market id before I download the SDK. This doesn't make much sense to me, surely developers want to release the app with the ads from the start.
Do developers release the app and then immediately add the ad code? Also, is it necessary to repeatedly to download the SDK/jar files for each app you release ? (I ask this because the vendors ask you to download after you have an app added on their site)
Do developers release the app and then immediately add the ad code?
The market ID of your app is simply its package name as declared in the manifest. One option is to upload your app to the market, but do not publish it. From my understanding, that should "reserve" your package name. As long as your package name is unique, you should be fine.
Also, is it necessary to repeatedly to download the SDK/jar files for
each app you release
I haven't used Admob, but I know the Flurry SDK is the same jar for each download.
New App developer here.
You get the AdMob SDK by putting in your package name: com.example.app and that will never change for your app. You can integrate it right away and see ads within a few minutes.
Download the AdMob SDK and just put it in a folder somewhere that won't get moved, and just reference it in your Android Project settings. You don't need to re-download for each app