If we cannot retrieve a valid device id from the IDFV, fall back to using a generic uuid. This mirrors logic from the legacy SDK where the vendor id getter considers '00000000-0000-0000-0000-000000000000' as nil, but doesn't block an explicitly set id with the same value.
Note that clients who have already persisted an invalid deviceId will not be updated, and will need to either reset their amplitude instance, or set a new deviceId.
Checklist
[X] Does your PR title have the correct title format?
Summary
Fix for https://github.com/amplitude/Amplitude-Swift/issues/182
If we cannot retrieve a valid device id from the IDFV, fall back to using a generic uuid. This mirrors logic from the legacy SDK where the vendor id getter considers '00000000-0000-0000-0000-000000000000' as nil, but doesn't block an explicitly set id with the same value.
Note that clients who have already persisted an invalid deviceId will not be updated, and will need to either reset their amplitude instance, or set a new deviceId.
Checklist