2017-11-28 4 views
2

設定:macOSアプリケーション、macOS High Sierra 10.13.1、およびXcodeバージョン9.1(9B55)の開発。Swift 4でPOSTリクエストを試みると、「TIC SSL Trust Error」

申し訳ありませんが、私は可能な解決策を探して、いくつかのことを試してみましたが、これまでに何もできませんでした。

WebサービスがSpring Bootで動作しているので、Apache Tomcatを使用しています。Java 8(1.8u152)の最後の安定版を使用するように設定しました。

HTTPSを使用するようにサービスを設定したため、自己署名証明書を作成しました。私はSwiftがこれを本当に好きではないことを読んだことがあるが、あなたのアプリが制作の準備ができるまでそれを軽減するためにできることがある。

keytoolを使用して証明書を作成し、ブラウザでテストしたところ、通常の「自分の接続はプライベートではありません」という警告が表示されました。しかし、例外を許可した後、それは動作し、すべてのHTTPリクエストは、プログラムしたようにHTTPSにリダイレクトされます。私はスウィフトでPOSTリクエストを作成しようとすると、

は今、私はエラーのこのグループを取得:

<key>NSAppTransportSecurity</key> 
<dict> 
    <key>NSExceptionDomains</key> 
    <dict> 
     <key>localhost</key> 
     <dict> 
      <key>NSExceptionAllowsInsecureHTTPLoads</key> 
      <true/> 
      <key>NSIncludesSubdomains</key> 
      <true/> 
     </dict> 
    </dict> 
    <key>NSAllowsArbitraryLoads</key> 
    <true/> 
</dict> 
:このさらなる研究の際に

2017-11-27 22:15:35.963123-0500 MyApp[2885:4510057] TIC SSL Trust Error [1:0x600000168c40]: 3:0 
2017-11-27 22:15:35.971297-0500 MyApp[2885:4510057] NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9813) 
2017-11-27 22:15:35.971344-0500 MyApp[2885:4510057] Task <1ADE665F-B044-4678-8291-BF63E579CCDE>.<1> HTTP load failed (error code: -1202 [3:-9813]) 
2017-11-27 22:15:35.971456-0500 MyApp[2885:4510056] Task <1ADE665F-B044-4678-8291-BF63E579CCDE>.<1> finished with error - code: -1202 

を、私は私のInfo.plistファイルに以下の追加を行いました

私はこれを生のソースコードとplistエディタでやってみました。いずれにせよ運がない。ここで

は、POSTリクエストを試みるコードです:

let url = Constants.SERVICE_URL + "account/post" 
let body: [String : Any] = 
    ["firstName": txtFirstName.stringValue, 
    "lastName": txtLastName.stringValue, 
    "email": txtEmail.stringValue, 
    "password": txtPassword.stringValue]; 
let req = Request.create(urlExtension: url, httpVerb: Constants.HTTP_POST, jsonBody: body) 
let task = URLSession.shared.dataTask(with: req) { data, response, err in 
    guard let data = data, err == nil else { 
     reply(false) 
     return 
    } 

    do { 
     let resp = try JSONSerialization.jsonObject(with: data) 
     reply(resp) 
    } catch { 
     print("Error: " + error.localizedDescription) 
      reply(false) 
     } 
    } 
    task.resume() 

私は今途方に暮れてよ...誰もがこのことについて何をすべきか知っているのでしょうか?

+0

私はそれを修正しました!私の証明書は自己署名していたので、私のMacはデフォルトで信用できませんでした。私はここの指示に従い、それは働いた:https://support.apple.com/kb/PH25443?locale=en_US&viewlocale=en_US –

+0

あなたのコメントを答えとして書くと、それを自己受け入れる。 SOが許可するまで2日待たなければならないかもしれませんが、あなたは15ポイントを得るでしょう(私は思う)。 –

答えて

0

私はそれを修正しました!私の証明書は自己署名していたので、私のMacはデフォルトで信用できませんでした。私はここの指示に従って、それは働いた:https://support.apple.com/kb/PH25443?locale=en_US&viewlocale=en_US

システムキーチェーンに証明書を必ず追加してください。

関連する問題