【问题标题】:App Transport Security crashes Swift 2.0 app [duplicate]应用程序传输安全使 Swift 2.0 应用程序崩溃 [重复]
【发布时间】:2015-12-22 01:45:51
【问题描述】:

我几天前完成了我的应用程序,并安装了 Xcode 7,这让我很头疼,我遇到了很多问题,但设法解决了大部分问题,但是现在,当我的应用程序需要连接到互联网时我收到这个奇怪的错误 这就是我记录的内容:

App Transport Security 已阻止明文 HTTP (http://) 资源 加载,因为它不安全。可以通过以下方式配置临时异常 您应用的 Info.plist 文件。 Hempel.temp_caseinsensitive_renameAgain 编译时进行了优化 - 步进可能会表现得很奇怪;变量 可能不可用。

let task = session.dataTaskWithRequest(request, completionHandler: {data, response, error -> Void in

            var strData = NSString(data: data!, encoding: NSUTF8StringEncoding)

            do {
                let json = try NSJSONSerialization.JSONObjectWithData(data!, options:NSJSONReadingOptions.MutableContainers ) as? NSDictionary
                if let parseJSON = json {
                   //THIS IS WHERE ERROR IS in other ViewController
                    var success = parseJSON["data"] as! [String: AnyObject]
                    let item = success["hempel_antifoulings"] as! [[String: AnyObject]]
                    for i in item{

                        let product = HempelAntifouling()
                        product.id =  i["id"]
                        product.name = i["name"]
                        product.imageUrl = i["image"]
                        product.subgroup = i["subgroup"]
                        let url = NSURL(string: String(stringInterpolationSegment: product.imageUrl))
                        let data = NSData(contentsOfURL: url!)
                        product.image = UIImage(data: data!)
            // AND THIS IS WHERE THE ERROR POINTS in one of the ViewController
                        self.array.append(product)
                    }

                }else{

                    let jsonStr = NSString(data: data!, encoding: NSUTF8StringEncoding)
                    print("Error could not parse JSON: \(jsonStr)")
                }
            } catch {
                // report error
            }

        })

        task.resume()

    }

附:这些代码行在两个 ViewController 中大多相似,但错误相同

【问题讨论】:

标签: swift swift2 xcode7 app-transport-security


【解决方案1】:

这是您应该在Info.plist 中拥有的示例:

更多信息在这里:https://developer.apple.com/library/prerelease/ios/technotes/App-Transport-Security-Technote/

【讨论】:

  • IMO 的一个重要区别:如果您接受通过 HTTP 而不是 HTTPS 加载不安全内容的责任,那么这就是您应该在 Info.plist 中包含的内容。如果在您的控制范围内,您应该实际做的是通过 HTTPS 加载您的内容。
  • @CraigOtis 谢谢,这是一份宝贵的笔记!
猜你喜欢
  • 1970-01-01
  • 2018-05-14
  • 2023-03-21
  • 1970-01-01
  • 1970-01-01
  • 2018-10-07
  • 2012-05-20
  • 1970-01-01
相关资源
最近更新 更多