Debug android app that's NOT in Play Store (Log Collecting) - android

I have released an Android application to about 5-10 people who are close friends of mine to test it out. I just sent them my .apk file. The problem is, when it crashes (happening often, as I'm early in development) I have no way to look at the logs. If I had released the application to Google Play, they would be able to press "Send Error Report" which I could then see in my Google Play developer account. Is there any easy way to get logs from these crashes in this sort of third party application development environment?
The only thing I can think of is to have them install aLogcat and just send me a log. But that's pretty cumbersome, obviously. Especially for a non tech user.

Use Application Crash Report for Android http://acra.ch/
Since the Google Docs legacy forms is completly discontinued http://www.bugsense.com/docs/android#acra seems to be a good option as backend.

You could publish it on the play store, and Unpublish it. This way you could use the same functionality, while no having unwanted people stumble upon it.
When you feel the app is ready, you could simply publish it again.
EDIT:
Note that Unpublish will not remove your app from the store, it will simply make it not visible, but with a URL you can still browse to the play store listing.
EDIT 2:
To view the Unpublished app, append your package id:
https://play.google.com/store/apps/details?id=<package_id>

Related

Can't test inApp Transactions with Google App Signing

Inb4 its a duplicate, I know the question is, but they are all older and none seem to help with my issue. Mine seems pretty cut and dry. I have an app that I build with a set of keys and upload to my play console. I have "google signature" enabled so they sign my apps as well. I have products enabled that work when the app is downloaded from google play test track. The SAME EXACT CODE BASE, signed with the SAME EXACT SET OF KEYS I used before uploading to the Play console does not work when I build locally and push it to my device. It says "This device is not configured for transactions" or something along those lines. I'm trying to build out my purchase flows but this is really obstructing me...
Everything is set up according to other answers. Same version code, products active, test track/alpha release are both available. Hell, the purchase flow starts fine when I download the apk from the play store, just not when debugging in AS.
I don't think this is a true answer, or maybe it IS and my symptoms are a bug on googles part, however I seem to have resolved my issue. I'll confirm my answer if this continues to work throughout the day.
For anyone else having a similar issue to me, delete all storage/cache for the app on your phone, then delete the app (NOT USING THE PLAY STORE). Now, install the app from your internal test/alpha track (FROM THE PLAY STORE). Run the app, test the purchase. If it works, close the app and delete all of its storage/cache and the delete the app (NOT USING THE PLAY STORE). At this point you should be able to upload test builds to your devices using Android Studio and have inApp transactions work. Idk why or how this works but YOLO, If it continues to work ill come back and verify this answer. Hopefully this is something google can get streamlined, or maybe I'm doing something wrong and just don't know it. Feel free to answer and I can change my correct answer.

Submit android app to play store for approval and not make it public yet

I have quite a simple question, but I cannot find the answer.
I have made an Android app, and I want to check if Google will accept on the Play Store, but I'm not ready to release it. If google will make issues I want to know now before going further. Is there any way I can send it for approval, and then publish it at a later date?
I know I can do Alpha and Beta testing, but I don't know if that means Google will approve the app for the store.
Thanks!
Edit: The feature seems to have been renamed Managed publishing.
There is a feature called Timed publishing which may be of help.
How does timed publishing work?
When you select timed publishing, your
update needs to be processed before it can go live. Processing takes
up to a few hours.
When your update is processed, you'll see a Go live button. When you
select Go live, you'll make the update available on Google Play within
a few minutes.
As there is no release "sign off" on google play, releasing an app to alpha or beta will trigger the whole process. You will get the malware scan as well as the pre-launch-report to tell you about stuff that didn't work.
There is nothing more that i know of.
You can upload your artifact (APK) in your artifact library, after the upload finishes the Google Play Console will tell you if your APK is valid for rollout. However once an artifact is uploaded it cannot be removed (at least I don't know how). The important thing is to NOT roll out your APK to avoid it to be listed as an app in the Play Store.
PlayStore doesn't have an "approval" phase like Apple's AppStore does, when you first launch your app it takes about six hours to be processed and appear to all PlayStore users.

Hacked android application - how to find the source site or market?

I have 500k active users. My application has been probably hacked. How do I know that? My production versions are 3.x.y But I can see in Firebase statistics that 1% (about a few thousand) users use version 4.0.0. I have never released app with that version. Probably somebody just changed app version and I assume ad ids. He didn't even remove Firebase analytics so I can see that the hacked app is live. I use standard ProGuard obfuscation but as we can see it didn't help.
The question is how to find the place (site, market,..) from where hacked application is downloaded?
If you are fine to update your app, then I would first change my app to read getInstallerpackageName from PackageManager, and then record it via Firebase analytics.
If the result of this is com.android.vending it was installed from Google Play, otherwise it will be the program that installed your app. If this is another app store then great, you have found it.
If the result is something like a web browser then it is harder as the user got the app from a website. Then your best option is Google searching. The normally easiest way is include your app name and the word "APK". This tends to find most sites serving your app. You could even search for your app name, "APK" and "4.0.0" as many website list the version code on the page.

Promoted by app to production but still says (Beta)

I was running an app in the Google Play in Beta and then just recently "released to production" using a higher version APK.
However when I go to Google Play listing my app still says AppName (Beta)? I thought it just needed some time to propagate but I made the change 2 days ago and its still showing like that.
Anyone know how to correct this?
It actually looks like its some kind of caching issue or user specific issue.
I decided to open Google Play store from a different browser (where I was not logged in) and the app was no longer showing as Beta.
Only when viewing Play store from my logged in account and from my phone is it showing (BETA).
So for any non-beta testers viewing it for the first time on their phone or via browser I assume its going to show up correctly, which is good enough for me.
It seems that this is from the user's account side. If one specific account subscribed to a beta program it will show as (BETA) on the Google Play Store.
So to remove the beta the user just has to do the following:
Open the Google Play Store on the device.
Find the app he wants to leave.
Tap the app to open the detail page for the app.
Scroll down to find the section on beta testing.
Tap Leave.
Note: I Didn't find out a way to remove this on the Play Console but google i think they should have an option to do it.
I face the same issues . I have published my app two days before but it still showing that App Name(Beta). This happens due to only if you are the beta tester of that app .When you see it from another browser or other google play store ,It won't show beta.But keep in mind that you aren't a member of tester for this app.
To resolve this problem do these things:-
Please remove your account as beta tester from that app.
Or, Log out from device.Again login google account in your device .
3) Clear cache of Google Play Store.
Perhaps ,this will help you. Thanks..
It is due to Play Store caching , clear data of the Play Store , you will no longer see it as beta, plus make sure you are trying to see app on play store from a non-beta account.
It's simple l, just delete the tester list from testers in internal testing console, then clear cache from playstore, your good to go.
I had this problem and it turned out to simply be that I was logged in to google with an account that had signed up as a beta tester. I logged out of google and then the page displayed correctly. So it seems to me the (beta) is related to your account and not the software release which is sub-optimal coding on the part of google.
It showing AppName(Beta) just because of you are a Beta tester for that app.
There are two options:
Logout from browser and then check(different user that should not be a tester)
copy URL and open in in different browser
In my case I had to clear storage of play store application on my device.
Somehow I could not update, my test track was paused, there was no way to opt out so out of desperate I just cleared storage of play store app and done, everything back in normal. PS: Yeah I also deleted app and reinstalled before that maybe this was not necessary, don't know.
Although #Ruben Miquelino's answer is correct, it is not practical to ask every user (users already on beta) to go to a link and remove beta.
I have found a better solution for this problem, If we deactivate the beta track and change target countries(only for beta) then those users will automatically be moved to Production (after Google's review process & Play store cache expiry)

In-app Billing - Item requested not available for purchase

I am working on learning in-app billing but I am having a problem with the google's in-app billing example, the Dungeon one.
I have already set up the application, added my public key, and changed the API_VERSION to 1 in the makeRequestBundle().
I have already exported and signed the application and uploaded it onto Google Play and saved it as a draft with a few pictures and activated the apk. I also added both the sword_001 and potion_001 as published in-app purchases!
Next I installed the signed app onto my phone but when I try to purchase either the sword or the potion I get an Item unavailable error
The item you requested is not available for purchase.
I even tried on a different device to make sure it wasn't because developer's can't purchase their own products, and I get the same message on both devices.
What have I missed?
Check your versionCode. It can't be higher than the last published/unpublished version in any of your distribution channels (prod/beta/alpha).
In app billing seems fraught with pitfalls, but this is what I found that affected availability of items for purchase and also suitability of application:
My code for what it was worth was strongly based on the Google Android demo, but I stripped out a lot of the complexity. I have a feeling that having got it to work a better result would be produced by writing it all again from scratch.
I got the static test product ids going first.
Despite what the documentation says, it seemed to me that the purchase item(s) must be published, even when using a test account. Mine didn't work when they weren't, anyway, and I waited quite a long time to see if they would start to work as others have suggested - they still didn't.
You (I anyway) can't publish a purchase item without publishing the app, so what I did was upload and publish the app, create the purchase items, publish them (big button at the bottom of the page), then unpublish the app again. This seems to leave the items published.
The app must be signed in the usual way (I did this by exporting from Eclipse) before uploading, but what isn't so obvious is that the app you load to the mobile MUST also be signed in the same way - ie a (debug signed) version loaded to the device by Eclipse - run or debug - isn't going to work.
They also both need the same version number, I think. Not 100% sure. If so that would unfortunately kind of imply that customers with old versions installed can't purchase anything without upgrading.
When the app is uploaded to Google, it can take several hours before it becomes available and you get all the right responses for the in-app billing. I find 1-2 hours typically.
I suspect the other comments on this subject about whether you use a gmail or googlemail test account might be red herrings, but for what it is worth, my test account is gmail.
I did come across a useful little note on the internet somewhere about how to change your primary account on the mobile without having to do a hard reset (and consequently losing everything), but unfortunately I haven't managed to find it again.
What I did find though is that one can have several google accounts on the mobile, and then select the one to be used by Google Play.
Hope this helps somebody. I have to say its a pretty complicated system, with not many switten down answers, and I nearly gave up on it.
If your app are on closed alpha testing, you have to sign in with your test account to Opt-in URL; https://play.google.com/apps/testing/{your.app.namespace}
My experience on this error is:
Make sure to upload the signed APK to developer console.
Make sure to install the signed APK on your device not launch the app in the debugger.
Make sure to create a test account in your developer console.
Make sure to sign in your device with your test account.
Make sure to create in app billing in your developer console and finally activate the item from the console!!! (this is the one that got me after fully following google's tutorial)
It's no longer sufficient to just upload an unpublished draft apk to test in-app billing. What you need to do is upload an apk to the alpha or beta apk section on the Developer Console. Then, you need to publish it. If you also have a draft apk in the Production APK section, be sure to delete it before you publish. Otherwise it will be available to everyone.
Publishing an alpha or beta apk makes that apk available to only those testers that you specify/allow.
Here is Google's documentation on this:
https://support.google.com/googleplay/android-developer/answer/6062777?rd=1
Well I found a solution to my problem. I wasn't able to get Google's in app purchasing example to work but I was able to get this InApp Billing Tutorial to work using the steps I mentioned in my original post.
If nothing else this may be helpful to someone to see all of the steps that need to be done to test one of the in-app billing examples.
Also had this problem for a couple of days and searched around a lot. I found this guy who said deleting the app and then reuploading fixed his problem, and that actually worked for me aswell.
Try that, delete your app from the developer console entirely. And reuppload a new signed apk and set it up all over again
Publishing the app did the trick for me(and leaving it published (!)). I had to wait a bit for Google to update their database as well, as mentioned elsewhere, changes on Google Play are not immediate.
Anecdotal Supplement: If you have an existing app in the portal already and you want to test a signed version, but not upload it into the portal for distribution. Do the normal steps to build a signed version BUT use your latest version code that is uploaded into the portal. You will will be able to do a quick and dirty test of purchasing (you can't upload this version on the Google Play portal, but it's a means to an end for a localized test (or even as a way to allow side loaded distributed versions/flavors that use Google Play for billing legitimately.)
3:)
Check if your device have more than one account then remove other accounts and keep the account you have entered in play console then it will be solved.

Categories

Resources