2012-09-27 20 views
6

現在、AndroidとiOSの両方でCordova/PhoneGap(最新リリース)を使用してモバイルアプリを開発中です。私たちのアプリケーションの重要な側面の1つは、さまざまなリモートソースからデータを取得することです(そのうちの1つは無効なSSL証明書を持っています)。すべての.plist設定が正しく設定されていることを確認した後(ドメインホワイトリスト用)、私たちのアプリはiOS 5でも6でも動作していません。コンソールにはXCodeやSafariのエラーは表示されません。 Androidアプリは、ウェブブラウザでローカルで作業するだけでなく、正常に動作します。だから、カップルの質問:Cordova/PhoneGap iOS HTTPS/SSLの問題

iOSで無効なSSL証明書を無視するための.plist設定がありますか?私はUIWebViewでそれを行うためのコードがいくつか見受けられましたが、コードを修正して他の場所でアプリを壊す危険があるかどうかはわかりません。

答えて

6

** 編集 3/13/14 **

推奨されるアプローチは、お使いのデバイスであなたのCAをインストールするには、次のとおりです。お使いのデバイスにあなたのCAを電子メール、電子メールでCAファイルをタップ、およびインポート安全な保管場所に保管してください。これにより、以下に示すコード行を必要とせずに、デバイスが署名のないhttps接続を信頼できるようになります。

以下の解決策は機能しますが、安全ではなく、推奨されません。これらのコード行を削除してから、本番版のアプリをリリースする必要があります。そうしないと、アプリケーションが安全でなくなります。このソリューションは、人々がこれを削除するのを忘れる可能性があるため推奨されていません。

** オリジナル答え **

このためのコルドバのplist設定はありません。これをiOSで回避するには、AppDelegate.mファイルの最後に以下のコードを追加します。

@implementation NSURLRequest(DataController) 
+ (BOOL)allowsAnyHTTPSCertificateForHost:(NSString *)host 
{ 
    return YES; 
} 
@end 

私はこれを過去にいくつかのプロジェクトで使用しており、有害な副作用は見られませんでした。

AppDelegate.mファイルは、Xcodeプロジェクトの「クラス」という黄色のフォルダにあります。

+0

答えを編集して、最後の部分を上に持ってくることをお勧めします。これが最善の解決策です。_「あなたのCAをデバイスに電子メールで送信し、電子メール内のCAファイルをタップし、安全な記憶域にインポートする」_。私はそれを電子メールしなかった、私はhttpを使用して私の開発マシンからダウンロードした。 – pauloya

+0

@PauloManuelSantos done – njtman

+0

あなたのビルド/ターゲット設定に基づいてplistユーザ定義の設定を追加して、Yes/Noを返すのはどうですか?あなたはそれをリリースする準備ができているときにコードを削除することを覚えておく必要はありませんそのように... – ganders