39

iOS アプリを iOS 9 にアップグレードしていますが、安全でない URL がいくつかあり、App Transport Security にいくつかの例外が必要です。私が知っている2つを追加しましたが、現在いくつかの警告が発生しています:

安全ではないため、App Transport Security はクリアテキスト HTTP (http://) リソースの読み込みをブロックしました。一時的な例外は、アプリの Info.plist ファイルを介して構成できます。

Info.plist に追加できるように、ブロックされている URL を知る必要があります。おそらく、画像またはメディア ファイルです。システムがロードしないと判断した URL をログに記録するにはどうすればよいですか?

4

2 に答える 2

68

編集者注: @jessedc は、これを行う方法に関する Apple の公式ドキュメントへのリンクの下のコメントで指摘しています: https://developer.apple.com/library/content/qa/qa1887/_index.html

わかりました、私は好きではない答えを持っています! 私はまだより良いものを非常に望んでいます。

私のapplication:didFinishLaunchingWithOptions:方法では、行を追加しました

setenv("CFNETWORK_DIAGNOSTICS", "3", 1);

次にアプリを実行すると、ログに次のようなエントリが見つかります。

2015-07-02 15:27:56.152 MyApp[45041:9125662] CFNetwork diagnostics log file
created at: /Users/micah.hainline/Library/Developer/CoreSimulator/Devices/
11BCA581-5F5F-494D-932A-2ECFCA33EA93/data/Containers/Data/Application/
9ACC6941-8039-4B86-B5E8-A6C66E2AD520/Library/Logs/CrashReporter/CFNetwork_com
.myapp.MyApp_45041.nwlrb.log

そのファイルを開くと、ネットワーク上で起こったことすべてに関する膨大な数のログ エントリがあります。そのファイルを検索しkCFErrorDomainCFNetwork、失敗したネットワーク リクエストのログを取得します。これを使用して、システムがヒットしようとしていた URL を確認し、その URL を App Transport Security の例外に追加できます。

于 2015-07-02T20:36:47.923 に答える
2

受け入れられた答えは正しいですが、Xamarin iOS でこれを行う場合は、使用する必要があります。

Environment.SetEnvironmentVariable("CFNETWORK_DIAGNOSTICS", "3", EnvironmentVariableTarget.Process);

また、ログ ファイルを探している場合は、Simulator manager などを使用して正しい場所を簡単に見つけることができます ( https://github.com/tue-savvy/SimulatorManager )。

于 2017-03-01T12:43:20.697 に答える