UserDefaults not clearing datas immediately using suite name: App Group
I created this post when I got and issue on trying to clear UserDefault values. Here is my problem scenario.
- Trying to save if user is logged in or not in user defaults.
- I used a code to save user login status with following code
UserDefaults(suiteName: "group.santosh.loginApp")?.setValue(true, forKey: "group.santosh.logginStatus")
- It successfully stored the value.
- Here is a code to clear all user defaults values.
- This also clears successfully.
So, that is the problem?
I tried to redirect from dashboard to login view controller once the user is logged out. I sent a server request to make user logged out. Server sent me a successful response and I tried to clear all user default values stored locally. But I was completely unable to clear the values.
- Login from loginVC
- On dasboardVC, tried to logout, it does clear user defaults value successfully and redirects to login vc.
- Please note, I have written code which will redirect to corresponding VC based on login status stored in user default.
- This process was a successful store and clear for user defaults values. And I did this without need to close or anything additional work.
This is the state when user is logged in and closes the app. Now user opens the app, they will be at dashboard VC.
- Now at dashboardVC, if user tries to click logout button, it doesn’t clear user defaults values.
- I closed the app and open the app, it shows LoginVC.
- I searched with the whole code if I have done something wrong. But then I realized that the very same code was working which I have explained in Success section above.
- I tried if this was because of running code in background thread or in main thread. I tried everything but the problem was still the same.
- I tried to do exactly the same with same code in new project and luckily it was working in new project.
What I did then?
Well, I tried changing App Group name to new one. And voila, it worked. Haha ?. Oh my God.
Don’t forget to delete old entitlements and update the App Groups name in your code as well.
Anyway guys, I though this might be helpful to someone, so, I decided to post it here.
Thanks for reading my post.