Загрузка и чтение fre sh Строка из файла TXT на HTTPS-сервере без кеша - PullRequest
0 голосов
/ 08 марта 2020

У меня в настоящее время есть функция в моем проекте, которая сравнивает текущий номер сборки приложения (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 полностью проверять обновления. Точно так же я хотел бы знать ответ для будущих небольших проектов.

Заранее спасибо!

...