web-dev-qa-db-ja.com

ファイル内のXcode 8ブレークポイントが機能しない

私のXcodeプロジェクトには、ブレークポイントで停止しないように開始されたファイルが1つ、_SignInViewController.Swift_あります。 viewDidLoad()にブレークポイントがあり、viewDidAppear()にブレークポイントがいくつかあります。両方の関数でいくつかのprint()呼び出しがあり、それらが実行されていることを確認します。 _AppDelegate.Swift_を含む他のファイルでもブレークポイントは正常に機能します。

プロジェクトのビルド中に_Invalid redeclaration of 'signInViewController.Swift'_というエラーが表示され、ビルドが終了してアプリが正常に実行される前に消えてしまうことに気付いたところ、どこが間違っているのかを理解しようとした時点がありました。ファイル内のブレークポイント。 _signInViewController.Swift_は、名前を_SignInViewController.Swift_に変更する前の数か月前の古いファイル名です。ブレークポイントの問題が発生するまで、プロジェクトのビルドフォルダーとXcodeの派生データをクリーンアップしたので、レプリケートできませんでした。私はそれが問題の要因になっていると感じていますが、どうして/どうしてかわかりません。

とにかく、これは私がすでに試したものです。それらのほとんどは、一般的には機能しないブレークポイントのためだけのものですが、そうでない場合でも、とにかくそれらをリストする必要があると思います:

  1. クリーンプロジェクト
  2. ビルドフォルダーのクリーンアップ
  3. XcodeのDerivedDataをクリア
  4. ブレークポイントが有効になっていることを確認する(Cmd Y)
  5. ビルド設定はデバッグに設定されています
  6. 常に逆アセンブリの有効化と無効化を表示
  7. 実行構成でデバッグが有効になりました

どんな助けも大歓迎です。

UPDATE 1(まだ運がありません):

  1. Neprockerの答えで示唆されているようにXcodeの設定を削除しようとしました here

更新2

ブレークポイントの問題は、ファイルの他の場所で機能するviewDidLoad()およびviewDidAppear()ブレークポイントのみに分離しました。

更新3

viewDidLoad()の特定のコードブロックに分離されています。 viewDidAppear()それでも動作しません。

19
DerFlickschter

これがどのように修正されたのかはよくわかりませんが、viewDidLoad()の特定のコードブロックに問題を切り分けました。次に、そのコードをコメントアウトし、プロジェクトをビルドして実行しました。その後、コードのコメントを外してビルドし、再度実行すると、ブレークポイントが機能しました。

6
DerFlickschter

古いプロジェクトでも同じ問題がありました。 Product(トップメニューバーにある)-> Scheme-> EditSchemeを選択し、図に示すように「Debug Executable」をクリックしてこの問題を解決しました。たぶん、これは他の誰かにも役立つでしょう。

enter image description here

25
Winston

私の場合、ブレークポイントは1つのコールバックだけでヒットしなかったため、デバッグ用のプロジェクトターゲットビルド設定で「Swift Compiler」「Optimization Level」を「No Optimization」に変更し、Xcode 9.3とAppCodeで動作を開始しました。

enter image description here

17
Renetik

以下のパッチは私のために働いています。メニューバーから、Product-> Scheme-> Edit Scheme-> Select Profile-> Set Build Configuration to BUILDを選択します。下記のスクリーンショットをご覧ください。

enter image description here

7

Xcodeプロジェクトの[ビルド設定]に移動し、[デバッグシンボルの生成]を[はい]に設定して、これを解決しました。

6
Magnus

助けになったのは、ディレクトリ内のプロジェクトディレクトリ(* .xcodeproj)の下にあるファイルBreakpoints_v2.xcbkptlistを削除することでした:xcuserdata/Fred.xcuserdatad/xcdebugger(「Fred」をユーザー名に置き換えてください)。ターミナルプログラムを使用してそこに移動します。

6
Fred Dijkstra

Xcode 9でも同じ問題を扱っていました。

以下の方法で問題を解決しました。

  • 以下の端末コマンドを使用してXCodeのデフォルトを削除

    defaults delete com.Apple.dt.Xcode.LSSharedFileList   
    defaults delete com.Apple.dt.Xcode
    
  • XcodeのDerivedDataをクリア(または削除)

    /Users/[Your Mac Username]/Library/Developer/Xcode/DerivedData
    
  • アプリケーションからXcode.appを削除(またはアンインストール)し、PCを再起動します

  • Xcode 9の新しいコピーをインストールする

  • [必須]アプリプロジェクトへのユーザー権限を次のように設定します

    chmod -R 777 "/Users/[Your Mac Username]/Desktop/TestApp/"
    

    [TestAppは、デスクトップを維持するアプリプロジェクトです]

  • プロジェクトを開き、ビルド設定がデバッグに設定されていることを確認します

  • ブレークポイントが有効になっていることを確認し、コードにデバッグポイントを設定します
4
Ali Azam

Xcodeのユーザーデフォルト自体で値が変更されている場合があります。時々、スタックトレースでデバッガが停止することで同様の問題が発生しました

1.Delete the Xcode preference
defaults delete com.Apple.dt.Xcode

その他の問題は、ターゲットの最適化レベルである可能性があります。ターゲットをnoneに変更すると、デバッガーで停止します

3
neprocker

私の場合、Devビルド構成が正しく構成されていないことがわかりました。

Build configrution

Dev構成は、Releaseではなく、Debugからコピーする必要があります。

Word debugBuild settingsで検索して、違いを確認できます。

例えば:

Macros

お役に立てれば。

2
Phu Nguyen

標準エディターで初期ビューのviewController.Swiftファイルを開き、viewDidLoad内で何かを印刷し、アプリケーションを実行します。印刷が正常に機能している場合は、アシスタントエディターでviewController.Swiftファイルを正しく選択したことを確認します。

2

@neprockerが言ったことに基づいて、デバッグ/リリースの両方で「速度の最適化」を行いました。デバッグの値を変更するだけでいいのです。 Search for Optimization Level for your target under Build Settings

1
alasker