Xcode:プロジェクトのビルド時に「ファイルxxx.pngが作業コピーにない」という問題


265

一部のpngファイルをプロジェクトに削除/追加した後、プロジェクトをビルドするときにメッセージが表示されます。

「ProjectPath \ aaa \ xxx.pngファイルが作業コピーにありません。」

これらのファイルはすべてプロジェクト内にあり、アプリケーションが実行されています。ただし、これらのメッセージは迷惑です。.plistファイルを探しましたが、これらのファイルについての言及はありません。これらのメッセージを削除するにはどうすればよいですか?


回答:


495

変更をコミットするとすぐに警告が消えます(Xcode 8)。


2
いくつかのファイルを別のディレクトリに移動した後、gitで変更をコミットする必要があることがわかりました。
Chris Livdahl、2016

@LearnSwift Clean Cmd + Shift + K、delete〜/ Library / Developer / Xcode / DerivedData / *?
Alexander Vasenin

2
@AlexanderVaseninどちらでもない
Swiftを学ぶ

7
私にとっては、変更をステージングするだけで十分でした。知っておくと良い。
charmingToad

13
あなたが言ったように、私は私の最新の変更をコミットしてプッシュすることを確認しました。しかし、それだけではエラーは解消されませんでした。それで、Xcode> Source Control> Discard ALL Changesを実行し、すべてのエラーをクリーンアップしました。
EdwardM 2017年

97

この問題にはさまざまな原因があるようですが、多くの場合、ソース管理ソフトウェアに関連しています。

私の場合、Gitに移動してファイルを再度追加することで解決しました。私は次のコマンドを実行することを意味します:

git add .

Xcode 8をインストールしてコードをswift 3にアップグレードした後、構文の修正(大規模なプロジェクト)を必要とする300を超える問題が発生しました。代わりに、バックアップから復元し、Swift 2.3にアップグレードしました...これらの「欠落」メッセージの束を除いて、すべてうまくいきました。このコマンドは魅力のように機能しました-私は仕事に戻ってきました!
Dan Ross

これは私のために働いたものです。私はカルタゴの賛成でポッドに持っていたために使用されるものを取り出したときに問題が開始
セバスチャン・サストレ

1
これも私にとってはうまくいきます。ファイルはソース管理下にあり、gitも更新する必要があるようです。
Shardon、2016年

git commit後、警告は消えました
carmen_munich

3
その他の場合:「git add」を実行して、Xcodeプロジェクトのルートフォルダーに配置する必要があります。コマンド:/ MyXcodeProjects / AwesomeApp /
Philip Borges

59

チェックを外すことでソース管理を無効にすることもできます

Xcode-> Preferences-> Source Control-> Enable Source Control

コマンドラインやその他のアプリで管理している場合。


IDEでこれを確認するのがちょっと面倒だったので、ソースコントロールをうまくサポートするか、まったくサポートしないかのどちらかでした
samiq

1
私は2つのアクションを実行しました。1)「チェックを解除」、2)「ソース管理を有効にする」の「チェック」。警告は消えました。
Viktor

58

XCodeの場合-> SoureControl:

Update+ Refresh Status私のためにやった。


これは、「@ 2x」や「@ 3x」のように、ファイル名に「@」が含まれているためと考えられます。SVNはリビジョンシンタックスにそのシンボルを使用します(コマンドラインでSVNを使用するときにエスケープするには、最後に "@"を追加するだけです。最後のオカレンスがリビジョン情報の試行と決定に使用されるためです)。Updateを実行するだけでうまくいきました。新しい画像をいくつか追加したとき、実際にはファイルインスペクターペインで2x / 3xバリアントに対しても「追加」を手動で選択する必要がありました。変だ。
Android3000 2016年

1
この!ものすごく大事。ファイルを含むフォルダーの名前を変更した場合にも問題が発生します。言い換えると、まだコードをコミットしていないため、xcodeは警告を出します!クラップクラップクラップ
Warpzit

4
これでうまくいきました。Xcodeを閉じてプロジェクトを再度開いて実行する必要がありました。
jaytrixz 2016

