We used server-side solution that gets from the server a current app version at the start of the app. And if it was greater than stored previous version number - the app was display message and force a user to go to update the app.
It's not very "user-friendly" but if you changed something major in the app that can't work with previous version (API integration, new user authentication process or something like this), there is no choice but to do this unfriendly thing.
I strongly recommend you to use all ways to migrate old users to new version smoothly - user churn can be drastic and viewership can be seriously decreased.
All wishes, Oxana