【问题标题】:ios swift Dynamically update SSL Certificate(.cer) filesios swift 动态更新 SSL 证书(.cer)文件
【发布时间】:2022-01-17 19:02:39
【问题描述】:

动态需要更新。 我可以从 URL 下载证书并将其保存到文档目录。

func downloadFile(url: URL, completion: @escaping (String?, Error?) -> Void) {
    let documentsUrl = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)
    let destinationUrl = documentsUrl.appendingPathComponent(url.lastPathComponent)
    if FileManager().fileExists(atPath: destinationUrl)
    {
        print("File already exists [\(destinationUrl)]")
        completion(destinationUrl, nil)
    }
    if let dataFromURL = NSData(contentsOf: url)
    {
        if dataFromURL.write(to: URL(string: destinationUrl)!, atomically: true)
        {
            print("file saved [\(destinationUrl)]")
            completion(destinationUrl, nil)
        }
        else
        {
            print("error saving file")
            let error = NSError(domain:"Error saving file", code:1001, userInfo:nil)
            completion(destinationUrl, error)
        }
    }
    else
    {
        let error = NSError(domain:"Error downloading file", code:1002, userInfo:nil)
        completion(destinationUrl, error)
    }
}

我的问题是下载文件后需要保存到 App Bundle (Bundle.main.resourcePath) 目录中。
还是保存到文档文件夹,移动到App Bundle目录下?

【问题讨论】:

    标签: ios swift ssl-certificate alamofire sslpinning


    【解决方案1】:

    您不能将内容移动到Bundle 目录。这是一个只读目录。您必须从 Documents 读取它们并使用代码通过手动读取文件(或使用 Alamofire)来创建证书固定

    【讨论】:

    • 我只使用 Alamofire,但是 Alamofire 仅自动获取证书应用程序包 (Bundle.main.af.certificates) A​​lamofire 是否提供任何属性来更改证书目录。
    猜你喜欢
    • 2011-04-22
    • 1970-01-01
    • 1970-01-01
    • 2017-08-07
    • 2018-08-02
    • 2015-05-15
    • 2018-10-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多