Enum DeviceLockLevel
Used to specify level of the device lock feature strictness.
public enum DeviceLockLevel : byte
Fields
None = 0Both locked and not locked to any device data can be read and does not locks saves to the current device.
Soft = 1Does locks to the current device and still allows reading not locked data (useful when you decided to lock your saves in one of app updates and wish to keep user data).
Strict = 2Does locks to the current device and reads only locked to the current device data. This is a preferred mode, but it should be enabled right from the first app release. If you released an app without data lock consider using Soft lock or any previously saved data will not be accessible.
Remarks
Use it to prevent cheating via 100% game saves sharing or sharing purchased in-app items for example.
Relies on SystemInfo.deviceUniqueIdentifier when not using custom DeviceIdHolder.DeviceId.
Please note, deviceUniqueIdentifier may change in some rare cases, so one day all locked data may became inaccessible on same device.
⚠️ Warning: On iOS use at your peril with default DeviceId! There is no reliable way to get persistent device ID on iOS. So avoid using it or use in conjunction with DeviceIdHolder.DeviceId (see below).
📝 Important Notes:
• On iOS it tries to receive vendorIdentifier in first place, to avoid device id change while updating from iOS6 to iOS7. It leads to device ID change while updating from iOS5, but such case appears much rarer.
• You may use own device id via DeviceIdHolder.DeviceId property to make it more reliable and predictable. Use it to lock saves to the specified email for example.
• Main thread may lock up for a noticeable time while obtaining device ID first time on some devices. Consider using DeviceIdHolder.ForceLockToDeviceInit() at loading screen or other desirable stall moment of your app to prevent undesirable behavior in such cases.