Reset iOS app on a real device

What is the difference between noReset = true, noReset = false and fullReset = true when starting an iOS app session with Appium on a real iOS device?

My scenario is as follows:

  1. Launch the app (this presents a login screen).
  2. Login by providing the credentials.
  3. Run some tests.
  4. Quit the session.

With Android, I always start a new session with noReset = false, and step 1 always presents the login screen (even though I ran the tests previously and quit the session while in logged in state). Also if I start the session with noReset = true, if the session was previously quit while still being logged in, the app opens logged in and no login screen is presented. This is as expected.

With iOS on a real device, even if I start the session with noReset = false or fullReset = true, the app retains the logged in state and does not present the login page if the session was previously quit while being logged in. fullReset = true uninstalls the app and reinstalls it but when I launch the app it is still already logged in. keepKeyChain = false doesn’t help either.

Is there any way to start a fresh session of an iOS app on a real device?

Thanks,
Karthik