Merhabalar bu yazımda kullanıcıların kullandığı uygulamaların versiyonlarına göre yeni versiyona yükseltmesi için zorlama durumunu nasıl gerçekleştirebileceğinizi göstereceğim.
Yeni eklediğiniz özelliklerin kullanılması ve güvenlik sorunlarınızı çözdüğünüz bir versiyon yazmış olabilirsiniz. Bu gibi durumlarda eski versiyon kullanan kullanıcıları market sayfasına yönlendirerek yeni sürüm ile buluşmasını sağlayabilirsiniz.
Bunun için servis üzerinde bulunan son versiyonunuz ile uygulamanın versiyon numarasını karşılaştırmanız gerekir. Aşağıda yazdığım fonksiyon ile kolay bir şekilde dinamik olarak check işlemi gerçekleştirebilirsiniz.
func checkVersion(forceVersion:String) -> Bool { let version = { () -> String in let infoDict = Bundle.main.infoDictionary! return infoDict["CFBundleShortVersionString"] as! String }() var compServerVersion = forceVersion.components(separatedBy: ".").map {Double($0) ?? 0} var compAppVersion = version.components(separatedBy: ".").map {Double($0) ?? 0} if compAppVersion.count > compServerVersion.count { for _ in 0..<compAppVersion.count - compServerVersion.count { compServerVersion.append(0) } } else if compServerVersion.count > compAppVersion.count { for _ in 0..<compServerVersion.count - compAppVersion.count { compAppVersion.append(0) } } if compServerVersion[0] > compAppVersion[0] { return false } else { for i in 0..<compServerVersion.count { if compServerVersion[i] > compAppVersion[i] { return false } else { continue } } } return true }
Check etme işleminden sonra temsili olarak market sayfasına yönlendirme işlemi yapalım. Eğer uygulama versiyonu serviste saklanan versiyondan düşük ise kullanıcıya hata verdirip market sayfasına yönlendirelim, değilse içeri alalım.
if !checkVersion(forceVersion: forceVersion) { self.showAlert(title: "Güncelleme", message: "Uygulamanın markette yeni bir versiyonu mevcut. Şimdi güncellemek ister misiniz ?", completed: { if #available(iOS 10.0, *) { UIApplication.shared.open(URL(string:"itms-apps://itunes.apple.com/tr/app/xxxxx")!, options: [:], completionHandler: nil) } else { UIApplication.shared.openURL(URL(string:"itms-apps://itunes.apple.com/tr/app/xxxxx")!) } }) } else { self.goHome() }
İlk Yorumu Siz Yapın