Xcodeがインデックス作成で動かなくなった


116

私が2か月間取り組んできたプロジェクトは、Xcodeが「インデックス作成」に行き詰まったため、理由もなく機能しなくなりました。プロジェクトをもうビルドできません。ビルドしようとすると、Xcodeがフリーズし、強制終了する必要があります。これはこのプロジェクトでのみ発生します。

すべての派生データをクリーンアップしようとしましたが、役に立ちませんでした。

Xcode 4.5.2を使用しています。

何か案は?


プロジェクトは何らかのバージョン管理に関連付けられていますか?リポジトリとリンクされている場合、定期的にソースのステータスをチェックし続け、その後ファイルにインデックスを付けます。プロジェクトが大きい場合、インデックス作成でスタックする可能性があります。
gibertoni

プロジェクトはそれほど大きくありません。今日、私はフレームワークGameKitを追加しましたが、それは一日中とてもうまくいきました。Game Centerのセットアップを終了しようとしたときに問題が発生しました。「インデックス作成| 4ファイルのうち3ファイルを処理しました」と言います。時々「0 of 1 File」、時々83 of 84ファイル...新しいプロジェクトを作成し、ほとんどすべてをコピーして貼り付けなければならないでしょう。数時間になります...
tomDev

2
Appleとその素晴らしさは、xcode 5でも同じ確率です
Roma-MT

2
Xcode 9.1でこの問題に直面しています。4年経ってもまだ同じ問題があります:|
SabriMeviş2017

3
Xcode 10 GMも
QED

回答:


163
  1. プロジェクトフォルダを開きます。
  2. ProjectName.xcodeprojファイルを見つけます。
  3. コピーして右クリックして安全な場所に貼り付けます。
  4. [パッケージの内容を表示]を右クリックします。
  5. project.xcworkspaceファイルを見つけて、そのファイルを削除します。
  6. プロジェクトを再度開き、クリーンして再構築します。

問題が解決しない場合は、ファイルをバックアップファイルに置き換えます。


1
xcode 6.2の* .xcodeprojファイル内にproject.xcworkspaceファイルが見つかりません。@ aleksandar-vacicの回答がうまくいきました。
Kie

xcodeはまだ「インデックス作成| xcodebuildを待っている」で動かなくなっているようですが、プレイをヒットしたときにビルドは成功するので、それは何かです。
chiliNUT

3
このファイルの目的や、現在の問題との関連について詳しく教えてください。
de。

@marlonpya私はあなたがcocoapodsで作業していると思いますその場合、ワークスペースファイルは私が話しているものとは別です。ここでは、.projectファイル内のファイルについて話しています。これが役立つことを願いますが、プロジェクトファイルまたはワークスペースファイルで何かを変更する前に、常にバックアップを行ってください。
Pratik Mistry 2017

cocoapodsを使用しながら同じ手順に従い、ルートフォルダーの.xcworkspaceファイルを開きます
Leap Hawk

70
  1. Xcodeからそのプロジェクトを閉じる
  2. Xcode Organizerを開き、問題のあるプロジェクトを見つけます
  3. オーガナイザーの派生データフォルダーを削除する
  4. Xcodeを閉じる/再度開く

Xcodeの誤動作のすべてのケースで最初に試すのは、派生データのNukingです。


9
Xcode 6.4では、オーガナイザの代わりにウィンドウ→プロジェクトに移動する必要があることに注意してください。
kennytm

受け入れられた回答よりもはるかに簡単な解決策、ありがとう!
Tim

8
派生データは、私のマシンの〜/ Library / Developer / Xcode / DerivedData /にあります。
Suragch

23

私はこの正確な問題を抱えていました、それは20項目の配列リテラルによって引き起こされました。別の構文に切り替える必要がありました。かなりばかげています。


4
わたしも。アレイ4x4で動作します。アレイ6x6はxcodeには多すぎます...ドラマ
dfens '27 / 06/17

@Jehanあなたは正しいですが、配列の定義タイプに時間がかからなければ、私の問題は解決されます。たとえばlet propertyType:[[[String:String]]] = [[["propertyKey": "All Types"]、["propertyKey": "House"]]、[["propertyKey": "アパート&ユニット" ]、["propertyKey": "Townhouse"]] .......など]タイプを定義しないと、時間がかかります
Shrikant K

2
わたしも。これはApple側とXcodeの絶対に奇妙で実際の失敗です
wuf810

1
コンパイラーが行き詰まっているコード内の場所をどのようにして見つけますか?
Tomasz Nazarenko 2017年

