This is why we setup contracts and require deposits.
In the contracts just say you own the app until all invoices are paid up.