Xcode : 프로젝트 빌드에서 "파일 xxx.png가 작업 복사본에서 누락되었습니다"문제


265

프로젝트에 일부 png 파일을 삭제 / 추가 한 후 프로젝트를 빌드 할 때 메시지가 나타납니다.

"파일 ProjectPath \ aaa \ xxx.png이 (가) 작업 사본에서 없습니다."

이 모든 파일이 프로젝트에 있으며 응용 프로그램이 실행 중입니다. 그러나 이러한 메시지는 성가시다. .plist 파일을 보았지만 이러한 파일에 대한 언급은 없습니다. 이 메시지를 제거하려면 어떻게해야합니까?


답변:


495

변경 사항을 커밋하면 경고가 사라집니다 (Xcode 8).


2
일부 파일을 다른 디렉토리로 이동 한 후 git에서 변경 사항을 커밋해야한다는 것을 알았습니다.
Chris Livdahl

@LearnSwift Clean Cmd + Shift + K, ~ / Library / Developer / Xcode / DerivedData / *를 삭제 하시겠습니까?
Alexander Vasenin

2
@AlexanderVasenin도
스위프트를 배우십시오

7
나를 위해 단순히 스테이징 변경으로 충분했습니다. 알아 둘만 한.
charmingToad

13
언급했듯이, 나는 최신 변경 사항을 커밋하고 푸시해야합니다. 그러나 그렇게하면 오류가 제거되지 않았습니다. 그런 다음 Xcode> Source Control> Discard ALL Changes를 수행하고 모든 오류를 정리했습니다.
EdwardM

97

이 문제는 다른 원인이있을 수 있지만 종종 소스 제어 소프트웨어와 관련이 있습니다.

필자의 경우 Git으로 이동하여 파일을 다시 추가하여 해결했습니다. 다음 명령을 실행하는 것을 의미합니다.

git add .

Xcode 8을 설치하고 코드를 신속한 3으로 업그레이드 한 후 구문 수정 (대규모 프로젝트)이 필요한 300 개가 넘는 문제가 발생했습니다. 대신 백업에서 복원하여 신속한 2.3으로 업그레이드했습니다.이 '누락 된'메시지를 제외하고는 모두 잘 진행되었습니다. 이 명령은 매력처럼 작동했습니다-나는 다시 사업에 돌아 왔습니다!
Dan Ross

이것이 나를 위해 일한 것입니다. 이 문제는 내가 카르타고에 찬성하여 포드에서 가지고 있던 것을 제거했을 때 시작되었습니다
Sebastian Sastre

1
이것은 나에게도 효과적입니다. 파일이 소스 제어하에 있고 git도 업데이트해야합니다.
Shardon

자식 커밋 한 후 경고가 사라
carmen_munich

3
다른 사람들을 위해 : 'git add'를 실행하여 Xcode 프로젝트의 루트 폴더에 있어야합니다. 명령 : / MyXcodeProjects / AwesomeApp /
Philip Borges

59

선택을 해제하여 소스 제어를 비활성화 할 수도 있습니다

Xcode-> 환경 설정-> 소스 제어-> 소스 제어 사용

명령 줄이나 다른 앱을 통해 관리하는 경우


이것은 IDE에서 이것을 보는 것을 귀찮게 해줬습니다. 소스 제어를 제대로 지원하거나 전혀 지원하지 않아야합니다.
samiq

1
소스 제어 사용에 대해 1) "확인 취소", 2) "확인"의 두 가지 작업을 수행했습니다. 경고가 사라졌습니다.
빅터

58

XCode-> SoureControl에서 :

Update+ Refresh Status나를 위해 그것을했다.


파일 이름에 "@ 2x"및 "@ 3x"규칙과 같이 "@"이있는 이미지 때문일 수 있습니다. SVN은 그 기호를 개정 구문에 사용합니다 (명령 행에서 SVN으로 작업 할 때이 기호를 이스케이프하기 위해 마지막에 발생하는 것이 개정 정보를 시도하고 결정하는 데 사용되므로 마지막에 "@"를 추가하면됩니다). 단순히 업데이트를 실행하면 나에게 도움이되었습니다. 새로운 이미지를 추가 할 때 실제로 File Inspector 창의 2x / 3x 변형에서 "add"를 수동으로 선택해야했습니다. 기묘한.
Android3000

