AVG 2016 antivirus is flagged my React Native Android App as Malware. The App is built based on RN.
The was app build from source using:
http://facebook.github.io/react-native/docs/android-building-from-source.html
The App doesn't require any special access. Uses AWS CDN to load images and all queries to our backend use TLS.
Until somebody finds the root of the issue, you can submit your APK file as a falsely detected sample: https://secure.avg.com/submit-sample
I had the same issue with my Android App (not using React Native). A few days after submitting, they removed the detection and I did not have any problems in later versions of my app.
Related
I have an Android app under development which uses Dynamic Features. I know that apps with Dyn. Features should be build as a BUNDLE, but the probleme is that I need to deploy the app and all its features to a test device that is located in a remote office and that has a separate network (not bind-able to my Android Studio) in order to start testing and showing the app to the final customers before the final release. I have tried to build an APK, but the app crashes because it doesn't find the classes defined inside the Dynamic Features. It there a way to build an APK that contains all the feature and that can be installed on a clean device which is not bound to an Android Studio ?
If the app is already in the Play Store, you could use internal app sharing? Then you would just share a link to your clients and they'd be able to download the app from Play.
If you really need to share an APK, you can use bundletool to build a "universal APK" (see flag --mode=universal). You'll have a single APK that you can then share to your clients. Note that you will to ensure that the dynamic features are configured with "fusing=true" so that they're compiled in the universal APK. Note that this means that these modules will not be downloaded since they're already in the APK.
If you care about your clients seeing and testing the download flow, you'll need to use the internal app sharing feature, or an internal test track.
ChromeOS has started supporting Android apps. https://developer.android.com/topic/arc/optimizing
Android apps when running within ChromeOS requires a bunch of optimizations and these optimizations apply only to the app when running in chrome environment.
Is it possible to use the same app APK file for both Android and chrome or should have separate APK files?
Is it possible to differentiate the environment (Android or ChromeOS) programmatically within the app?
Differentiating based on the availability of touchscreen feature is not valid anymore since some Chromebooks ships with touchscreens and can be used as a tablet.
Thanks
Is it possible to use the same app APK file for both Android and chrome or should have separate APK files?
Yes, it is possible to use same apk for Android and ChromeOS if you don't have any special feature which is not available on ChromeOS. No need to create separate APK.
Device Support:
You can use the Google Play Store to install Android apps on several
Google Chromebooks. This document describes the Chromebooks,
Chromeboxes, and Chromebases that can install Android apps, both
currently and in upcoming releases of Chrome OS.
If your app will have any feature which is not available on ChromeOS then that app will not be available on PlayStore for ChromeOS i.e. from ChromeOS you will not be able to see that app on PlayStore.
App manifest compatibility for Chromebooks:
As you prepare your Android app to run on Chromebooks, you should
consider the device features that your app uses. Chromebooks don't
support all of the hardware and software features that are available
on other devices running Android. If your app requires specific
features that aren't supported on Chromebooks, it won't be available
for installation on Chromebooks.
Is it possible to differentiate the environment (Android or ChromeOS) programmatically within the app?
Yes it is possible to check if app is running on ChromeOS using below code:
context.getPackageManager().hasSystemFeature("org.chromium.arc.device_management");
I create application in Android Studio, and send it to Google Play Store, after time i add library "littleprxy"(based on netty), and when it came time to send updated application in Google Play Console i see Supported platform : amd64-Linux-gpp, amd64-Windows-gpp, arm-Linux-gpp, i386-Linux-gpp, i386-MacOSX-gpp, x86_64-MacOSX-gpp, x86-Windows-gpp, and ofcourse 0 supported Android devices, but i can install apk manually, and it work fine.
How i can fix it? Maybe some parameters for gradle or manifest...
Sorry for English
LittlePrxy is written atop Netty. Netty is kind of "heavy" for Android. Most of Android devices are resource limit. memory footprint, cpu usage should be carefully treated. This is the reason why Netty doesn't support Android OS. Sure you will be able to use this lib but it is not recommended. This is why GooglePlay reports an error, because Android is not specified in the list of supported OS of this lib.
In short, you should not use LittlePrxy in your app. You should find another library.
I have had a problem on Android Marshmallow (6.0) installing an apk from Google Chrome on the device. I have a Lollipop device (5~) that allows install, however the Marshmallow device just states "Cannot open file". I have no problem using Appgyver's supersonic package tool but with Ionic Package it won't allow me to install from an apk.
I've done some research and found that by using an alternative browser on the device such as firefox or by using a third party file manager I am able to install the apk. The article below suggests Google Chrome is now locking out app installs not on the play store but I'm doubtful of this theory due to being able to install other apk's ok.
Frostwire Article for workaround
This has been a common workaround used by other reports of a similar issue online and does work for my case. Unfortunately this is an effort required by the customer that is damaging to the ease of access to the application.
It seems to be an issue exclusive to Android 6.0 (not exclusively Ionic package built apk's). This being said as I am able to build an apk and install from Chrome using Appgyvers 'Supersonic' services using the same device so I'm lead to believe there is indeed a solution to the problem.
Be aware that I am using Ionic package to build a "release" version and customers cannot have "developer mode" turned on. As well as this I have "allow untrusted sources option" engaged.
Does anyone have any insight on this problem?
So I discovered the problem. It appears firefox and older versions of Chrome are far less picky with Content-Type headers on file downloads for apk's. The App was being downloaded with the content-type head of application/octet-stream. Firefox (Android 6) and Chrome (Android 5.1) took no notice of this when trying to figure out the file type and were happy enough installing.
However Chrome on Android 6.0 requires a content type of application/vnd.android.package-archive for it to discern the type of file it has downloaded.
Anyway I made that change on the download and it now works!
I do understand that a .apk file is created in the bin folder of an android project, when the project is run.
I have a question about this: is it possible that there would be any difference in the functionality of an app installed via eclipse (as in connecting the phone to the computer and uploading and installing the app on the phone) versus installing the app by downloading a .apk placed on a secure server?
The reason I ask this question is that I usually put up the .apk file on a secure server and the testing team downloads and installs the app for testing purposes. The testing team has started to report app crashes when accessing this app. However, I don't seem to be seeing the any such problems (even while replicating the same scenarios) with the app when I install it on the phone via a cable connected to the computer.
You might be falling into a caching issue. Make sure you get the QA team a new filename of the apk on the server to ensure that they never get a cached apk when downloading it. Also maybe create a md5 sum of the apk locally and run md5 on the apk on the server after upload to ensure it is the same.
e.g. use
md5 yourapk.apk > yourapk.md5
on your machine and the server..
Most likely you QA team has found issues that are specific to the device or Android platform version they test with. Try with your apk with the same hardware in your dev environment.
I don't see how that would possible. The Eclipse ADT plugin just calls the executables in the specified Android SDK location on your hard drive and the .apk gets generated only once when you use Eclipse to install the application to your plugged phone.
Unless you're packaging the two versions in a different way, that shouldn't be possible. My guess is that your testing team has just found bugs specific to the runtime environment (the phone). Maybe a different version of Android, conflicting custom ROM, etc.
No, there is no difference , if the apk on the secure server is as latest as you have on your computer.
I would recommend you to clean your project before uploading the apk to the server.
Regarding the crashes, i guess there are some location based problems.
Also check if you are uploading the apk from your workspace. or some other older version which is located in different place that you are not using anymore.