QA@IT

Titanium mobileでSSLを使用した通信が行いたい。(ios)

3480 PV

現在Titanium mobileを使ってiOS向けのアプリを製作しています。
デバイスとサーバー間の通信でSSLを使用したいと考えていますが、上手くいきません。

validatesSecureCertificateをfalseにすることで実現できると思っておりましたが、シミュレーターでは可能なもののDistributeして実機で試すと、どうしてもエラーになってしまいます。
本家のQ&Aでも似たような質問を見つけましたが、具体的な解決はしていないように見えます。
【参考URL】
http://developer.appcelerator.com/question/131214/does-titanium-mobile-supports-ssl-with-https-urls-

【環境】
Titanium Mobile SDK 2.0.2

どなたかご回答よろしくお願い致します。

  • DistributionでビルドするとvalidatesSecureCertificateのデフォルト値がfalseからtrueに変わるのですが、明示的にfalseにしても通信に失敗するということですか? -
  • お返事遅くなり申し訳ありません。
    明示的にfalseにしても通信に失敗してしまいます。通常であれば明示的にfalseに設定すれば動作するのでしょうか?
    -

回答

自己回答になってしまいますが、解決することができました。
validatesSecureCertificateをfalseにするのに加え、
tlsVersionの設定をしたところ正常に動作しました。

xhr = Titanium.Network.createHTTPClient({
    validatesSecureCertificate: false,
    tlsVersion: Titanium.Network.TLS_VERSION_1_0
});
xhr.open('POST','https://foo.com/aaa');

なおtlsVersionのパラメータはSDK1.8.0以降登場しているようです。
※詳細は公式Doc参照
http://docs.appcelerator.com/titanium/2.0/index.html#!/api/Titanium.Network.HTTPClient

大変お騒がせ致しました。

編集 履歴 (0)
ウォッチ

この質問への回答やコメントをメールでお知らせします。