How to detect if iCloud account being used on a device changed?
A user signs out from Settings > iCloud and another user signs in his/her account.
How to detect this change when the app is opened?
Just add an observer for the notification with name NSUbiquityIdentityDidChangeNotification
[[NSNotificationCenter defaultCenter]
addObserver: self
selector: @selector (iCloudAccountAvailabilityChanged:)
name: NSUbiquityIdentityDidChangeNotification
object: nil];
If a user signs out of iCloud, such as by turning off Documents & Data in Settings, the ubiquityIdentityToken method returns nil. To enable your app to detect when a user signs out and signs back in, register for changes in iCloud account availability. - Apple Documentation