Apple 无法识别 imgur 的 HTTPS

2024-02-18

我有多个来自 imgur 的 HTTPS 链接(例如https://i.stack.imgur.com/9nSMi.jpg https://i.stack.imgur.com/9nSMi.jpg)。我使用它作为我的原型应用程序的背景之一,但每当我在 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.stack.imgur.com/9nSMi.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.stack.imgur.com/9nSMi.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.stack.imgur.com/9nSMi.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)
    }

我不想关闭应用程序传输安全性,因为我不想可能破坏 Apple 在 Xcode 中开发的应用程序的安全性


我在另一台服务器上发现了类似的问题,并遵循我发现的@Mats的建议/评论nscurl服务器不支持 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>其中定义了受这些设置影响的域,该设置不会应用于任何其他域。

The NSTemporaryExceptionAllowsInsecureHTTPLoads可以删除,我只是添加它来完成,以防万一有人想使用 HTTP 请求。

我希望这可以帮助你,

Xavi

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Apple 无法识别 imgur 的 HTTPS 的相关文章

随机推荐

  • Swift 可变字典被视为不可变

    我正在尝试实施应用内购买 并且正在跟踪用户通过哪些购买进行了购买NSUserDefaults 我有一个设置每次购买的值的函数 但是当它运行时 我收到一条错误消息 指出我正在改变购买值的字典 即使该字典是用var代替let并且是一个NSMut
  • Windows Phone中如何设置TextBlock的背景图片?

    我在 Windows Phone 中设置文本块背景时遇到问题
  • Java 中双精度值的四舍五入

    目前我正在使用 DecimalFormat 类来舍入双精度值 double d 42 405 DecimalFormat f new DecimalFormat 00 System out println f format d output
  • Swagger 编辑器如何指定请求正文(POST)中的哪些字段是必需的?

    我正在尝试在在线 Swagger 编辑器中的用户类上定义 POST 方法 我希望能够在请求正文中指定多个字段 并且我希望生成的文档能够反映只有 2 个字段是必需的 其他是可选的 我必须做什么 改变才能做到这一点 我已经尝试过使用 requi
  • 管理 mnesia DBMS 中的增量计数器?

    我意识到 mnesia 不像 MySQL 或其他 RDBMS 那样支持自动增量功能 mnesia 文档中谈到的计数器并没有得到很好的解释 例如 到目前为止 我在整个文档中发现了一个操作计数器的函数 mnesia dirty update c
  • 检查 Python 列表中是否存在某个键

    假设我有一个可以包含一个或两个元素的列表 mylist important comment or mylist important 然后我想要一个变量作为标志 具体取决于第二个值是否存在 检查第二个元素是否存在的最佳方法是什么 我已经使用了
  • 流式操作符与延迟执行有何不同?

    In LINQ Where是一个流媒体运营商 然而OrderByDescending是一个非流操作符 AFAIK 流媒体运营商仅收集下一个必要的项目 非流式运算符立即评估整个数据流 我看不出定义流操作符的相关性 对我来说 延迟执行是多余的
  • 如何将 autoconf/automake 指向非标准包

    我正在尝试在 RedHat Linux 机器上构建 ZooKeeper ZooKeeper 到底是什么可能并不重要 当我按照包装说明进行操作时 我得到 autoreconf if aclocal configure ac 33 warnin
  • 使用RabbitMQ(Java客户端),有没有办法确定消费期间网络连接是否关闭?

    我在 RHEL 5 3 上使用 Java 客户端使用 RabbitMQ 我有 2 个节点 机器 Node1 正在使用 Java 帮助器类 QueueingConsumer 消费 Node2 上队列中的消息 QueueingConsumer
  • 在 R SF 中交叉大型空间数据集

    我有两个空间数据集 一个数据集包含许多多边形 总共超过 150k 指定不同的特征 如河流 植被 另一个数据集包含更少的指定不同区域的多边形 500 我需要将这两个数据集相交以获得不同区域的特征 我可以根据不同的特征对第一个数据集进行子集化
  • 需要从汇编中的字符串中删除所有非字母元素

    通过编写此汇编代码 我无法使用此选项来删除非字符字母 它将遍历字符串并进行所有比较 然后显示相同的字符串 且不删除任何非字符 我正在尝试将字母字符放入 tempString 中 然后将其移动到 edx 进行显示 它接受一个字符串并删除所有非
  • 我的代码是否阻止目录遍历?

    来自 Python WSGI 应用程序的以下代码片段可以安全地进行目录遍历吗 它读取作为参数传递的文件名并返回指定的文件 file name request path params file file open file name rb m
  • Clojure 应用映射和关键字参数销毁

    考虑具有以下签名的函数 defn make widget keys x y or x 10 y 20 将映射传递给函数的最佳方法是什么 例如 make widget x 100 or make widget y 200 x 0 我目前想到的
  • 正则表达式来验证逗号分隔的电子邮件地址?

    我需要验证电子邮件地址 可以是单个或多个以逗号分隔的地址 在我在正则表达式验证器中使用如下表达式之前 string exp w w w w w w 它正在验证多个或一个电子邮件地址 但同样的表达式在 C 中没有验证 它也表示对无效地址有效
  • IIS7-请求过滤模块配置为拒绝超过请求内容长度的请求

    我想上传图像 它在我的机器上运行良好 但是当我将我的网站放在 IIS7 服务器上供公众使用时 我无法上传任何内容 Error 请求过滤模块 用于拒绝以下请求 超过请求内容长度 最可能的原因 在Web服务器上配置请求过滤以拒绝请求 因为内容长
  • 如何为编辑操作指定 devise_parameter_sanitizer?

    我已将 Devise 添加到我的 Rails 4 应用程序中 并成功将用户名等添加到我的用户模型中 此外 我可以使用惰性方式存储这些字段 即 class ApplicationController lt ActionController B
  • libGDX:用一些枢轴打结的吊绳

    我正在尝试在 libGDX 中制作一根在其下端有一些物体的悬挂绳 绳子应该是这样的Box2D中的挂绳 http www emanueleferonato com 2009 10 05 basic box2d rope 我做了很多研究 lib
  • 如何让外部合并工具在 Linux 上与 svn 一起工作?

    如何获得基于 GUI 的合并工具以在 Linux 中使用命令行 SVN 我知道有很多选项 例如 meld svn Diff 等 所有这些都需要一个帮助程序脚本来允许 svn 在冲突解决期间调用外部程序 我按照给出的说明进行操作here ht
  • 将 WebRTC 与 WebWorker 结合使用

    我有兴趣将 webrtc 与 webworker 一起使用 是否可以 我尝试了 但没有成功 因为它没有找到 窗口 根据规格 1 https w3c github io mediacapture main dom navigator 2 ht
  • Apple 无法识别 imgur 的 HTTPS

    我有多个来自 imgur 的 HTTPS 链接 例如https i stack imgur com 9nSMi jpg https i stack imgur com 9nSMi jpg 我使用它作为我的原型应用程序的背景之一 但每当我在