1
@TomaszNazarenko-以下の私の答えを見てください。xcodeを取得して、処理に時間がかかりすぎるコードについて警告することができます。
greencardigan

18
  1. 開いているXcodeをすべて閉じます
  2. rm -rf ~/Library/Developer/Xcode/DerivedData
  3. PROJECT_NAME.xcworkspaceを右クリックし、「コンテンツの表示」を選択して、「xcuserdata」フォルダーを削除します

9

同様の問題があり、誤ってクラスを独自のサブクラスとして定義したことがわかりました。これに関する警告やエラーはありませんでしたが、コンパイルが行き詰まりました。

class mainClass : mainClass
{
    ...
}

実際、これが私の場合、インデックス作成が行き詰まる問題の解決策でした。正解です。
rghome 2015

なぜこれが(事実上)Xcodeのサブプロセスのクラッシュを引き起こし、他のコードバグのようなエラーを生成しないのですか?
カークランド2016

8

Xcode 6を使用すると、

メイクを待っています

makeのインスタンスが既に実行されている可能性があります。プロセスを強制終了すると、インデックス作成が続行されます。ばかげたが、私のために働いた。


これで解決しました。バックグラウンドで「make start」を使用してDockerコンテナーを実行しました。
Devin Young

7

インデックス作成の問題を解決しようとしていて、ページの一番下にいる場合は、もう1つ試してみてください。

このフラグをビルド設定に追加してみてください。

-Xfrontend -warn-long-expression-type-checking=400

ビルド設定フラグ

コンパイラが複雑な式を推定するのに長い時間がかかる場合に警告が表示されます。

警告

これにより、ビルドエラーが発生する可能性があり、遅い式を見つけてビルドフラグを削除すると解消されます。


これは完璧で正確な答えです。
jaya raj

4

altキーを押したまま、製品>ビルドフォルダーのクリーンアップ


4

これはXcodeのバグ(Xcode 8.2.1)であり、Appleに報告したところ、大きな辞書リテラルまたはネストされた辞書リテラルがある場合に発生します。辞書を小さな部分に分割し、Appleがバグを修正するまで、appendメソッドでそれらを追加する必要があります。


4
  • まず、ネットワークから切断します。有線ネットワークと無線ネットワークの両方をオフにする必要があります。
  • 次に、com.apple.dt.SourceKitServiceプロセスを強制終了します。その後、XCodeはスタックするのではなく、再度インデックスを作成し始めます。

ここに画像の説明を入力してください


1
com.apple.dt.SKAgentXcode 10 で呼び出されるようです
lemonmojo

3

私にとっては、Xcodeを完全に終了し、プロジェクトを再起動することでうまくいきました。

クレジットなど、これは、元の質問のためのソリューション、私は信じていないではありませんが、ファイルやフォルダを削除する前にしようとするもう一つの単純なことであるこの回答アイデア。


3

これは私に起こりました。ココアポッドを使用している場合は、次のようにします。

  1. project.xcworkspaceを削除します
  2. ターミナルで「ポッドインストール」を使用してポッドを再インストールします
  3. 新しいproject.xcworkspaceを作成します
  4. 新しいproject.xcworkspace-> Clean-> Buildを開きます

1
ありがとうございました。私はxcode11.1で問題に直面していますが、それは私にとってはうまくいきます
Rahul Parikh

1
Xcode 11.5にもこの問題がありましたが、これでも修正されました。
frankenapps

2

Xcodeがインデックス作成に多くの時間を費やし、プロジェクトのビルドを頻繁にハングアップさせるという同様の問題があり、その時点でXcodeを強制終了して再起動する必要がありました。それは非常に迷惑でした。

その後、プロジェクトにself代理人としての不適切な割り当てに関する警告が表示されました。案の定、クラス宣言に欠落しているプロトコルがありました。OPのサンプルコードにも同様の割り当てがあることに注意してください(サンプルから正しいプロトコルが宣言されているかどうかを判断することはできません)。

leaderboardController.leaderboardDelegate == self;

(実装されたプロトコルを正しく宣言することによって)その警告を解決した後、Xcodeは誤動作を停止しました。また、プロトコルメソッド実装されたため、プロジェクトが正しく実行されたことにも注意してください。Xcodeがプロトコルが実際にクラスによって実装されるべきであることを確認できなかったというだけでした。


2

何が私のために働いていない、私のプロジェクトは、(客観マージ大きすぎるcc++swift、およびjavaj2objを持つファイル)。Xcodeのインデックス作成を無効にして、コード補完なしで何ヶ月も働いた(そしてそれは苦痛である)。しかし、ようやく回避策を見つけました。Xcodeにコードのインデックスを作成し続けるが、次のような外部ツールを使用してCPUの使用を制限するという考え方です。cputhrottle

