TLDR: For production, it’s best to do via Marketplace.
It is possible to install your app into other instances, as long as the URL is publicly available, using the UPM and install from URL. (The user would have to enable an option for enable developer mode) This option also presents a big warning to the customer to make sure they trust you. You can view how the user could do this here:
All in all, if the app is designed for more than one cloud instance, and not for testing, then best to just go via the marketplace.
You can create a private version and use Access tokens to provide access to beta testers for example. Take a look at this page for this option: https://developer.atlassian.com/platform/marketplace/installing-cloud-apps/
Alternatively if you wish to sell your app via the marketplace, you can just turn the version to public and wait for Atlassian to approve it.