Please store a version in NSUserDefaults
(per @Nero's answer) for checking (possible) fresh installs and subsequent updates.
For checking reinstalls (in the case where stored version == nil
), exploit iOS 11's introduction of DeviceCheck API which exposes two bits of device specific data which can be set and retrieved by the app, but maintained by Apple and persisted across an uninstall/reinstalls.