44

私の場合、ファイルはソース管理にありませんでした。
修正するには、このファイルを破棄する必要がありました(プロジェクト全体ではなく、不足しているファイルのみを破棄するように注意してください)。

  1. Xcode-> Source Control-> commit
  2. 不足しているファイルを右クリック
  3. 変更を破棄を選択

それは私のために機能し、DerivedDataフォルダーを削除しました、そして警告は "db.xcindexdb"のようなファイルに対するものでした
tontonCD

1
まず、最新の変更をコミットしてプッシュするようにしました。次にXcode> Source Control> Discard All Changesを実行し、すべてのエラーをクリーンアップしました。
EdwardM 2017年

19

ソース管理を無効にし、ビルドフォルダー(Alt+Shift+Cmd+K)をクリーンアップしてから、もう一度ソース管理を有効にします。

Xcode-> Preferences-> Source Control-> Enable Source Control


1
正解...しかし、@ emrekyvが3か月前に投稿した正確な答え...彼は投票権を獲得
エリック

@eric彼はソース管理を無効にすることだけを提案しました、私はそれを正しく動作させる方法を示しました。
ジョージ

18

私の場合、Xcodeは.svn、不足しているファイルを参照する古いディレクトリを何らかの方法で見つけました。これらの.svnファイルを見つけるには、プロジェクトフォルダーより上のレベルに移動する必要がありました。削除したら、Xcodeを再起動しましたが、すべて問題ありませんでした。


はい、バージョン管理(私の場合はsvn)によってまだ参照されているバージョン管理下のプロジェクトから何かを削除すると、これが発生します。「svn update」を使用して不足しているファイルを復元し、「svn delete」を使用して適切な方法でそれらを削除すると、問題は解消されました。
ChrisB

12

Xcode 7をまだ使用しているときに、Xcodeプロジェクトから長い間削除されていた少数のファイルで同様の問題が発生しました。

