In an on-premises Microsoft SharePoint environment, you may have multiple web applications in the farm, and each web application has its own App Catalog. You can use the App Deployment feature to deploy the app in one web application. However, when you try to use this feature to deploy the same app in another web application, you receive the following error message:
There is another app installation associated with the same app principal as this app installation. Are you sure that you want to delete that app installation's deployment data and only use this app installation's deployment data for the associated app principal?
This issue occurs because the App Deployment feature is designed to work in a multi-tenant environment such as SharePoint Online. In this kind of environment, every web application belongs to a unique tenant, and the same app has different app principal IDs. Therefore, there's no conflict. However in a SharePoint on-premises environment, all web applications share the same tenant ID. This is why you receive the error message when you try to deploy the same app across multiple web applications. This behavior represents a limitation of the product.
To push an app to multiple site collections, you can use PowerShell, or you can write code by using the SharePoint Object Model API. For more information about how to use PowerShell to deploy an app to multiple sites, see the following TechNet website:
App Deployment is a feature that administrators can use to push apps to specific site collections by applying predefined rules. For example, you can push an app to site collections that are created only under the /teams managed path.
To access this feature, you first upload the app to the Apps for SharePoint library in the App Catalog. Then, add the app to the App Catalog site itself. After the app has been added to the App Catalog site, you can find it under Site Contents. Clicking the ellipses (...) in the upper-right corner of the app generates a pop-up dialog box that shows the app details. Click the DEPLOYMENT link to go to the Manage App Deployments page. This is the where you can manage the rules for App Deployment operations.