有没有一种快速检测还原备份后应用程序是否启动的方法?假设在设备上进行备份,然后将其还原到另一台设备上。
最佳答案
我尝试了一个经过一些测试的解决方案。我尝试了几次备份还原,对我来说效果很好。
第一步是在应用程序的第一次运行时保存供应商标识符:
if UserDefaults.standard.value(forKey: "vendorID") == nil {
if let vendorID = myDevice.identifierForVendor?.description {
UserDefaults.standard.set(vendorID, forKey: "vendorID")
}
}
第二步是检查保存的供应商ID是否与当前设备的供应商标识符匹配。
由于在备份或将备份还原到设备后供应商ID会发生变化,因此如果两个供应商ID不匹配,我可以执行其他操作:
let savedVendorID = UserDefaults.standard.value(forKey: "vendorID") as! String
if savedVendorID == myDevice.identifierForVendor?.description {
//The app can start normally
} else {
//Do action needed after backup restore
}
供应商ID在其他条件下也会发生变化,但是对于我的应用而言,这些变化并不重要。