The "right" way to fix this is:
1. Apple allows users to download/install software that is not on the app store. If a user owns the device they should be able to do what they want with it, even if it's "risky" or whatever. But this means those users that feel the most comfortable continuing to only use apple-approved apps in the app store can continue to do so.
2. Software downloaded from the app store, using apple servers and services, must give Apple the cut (30%) they ask for. If the app doesn't use apple's infrastructure or payment system, apple shouldn't have any right to a cut of the payment.
Apple has billions of dollars of revenue at stake here, so of course they're going to fight it as long as they can.