How to understand app restrictions set by developers So I was just looking at are very standard app, - Bank of America and Ally Bank. none of these apps showed up on Google Play Store and in my list of devices they indicated as being incompatible . So I downloaded the other app forgot its name which will make my phone model brand and carrier different from what it is now and hopefully that app would show up. But even after disguising my phone as a Nexus with A T and T it would still not show up on play store . So obviously the developer had set some restrictions based on carriers or brand. What I want to find out here, in this question is how do I find out what kind of restrictions this app may have , so I can accordingly spoof the phone I ended up installing it from a manual apk download , and that is not trustworthy with bank password
See Filters on Google Playstore and on How filters work?


  Filtering in Google Play is based on several types of app metadata and
  configuration settings, including manifest declarations, required
  libraries,architecture dependencies, and distribution controls set in
  the Google Play Developer Console, such as geographic targeting,
  pricing, and more.
  
  Google Play filtering is based in part on manifest declarations and
  other aspects of the Android framework, but actual filtering behaviors
  are distinct from the framework and are not bound to specific API
  levels.


However when you access Google playstore from the web browser with an email id which has not registered with any android device the restrictions are not applied. If you want look at the specific app for restrictions you can download the apk file offline and unpack it and in the manifest file(AndroidManifest.xml) you can see the list restrictions made for that app. Look out for the Filtering based on the App Manifest tags in particular under the configuration.

Consider the following example, an application that is designed to run on older API levels declares a Bluetooth permission, but does not declare the Bluetooth feature in a  element.

Result: Google Play does not filter the application from any device.

&lt;manifest ...&gt;
    &lt;uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /&gt;
    &lt;uses-sdk android:minSdkVersion="3" /&gt;
    ...
&lt;/manifest&gt;


In the second example, below, the same application also declares a target API level of "5".

Result: Google Play now assumes that the feature is required and will filter the application from all devices that do not report Bluetooth support, including devices running older versions of the platform.

&lt;manifest ...&gt;
    &lt;uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /&gt;
    &lt;uses-sdk android:minSdkVersion="3" android:targetSdkVersion="5" /&gt;
    ...
&lt;/manifest&gt;