1
이! 너무 중요합니다. 파일이 포함 된 폴더의 이름을 바꾸는 경우에도 문제가 발생합니다. 다시 말해, xcode는 아직 코드를 커밋하지 않았기 때문에 경고를 표시합니다! 박수 박수 박수
Warpzit

4
이것은 나를 위해 일했습니다. Xcode를 닫고 프로젝트를 다시 열고 실행해야했습니다.
jaytrixz

44

제 경우에는 파일이 소스 컨트롤에서 누락되었습니다.
수정하려면이 파일을 삭제해야했습니다 (모든 프로젝트가 아닌 누락 된 파일 만 폐기하십시오).

  1. Xcode-> 소스 제어-> 커밋
  2. 누락 된 파일을 마우스 오른쪽 버튼으로 클릭
  3. 변경 사항 삭제

그것은 내가 DerivedData 폴더를 제거했다, 나를 위해 작동, 및 경고 "db.xcindexdb"로 파일을했다
tontonCD

1
먼저 최신 변경 사항을 커밋하고 푸시해야합니다. 그런 다음 Xcode> Source Control> Discard All Changes를 수행하고 모든 오류를 정리했습니다.
EdwardM

19

소스 제어를 비활성화하고 빌드 폴더 ( Alt+Shift+Cmd+K)를 정리 한 다음 소스 제어를 다시 활성화하십시오.

Xcode-> 환경 설정-> 소스 제어-> 소스 제어 사용


1
정답 ... 그러나 @emrekyv의 정확한 답변 3 개월 전 게시 ... 그는 투표를 얻습니다
eric

@eric 그는 소스 제어를 비활성화하는 것이 좋았으며 올바르게 작동시키는 방법을 보여주었습니다.
George

18

필자의 경우 Xcode는 .svn누락 된 파일을 참조하는 오래된 디렉토리를 어떻게 든 찾았습니다 . 해당 .svn 파일을 찾으려면 프로젝트 폴더보다 높은 수준 으로 올라 가야 했습니다 . 일단 삭제되면 Xcode를 다시 시작했는데 모든 것이 정상이었습니다.


예, 버전 관리에서 프로젝트를 여전히 참조 할 때 버전 관리 (프로젝트의 경우 svn)에서 무언가를 삭제할 때 발생합니다. "svn update"를 사용하여 누락 된 파일을 복원 한 다음 "svn delete"를 사용하여 올바른 방법으로 파일을 삭제하면 문제가 해결됩니다.
ChrisB

12

Xcode 7을 사용하는 동안 Xcode 프로젝트에서 오랫동안 삭제 된 소수의 파일과 비슷한 문제가있었습니다.

