【问题标题】:How to use Charles Proxy on an Xcode Playground?如何在 Xcode Playground 上使用 Charles Proxy?
【发布时间】:2017-11-21 20:04:11
【问题描述】:

当绑定来自 Swift 游乐场的网络请求时,我在 Charles Proxy 中看不到网络调用。但是,当我按照答案 here 中的步骤从 iOS 模拟器发出网络请求时,它可以工作。

如果能让它在 Xcode Playgrounds 上运行以加快迭代速度,那就太好了。有谁知道需要做什么才能让它在那里工作?

【问题讨论】:

    标签: ios swift xcode charles-proxy


    【解决方案1】:

    Swift 5 版本的fruitcoder 的回答:

    
    public class NetworkEnabler: NSObject, URLSessionDelegate {
        public func urlSession(_ session: URLSession, didReceive challenge: URLAuthenticationChallenge, completionHandler: (URLSession.AuthChallengeDisposition, URLCredential?) -> Void) {
            completionHandler(.useCredential, URLCredential(trust: challenge.protectionSpace.serverTrust!))
        }
    }
    

    然后初始化URLSession:

    let session = URLSession(configuration: .default, delegate: NetworkEnabler(), delegateQueue: nil)
    

    【讨论】:

    • 我们可以做些什么来查看解密的内容吗?例如,我们在使用时必须信任真实设备上的 Charles Proxy 证书。
    • @BFeher 你有没有尝试在查尔斯的Enable SSL Proxy 处理这些请求?
    【解决方案2】:

    我找到了一个gist,它描述了一种使它与 Playgrounds 一起工作的方法。它避免了更改 ATS 设置的需要。使用以下实现创建一个符合URLSessionDelegate 的对象:

    public class NetworkEnabler: NSObject, NSURLSessionDelegate {
        public func URLSession(session: NSURLSession, didReceiveChallenge challenge: NSURLAuthenticationChallenge, completionHandler: (NSURLSessionAuthChallengeDisposition, NSURLCredential?) -> Void) {
            completionHandler(.UseCredential, NSURLCredential(trust: challenge.protectionSpace.serverTrust!))
        }
    }
    

    并创建一个以实例为委托的会话:URLSession(configuration: .default, delegate: enabler, delegateQueue: nil)。使用该会话处理请求将允许您使用 Charles。

    【讨论】:

      【解决方案3】:

      与模拟器不同,游乐场没有自己的网络配置。如果您需要 Playground 上的代理,则需要代理 Mac 的网络连接。这将影响 Mac 上的每个应用程序,这可能是大量数据。它应该可以工作,但您可能想退出任何其他与网络相关的应用程序。例如,如果您在测试时不需要使用浏览器,请退出浏览器,直到完成。

      【讨论】:

        猜你喜欢
        • 2014-10-15
        • 1970-01-01
        • 2022-09-29
        • 1970-01-01
        • 2016-09-02
        • 2015-12-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多