私の解決策は:

  1. Xcodeが不満を言っていた名前のファイルを作成します(コンテンツは必要ありません)。
  2. Xcodeプロジェクトにファイルを追加します(Xcodeでメインプロジェクトディレクトリを右クリックし、[ my_project_nameにファイルを追加 ] クリックして、作成されたばかりのファイルを選択します
  3. 新しく追加したファイルを選択して削除します-[ゴミ箱に移動]を選択します。

これにより、警告が表示されなくなりました。


これもうまくいきました。既存のプロジェクトをコピーして派生物を作成した後、問題が発生しましたが、機能が削減された⇒ソースファイルが少なくなりました。
ステファン

9

アレクサンダーワセニンの答えを追加するには...

まず、変更をコミットしてプッシュしました

Xcodeメインメニュー>ソース管理> コミット

次に、すべての変更を破棄してエラーを取り除きました

Xcodeメインメニュー>ソース管理> すべての変更を破棄

その後、「作業コピーにファイルxxx.pngがありません」というエラーが消えました。


プロジェクトがバージョン管理を使用していない場合、またはバージョン管理システムがXCodeでサポートされていない場合はどうなりますか?
マーティン

8

これは、Xcodeでファイルを削除したときに発生しますが、svnサーバーにそれを通知しませんでした。

コマンドラインツールに移動し、ファイルを直接削除します。

svn delete missingFile.m 

そしてそれをコミット

svn commit -m "Deleting file"

.svnフォルダーを削除すると警告は消えますが、svnサーバーとの通信が失われることに注意してください。


5

私はそれを解決しました。

サードパーティのSVNツールを開いて、ミスファイルを見つけ、元に戻すだけです。それで全部です。


5

私は同じ問題を抱えていて、gitを追加することで解決しました。コマンドラインツールを開く

cd "project folder path"
git add .

後で、Xcodeプロジェクトを再起動して、プロジェクトを再度開きます。


gitを使用しない場合はどうなりますか?
マーティン

4

ターゲットで表示->ビルドフェーズ->バンドルリソースをコピーします。クリーンなビルドフォルダーコマンド+ Shift + Alt + K


3
ありがとうございます。ただし、ビルドフェーズにはありません。ビルドフォルダーのクリーニングも役に立ちません。
イバン2014

4

私は手動でターミナルに入り、ファイルを削除してgit rm ProjectPath\aaa\xxx.pngコミットしなければなりませんでした。その後、すべてがうまくいきました。


3

XCode 8に移行した後、すべてのプロジェクトでこれを取得しました。これで解決しました。

オプションキーを押したまま、製品(タイトルメニュー内)->ビルドフォルダーのクリーンアップ。


2

私の場合、シミュレーターにある古いプロジェクトのデータが間違っていました。シミュレータの内容と設定をリセットすることで解決:

シミュレータ->コンテンツと設定をリセット...


1

私にとっては、以下がうまくいきました:

私はGitを使用していないため、新しいプロジェクトを作成しました(XCode 8、通常の「use Git」が表示されなかったか、チェックマークが付けられていました)。次に、この新しいプロジェクトのすべてのファイルを簡単に削除しました。古いめちゃくちゃにされたプロジェクトに行き、プロジェクトフォルダーにすべてをコピーし、新しく作成されたプロジェクトに戻り、古いものを貼り付け、それを開きました-数ヶ月間存在しなかったファイルに関するすべての警告が消えました。成功を祈っている。


1

同じ問題が発生し、指定したファイルをファインダーからプロジェクトナビゲーターにドラッグし(ダイアログで[ファイルのコピー]が選択されていることを確認)、ファイルをコミットすることで解決しました。


1

これらの警告はビルド警告ではなく、SVNリポジトリに関するものです。

表示されているディレクトリが存在しないことは正しいです。CocoaPodsはPods/Headers/{Private,Public}現在ヘッダーを格納しています。これらの変更を反映するには、作業コピーを更新する必要があります。


XCode内でバージョン管理を使用していないため、問題が発生します。
マーティン

1

私の場合、いくつかのファイルをXcodeプロジェクトウィンドウにドラッグアンドドロップして追加しました。それは私のソースディレクトリにコピーを作成しましたが、私が彼らが行きたい場所にそれらを置きませんでした(それは私のディレクトリのルートにそれらを置きました、私はサブディレクトリにそれらをほしかったです)。何も考えずにFinderでそれらをつかんで、必要なディレクトリに移動しました。プロジェクトウィンドウに戻った後、当然それらを見つけることができなかったので、ウィンドウから削除して再度追加しました。コンパイルした後、これらのエラーが発生し始めました。

上記のようにgitの問題だと思いましたが、「git ls-tree --full-tree -r HEAD」を実行したときにファイルがまったく表示されませんでしたか?

とにかくそれを修正するには、「ファイルを追加...」メニューコマンドを使用して各ファイルをデフォルトの場所に追加し、クリーンビルドを実行してから、プロジェクトウィンドウからそれらを削除します([ゴミ箱に移動]を使用)。それはすべてのエラーを取り除きました。


1

警告があり、XCodeで変更をコミットできませんでした(svnを使用)。XCodeを再起動するだけで問題は解決しました。



0

私の場合、それはgitと大文字と小文字を区別しないファイルシステムの問題でした。

次の場合にのみ異なるファイルパスを使用して、誤って同じファイルを2回送信しました。

MyProject/Resources/foo.png
MyProject/resources/foo.png

Xcodeは、欠落しているファイルの1つについて不平を言っていました。

問題のあるファイルを削除し、再度追加することで修正しました。

cd MyProject
mv Resources/foo.png /tmp
git rm Resources/foo.png
git rm resources/foo.png
git commit
mv /tmp/foo.png Resources
git add Resources/foo.png
git commit

0

これは間違いなくソース管理に関連しています。いくつかのコミットされていないplistファイルの名前を変更して移動したところ、このエラーが発生しました。私はsvnを使用しています。Source Control - Commit古い参照ファイルを削除することでこれを修正できました。


問題が発生し、XCodeが認識しているバージョン管理を使用していません。すべてのバージョン管理はXCode外で行われます。
マーティン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.