내 해결책은 다음과 같습니다.

  1. Xcode가 불평하는 이름으로 파일을 만드십시오 (콘텐츠가 필요하지 않습니다)
  2. Xcode 프로젝트에 파일 추가 (Xcode에서 기본 프로젝트 디렉토리를 마우스 오른쪽 단추로 클릭 하고 my_project_name에 파일 추가를 클릭 한 후 방금 작성한 파일을 선택하십시오.
  3. 새로 추가 된 파일을 선택하고 삭제합니다. 휴지통으로 이동을 선택하십시오.

이것은 나를 위해 경고를 제거했습니다.


이것은 나에게도 효과가 있었다. 파생 프로젝트를 만들기 위해 기존 프로젝트를 복사 한 후 문제가 발생했지만 기능을 줄이면 ⇒ 소스 파일이 줄었습니다.
Stefan

9

Alexander Vasenin의 답변을 추가하려면 ...

먼저 커밋하고 변경 사항을 적용했습니다

Xcode 메인 메뉴> 소스 제어> 커밋

그런 다음 모든 변경 사항을 폐기하여 오류를 제거했습니다.

Xcode 메인 메뉴> 소스 제어> 모든 변경 사항 취소

그 후 "파일 xxx.png가 작업 복사본에서 누락되었습니다"라는 오류가 사라졌습니다.


프로젝트에서 버전 제어 또는 XCode가 지원하지 않는 버전 제어 시스템을 사용하지 않는 경우
Martin

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을 사용하지 않으면 어떻게 되나요?
Martin

4

대상-> 빌드 단계-> 번들 자원 복사에 표시하십시오. 빌드 폴더 정리 명령 + Shift + Alt + K


3
고맙지 만 빌드 단계에는 없으며 빌드 폴더 정리도 도움이되지 않습니다.
Iban

4

수동으로 터미널로 가서 파일을 제거한 git rm ProjectPath\aaa\xxx.png다음 커밋해야했습니다. 그 후 모든 것이 잘 작동했습니다.


3

XCode 8로 넘어간 후 모든 프로젝트에서 이것을 얻었습니다.

옵션 키를 누른 상태에서 제품 (제목 메뉴에서)-> 빌드 폴더 정리.


2

필자의 경우 시뮬레이터에서 이전 프로젝트의 데이터가 잘못되었습니다. 시뮬레이터의 내용 및 설정을 재설정하여 해결 :

시뮬레이터-> 내용 및 설정 재설정 ...


1

나를 위해 다음이 효과가있었습니다.

Git을 사용하지 않았고 사용하지 않았기 때문에 새 프로젝트를 만들었습니다 (XCode 8, 일반적인 "Git 사용"을 볼 수 없거나 체크 표시가 표시되어 있음). 그런 다음이 새 프로젝트의 모든 파일을 무조건 삭제했습니다. 오래된 엉망 프로젝트에 가서 프로젝트 폴더의 모든 것을 복사하고 새로 만든 프로젝트로 돌아와서 오래된 것을 붙여 넣고 열었습니다. 수개월 동안 존재하지 않은 파일에 대한 모든 경고가 사라졌습니다. 손가락이 건. 다.


1

동일한 문제가 발생하여 파인더에서 지정된 파일을 프로젝트 탐색기로 드래그하여 (대화 상자에서 "파일 복사"가 선택되어 있는지 확인) 파일을 커밋하여 해결했습니다.


1

이 경고는 빌드 경고가 아니며 SVN 저장소에 관한 것입니다.

표시된 디렉토리가 더 이상 존재하지 않는 것이 맞습니다. CocoaPods는 Pods/Headers/{Private,Public}이제 헤더를 저장합니다 . 이러한 변경 사항을 반영하려면 작업 복사본을 업데이트해야합니다.


XCode 내에서 버전 컨트롤을 사용하지 않아서 문제가 발생했습니다.
Martin

1

제 경우에는 Xcode 프로젝트 창에 여러 파일을 끌어다 놓아 추가했습니다. 소스 디렉토리에 사본을 만들었지 만 원하는 위치에 놓지 않았습니다 (내 디렉토리의 루트에 넣고 하위 디렉토리에 원했습니다). 생각없이 방금 Finder에서 파일을 가져 와서 원하는 디렉토리로 옮겼습니다. 프로젝트 창으로 돌아간 후에는 물론 해당 파일을 찾을 수 없으므로 창에서 삭제하고 다시 추가했습니다. 컴파일 후이 오류가 발생하기 시작했습니다.

위에서 언급 한 것처럼 git 문제라고 생각했지만 "git ls-tree --full-tree -r HEAD"를 실행했을 때 파일을 전혀 보지 못했습니다.

어쨌든 문제를 해결하기 위해 "파일 추가 ..."메뉴 명령을 사용하여 각 파일을 기본 위치에 추가하고 새로 빌드 한 다음 프로젝트 창에서 파일을 삭제하고 (휴지통으로 이동) 모든 오류를 제거했습니다.


1

경고가 있었고 XCode (svn 사용)에서 변경 사항을 커밋 할 수 없었습니다. XCode를 다시 시작하기 만하면 문제가 해결되었습니다.


1

이것은 나를 위해 작동합니다 : Xcode-> ( "옵션 + 클릭") 제품-> 빌드 폴더 정리 ...
다시 시작보다 xCode


0

필자의 경우 git 및 대소 문자를 구분하지 않는 파일 시스템에 문제가있었습니다.

경우에 따라 다른 파일 경로를 사용하여 실수로 동일한 파일을 두 번 제출했습니다.

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

Xcode가 누락 된 파일 중 하나에 대해 불평했습니다.

문제가되는 파일을 삭제하고 다시 추가하여 수정했습니다.

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 외부에서 수행됩니다.
Martin
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.