A cross-distro app store with a single package format is needed, with some degree of guarantee that apps don't interfere with each other (maybe a sandboxed filesystem tree for the app's own files and settings, with only data files in a shared cross-app tree).
This package format would reference a stable cross-distro ABI version that changes only every 5-10 years.
Once you have this, app developers could target the app store and package format for ABI version N, and then just focus on developing their app's features.
Although Android threw out a lot of other Linux features and mandates Java, it shows that a more extreme version of this can be done. I'm not suggesting Android is the way, just that a Linux based system can be extremely popular with developers with the right approach.
Most Android users have no clue they are even using Linux, and that's exactly how it should be.
An alternative to a cross-distro ABI and app store would be that one distro, probably completely new, adopts this and becomes extremely popular (more like Android than Ubuntu).