したがって、最初にターミナルにcputhrottleをインストールする必要があります

brew install cputhrottle

次に、Xcodeのインデックス作成プロセスを次のように制限します(20 = 20%)

sudo cputhrottle $(pgrep -f com.apple.dt.SKAgent)20

ここにモードの詳細を含む「解決策」を公開しました:大きなプロジェクトのインデックス作成時にXcodeがCPUを100%使用しないようにする方法


これは役立ちますが、cputhrottleはもはや自作ではありません。代わりにcpulimitを使用できますが、構文は少し異なります。「sudo cpulimit -l 20 -p $(pgrep -f com.apple.dt.SKAgent)」-再びトレースできるようになりましたが(以前は不可能)、インデックスを作成してインデックス作成からそれをスキップするのに非常に時間がかかるものを見つけたいと思いますが、それが何であるか、どのように見つけるか、または何かをスキップする方法がわかりません(いくつかの大きなリンクされたバイナリまたはおそらくブーストさえ疑っていますか? ?私はC ++のみをコンパイルし、Swiftは使用しません。)
Eike

わかりました、私はその上で漕ぐ必要があります。それは助けになりましたが、実際には私は後でcpulimiting skagentを使用していくつかの奇妙な動作をしました。とにかく症状のみに対処するため、お勧めしません。
Eike

私はまだこれを使用しています。もう1つの選択肢は、Xcodeのインデックス作成を完全に無効にすることですが、私にとっては最悪です。これを行わないと、ファイルを変更するたびに(基本的には24時間24時間)、Xcodeが100%のインデックスを作成し続け、エディターで入力すると、2秒ごとに1文字が出力され、使用できません。
jptsetung

まあ、これは問題に対処するための総当たりの方法であれば効果的です。それがあなたのために働くなら、それは良いことです。Xcodeがクラッシュした後、swodでクラッシュしました。そして、私はKijansの回答のステップ3を試してみました(つまり、派生データを削除するだけでなく、.xcuserdataを.xcworkspaceから削除します)。それについて知らなかった..
Eike

1

Xcode 6.4でも同様の問題がありました。進行状況バーに、「インデックス作成」が「一時停止」であることが示されました。上記のように、project.xcworkspaceを削除してから、派生データを削除しようとしました。助けにはならなかったようです。上記の投稿は警告を修正することも提案していることに注意し、180の警告でこの巨大なプロジェクトを継承しているので、「警告を修正するのにこれは何のように見えるのだろう」と自分に言いました。30分後に警告を修正していたときに、「インデックス作成」の進行状況バーが10%から約20%に増加していることに気付きました。1時間後、50%になり、さらに1時間から80%になり、さらに30分後に完了しました。結論:上記の提案に「長い昼食または昼寝」を追加します。


これが最後の手段だと思います。
リシャブ2016

1

Xcode 7.0ベータ版でも同じ問題が発生しました。私の場合、「ビルド設定」の「プロビジョニングプロファイル」と「製品バンドルID」の値がPROJECTとTARGETSで異なっていました。それらに同じ値を設定します。また、「appName」と「appNameTest」のTARGETSにも同じ値を使用しました。その後、プロジェクトを閉じて再度開きました。それで私の事件は解決しました。


1

私の場合、派生データディレクトリを削除しても問題は解決しませんでした。どうやら私は別のプロセスによってファイルがロックされていたようです。いくつかのターミナルウィンドウとEmacsを閉じて、React-Native Packagerプロセスを終了すると、すべてが解決しました。


ここでも同じですが、以前にカルタゴの再構築を中断しました。どうやらすべてのプロセスが実行を停止したわけではないため、一部のファイルが使用中のままになっていると思います。ターミナルを閉じてXCodeを閉じて再び開くとうまくいきました。
Cyber​​Dude 2016

1

私にとって、私は愚かな間違いをしました。私はこのようなクラスを書きます:

class A: A {
.......
}

クラスは、凍結を引き起こすそれ自体を継承します。Xcodeからのメッセージヒントはありません。


これは非常に考えられる原因です。私の場合はそれでした。私も前にこれに出会ったと確信しています。
フォーム

1

Xcode 9.3.1を使用する一部のプロジェクトでこの問題が発生しましたが、私の場合、問題は何らかの理由でXcodeが気に入らない迅速なコードが原因です。問題の原因となっているファイルを見つけるのは難しいため、この問題の解決は困難です。

