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.
UserDefaults().removePersistentDomain(forName:"group.santosh.loginApp")
- 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.
Success:
- 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.
Failure:
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.
Attempts:
- 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.
Happy Coding.
👍👍👍
Leave a Reply