I am currently working on a large deployment consisting of a large number of Site Collections with some custom SharePoint Apps (specifically custom ASP.Net High-Trust Provider Hosted Apps, but that shouldn't matter).
The site collections are all being provisioned from custom site definitions, so we have complete control over the provisioning process (be it adding features, modifying the onet.xml or even adding a managed code provisioning-provider if needed).
Does anyone know how to add an App Instance to a site programmatically and/or declaratively?