AFNetworkingコードにステップインしようとすると、次の警告が生成されます。
[Project Name] was compiled with optimization - stepping may behave oddly; variables may not be available.
そしてもちろん、コードをデバッグすることはできません。具体的に言うと、私はUIImageView+AFNetworking
カテゴリをデバッグしようとしていますが、これは不可能と思われます。コードを変更しても効果はありません(NSLog
などを試してみました)。コンパイラをステップインしようとすると、アセンブリコードに移動し、コードベースのどこにも存在しないカテゴリ名としてUIImageView+TVASTAFNetworking
が表示されます。
Xcode 7を使用する。iOS 9および8。Cocoapods(フレームワークなし)
UPDATEリリース設定とデバッグ設定の両方で、オプティマイザがnone
に設定されていることを言及するのを忘れていて、実際にはDebug
configを使用しています。
UPDATE 2
Strip Debug Symbols
もオフになっています。
それは長い時間でしたが、私はついに問題を解決しました。 3つ目の最適化フラグLTO
またはLink Time Optimization
がありますが、驚くことにここでそれを言及した人はいません。ここに掲載されている多くのスクリーンショットからわかるように、Optimization Level
設定のすぐ上にあります。
要約すると、デバッグのためにオフにしたい3つの異なる最適化フラグがあります。
-flto
)-O
)LTOに関するさらに詳しい情報: http://llvm.org/docs/LinkTimeOptimization.html
プロジェクトがリリースモードになっているようです。リリースモードではアプリを多数の最適化でコンパイルしますが、デバッガは最適化を嫌うので、アプリを確実にデバッグするには、最適化を減らして多数のデバッグ情報を追加するデバッグモードに切り替える必要があります。デバッグモードに切り替えるには:
Editor
- > Validate Settings
は全ての変更を確認します。それならあなたは なるはずです
デバッグをNone
に設定します。
これは私のための解決策でした...
Cocoapodを使用している場合、giminoの答えに沿って、Podfileに次のような行を追加します。
xcodeproj 'MyProject', 'Debug - local'=>:debug, 'Debug - staging'=>:debug, 'Debug - PRODUCTION'=>:debug
またはcocoapodsバージョンが1.0以上の場合(Diejmonに感謝)
project 'MyProject', 'Debug - local'=>:debug, 'Debug - staging'=>:debug, 'Debug - PRODUCTION'=>:debug
MyProjectには、標準の「デバッグ」の他に、デバッグ構成として「デバッグ - ローカル」、「デバッグ - ステージング」、「デバッグ - プロダクション」があります。
デフォルトでは、cocoapodsは通常Releaseとしてpod設定を生成します、このPodfile行はそれらがデバッグであることをそれに伝えることを可能にします。
あなたのデバッグ設定がコードを最適化しないということですか?誤ってデバッグ設定の最適化を有効にしているようで、ターゲットの設定からそれをオフにする必要があります。
Cライブラリを内部的に使用するポッドをデバッグしているときに誰かがこの問題に直面している場合に備えて、スレッドにリストされている他のすべてに加えて、プロジェクト設定を変更する必要があります。
Podsプロジェクト設定 - >あなたのC-usingターゲット - >ビルド設定 - > Apple Clang - カスタムコンパイラフラグ - >その他のCフラグに行き、どういうわけかそこに着いた-O3
フラグを削除してください。
これは単純化しすぎかもしれませんが、リリース用に最適化しているのか(SwiftやLLVMからシンボルを削除するために)最適化しているのでしょうか?その場合は、スキーマを編集して[デバッグ]に切り替えるか、[SwiftまたはLLVM最適化用のビルド設定]を[なし(0)]に編集します。
このエラーは2回発生しましたが、いずれの場合もサービスを要求するために使用されたURLパラメータの間違いでした。あるケースではURLのportセクションにスペースがあり、他のケースではオプションの値がラップされていませんでした。
そのため、修正はリクエストのURLが正しい形式であることを確認することでした。私のケースに関するより多くの情報、そして同じことをここで報告する。
私のしたことは、自分のプロジェクトをクリーン(Product > Clean
)にして、もう一度実行することです。