On Android you should be able to create new user accounts on the phone which are completely separated and can be quickly switched between. I used to create one with just WhatsApp installed for instance.
Alternatively if you are rooted Xprivacy[0] does what you asked, allowing you to grant apps permissions but then feeding them fake data as configured.
No idea about iOS though.
EDIT: There seems to be an app called Insular[1] which also works like Xprivacy, but doesn't require root at all and comes with a couple of extra features like the ability to have multiple instances of an app installed. Haven't tried this one though and I have no idea if it even runs on newer versions of Android.
Alternatively if you are rooted Xprivacy[0] does what you asked, allowing you to grant apps permissions but then feeding them fake data as configured.
No idea about iOS though.
EDIT: There seems to be an app called Insular[1] which also works like Xprivacy, but doesn't require root at all and comes with a couple of extra features like the ability to have multiple instances of an app installed. Haven't tried this one though and I have no idea if it even runs on newer versions of Android.
[0] https://github.com/M66B/XPrivacyLua
[1] https://secure-system.gitlab.io/Insular/