gpt4 book ai didi

ios - Apple 无法识别 imgur 的 HTTPS

转载 作者:搜寻专家 更新时间:2023-10-31 22:37:18 24 4
gpt4 key购买 nike

我有多个来自 imgur 的 HTTPS 链接(例如 https://i.imgur.com/DMKPbRe.jpg )。我将其用作我的原型(prototype)应用程序的背景之一,但每当我在我的 iPhone 7 物理设备上运行它时,该应用程序就会崩溃并显示错误代码 1200。实际错误如下:

2019-01-22 19:36:54.402391+0800 App[00000:0000000] Task <00000000000000000000>.<2> load failed with error Error Domain=NSURLErrorDomain Code=-1200 "An SSL error has occurred and a secure connection to the server cannot be made." UserInfo={NSErrorFailingURLStringKey=https://i.imgur.com/DMKPbRe.jpg, NSLocalizedRecoverySuggestion=Would you like to connect to the server anyway?, _kCFStreamErrorDomainKey=3, _NSURLErrorFailingURLSessionTaskErrorKey=LocalDataTask <00000000000000000>.<2>, _NSURLErrorRelatedURLSessionTaskErrorKey=(
"LocalDataTask <0000000000000>.<2>"), NSLocalizedDescription=An SSL error has occurred and a secure connection to the server cannot be made., NSErrorFailingURLKey=https://i.imgur.com/DMKPbRe.jpg, NSUnderlyingError=0x2824d4150 {Error Domain=kCFErrorDomainCFNetwork Code=-1200 "(null)" UserInfo={_kCFStreamPropertySSLClientCertificateState=0, _kCFNetworkCFStreamSSLErrorOriginalValue=-9816, _kCFStreamErrorDomainKey=3, _kCFStreamErrorCodeKey=-9816}}, _kCFStreamErrorCodeKey=-9816} [-1200]

用于检索 url 的代码:

let imgURL = URL(string: "https://i.imgur.com/DMKPbRe.jpg")
let imgImageView = UIImageView()
imgImageView.kf.setImage(with: imgURL) { (img, err, cacheType, url) in
if img == nil {
// TODO: add placeholder image when url didn't loaded
}
let imgTexture = SKTexture(image: img!)
self.img = SKSpriteNode(texture: imgTexture)
}

我不想关闭 App Transport Security,因为我不想破坏 Apple 对 Xcode 开发的应用程序的安全性

最佳答案

我在另一台服务器上发现了类似的问题,并遵循了我在 nscurl 中发现的@Mats 的建议/评论服务器不支持 TLS 1.3,并且经过反复试验,NSExceptionRequiresForwardSecrecy 也不被支持。因此,我将以下内容添加到我的项目 Info.plist 中:

<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>rovicorp.com</key>
<dict>
<!-- Allow subdomains -->
<key>NSIncludesSubdomains</key>
<true/>
<!-- Exclude HTTP requests -->
<key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
<false/>
<!-- Disable some extra cypher suites -->
<key>NSExceptionRequiresForwardSecrecy</key>
<false/>
<!-- Specify minimum TLS version -->
<key>NSTemporaryExceptionMinimumTLSVersion</key>
<string>TLSv1.2</string>
</dict>
</dict>
</dict>

特别关注<key>rovicorp.com</key>其中定义了受这些设置影响的域,不会应用于任何其他域。

NSTemporaryExceptionAllowsInsecureHTTPLoads可以去掉,我只是加了补全,以防万一有人要用HTTP请求。

希望对你有帮助

哈维

关于ios - Apple 无法识别 imgur 的 HTTPS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54307698/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com