У меня в настоящее время есть функция в моем проекте, которая сравнивает текущий номер сборки приложения (CFBundleVersion
) с файлом TXT на моем сервере (ie. https://update.devsec.ca/applemusic/version.txt
) с одним числом, которое приводится как Int в функции. Он извлекает строку из файла TXT, и все сравнивается просто отлично. Однако мое приложение в значительной степени основано на WKWebView, поэтому я не могу просто очистить весь кеш WKWebView из приложения. На данный момент, если я сброшу кэш приложения на моем Ma c, он получит текущее значение TXT и продолжит его возвращать - независимо от того, изменю я этот файл TXT или нет.
ViewController.swift - updateCheck()
let build = Bundle.main.infoDictionary!["CFBundleVersion"] as! String
// Check for new version
// Make sure to edit update.devsec.ca/applemusic/version.txt
func updateCheck() {
// Get latest version number from server
var url = URL(string:"https://update.devsec.ca/applemusic/version.txt")!
url.removeAllCachedResourceValues()
let task = URLSession.shared.dataTask(with: url) { (data, response, error) in
if error != nil {
print(error!)
} else {
if let textFile = String(data: data!, encoding: .utf8) {
//self.checkUpdate(text: textFile)
let latest = Int(textFile) ?? 0
let current = Int(self.build) ?? 0
print("URLUpdateBuild, Current: \(current), Latest: \(latest)")
if latest > current {
print("url made it this far")
DispatchQueue.main.asyncAfter(deadline: .now() + 5.0, execute: {
self.updateAlert()
})
}
}
}
}
task.resume()
}
В настоящее время сборка приложения установлена на 2
. Если для моего файла TXT на сервере установить 3
, собрать и запустить приложение, консоль выведет:
URLUpdateBuild, Current: 2, Latest: 3
Если я изменю файл TXT на моем сервере обратно к 2
(или даже 1
), консоль продолжит печатать:
URLUpdateBuild, Current: 2, Latest: 3
Как получить функцию для загрузки бесплатной sh версии файл TXT при каждой проверке? Это небольшой проект, находящийся на самых ранних стадиях разработки, поэтому я пока не пытаюсь go полностью проверять обновления. Точно так же я хотел бы знать ответ для будущих небольших проектов.
Заранее спасибо!