この問題が発生したとき、Xcodeプロジェクトからいくつかのファイルを削除し(参照を削除)、インデックスが機能するかどうかをテストします。そうするための私のプロセス

  1. 一部のファイルを削除
  2. Xcodeを閉じる
  3. Xcodeを開く
  4. インデックス作成が完了した場合、おそらく削除したファイルが機能する場合は、いくつかのメソッドの名前を変更してみてください。

私の場合、同じファイルにリアクティブな拡張子を持つクラス定義があり、何らかの理由でXcodeがそれを気に入らなかったため、リアクティブな拡張子を別のファイルに移動したところ、インデックス作成は正常に機能しました。


これは、まだ作成していないコードでもボトルネックを特定できるので、本当に良いソリューションです。私の場合、それはメンテナンスされていないポッド/ライブラリであり、「-Xfrontend -warn-long-expression-type-checking = 300」フラグを使用しても警告が出力されなかったため、それを特定するのに数日かかりました。
セドリック2018

0

また、アプリの実行を停止します。xcodeで別のアプリケーションを実行している場合は、まずそれを停止して、インデックス作成を続行してください。


0

私にとっては、プライマリエディターアシスタントエディターの両方で同じファイルを同時に開いたことが原因でした。Assistant Editorを閉じると、問題が解決しました。(Xcodeバージョン7.2.1)


0

Xcodeを閉じ、Gitクライアント(ソースツリーまたはターミナル)が開いている場合は閉じ、最後にプロジェクトを再起動します。


0

最近XCode 7.3.1でこれに直面しました-私にとって、RAM使用量がCleanMyMac3で100%になることに気付きました。マシンを再起動した後、問題は魔法のように自動的に修正されました。しかし、公平を期して、私はすでに先に進んで受け入れ済みの回答を試しました。そのため、念のため、再起動する前に同じようにしたいと思うでしょう:-)



0

Swift 2.2でも同じ問題が発生しました

それはジェネリック関数のオーバーロードされた関数と関係がありました

func warnLog() {
    print("Warning line: \(#line) file: \(#file) ")
}

func warnLog<T>(input:T? = nil) -> T? {
    print("Warning line: \(#line) file: \(#file) ")
    return input
}

func warnLog<T>(input:T) -> T {
    print("Warning line: \(#line) file: \(#file) ")
    return input
}

必要なのは、使用されていないオーバーロードの1つを削除することだけです

func warnLog<T>(input:T? = nil) -> T? {
    print("Warning line: \(#line) file: \(#file) ")
    return input
}

0

私の場合:project.xcworkspaceファイルではなく、Derived Dataフォルダではありませんでした。

私は多くの時間を無駄にしました。さらに悪いことに、エラーメッセージはありません。Xcodeの部分に手掛かりはありません。絶対に負けました。

最後に、この関数(10を超えるパラメーターを使用)が責任を負います。

func animationFrames(level: Float,
                     image: String,
                     frame0: String,
                     frame1: String,
                     frame2: String,
                     frame3: String,
                     frame4: String,
                     frame5: String,
                     frame6: String,
                     frame7: String,
                     frame8: String,
                     frame9: String,
                     frame10: String) {
}

クレイジーになる!真実はそれが気になるということです(構文エラーやタイプがないため)


0

XCode 9.3のインデックス作成の問題-XCodeをアンインストールし、ゼロから再インストールします。私のために働く。


1
XCodeのサイズは数KBではありません。数GBです。
iphondroid、

0

この問題は、マシンのスワップ領域が足りなくなったときに発生しました。いくつかのプログラムとブラウザのタブを閉じたところ、30分間止まった後にビルドが突然成功しました。私の側では、派生データ、ロックされたファイルなどとは何の関係もありません。


0

リストにあるものをすべて試しましたが、インデックス作成はフリーズし続けます。これは私を助けました:インデックスがフリーズしていて、1つ以上の迅速なプロセスがCPUの99%を消費している場合-この迅速なタスクを終了し、少し待ってください。終了するまで繰り返すことができますが、私の場合はプロセスを7回強制終了しましたが、最後にインデックス作成が完了しました。


0

SwiftUIプロジェクトでこの問題が発生しました。私のSwiftUIビューの1つに誤って宣言された変数があることが判明しました。私が持っていた:

@EnvironmentObject var roomViewModel

私が必要な場所:

@EnvironmentObject var roomViewModel: RoomViewModel

コンパイラエラーは発生せず、無限のインデックスが作成されました。エラーを修正した後、プロジェクトはすぐにビルドされました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.