7

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

iOS で無効な SSL 証明書を無視するための .plist 設定はありますか? UIWebView でそれを行うコードを見ましたが、そのコードを変更して他の場所でアプリを壊すリスクを冒す必要があるかどうかはわかりません。

4

1 に答える 1

8

** 2014 年 3 月 13 日編集**

推奨される方法は、デバイスに CA をインストールすることです。CA をデバイスに電子メールで送信し、電子メール内の CA ファイルをタップして、安全なストレージ エリアにインポートします。これにより、以下に示すコード行を必要とせずに、デバイスが署名なしの https 接続を信頼できるようになります。

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

**元の回答**

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

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

過去にいくつかのプロジェクトでこれを使用しましたが、副作用は見られませんでした.

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

于 2013-03-17T23:12:56.787 に答える