[xcode] Xcode 경고 :“출력 파일에 대한 다중 빌드 명령”

다음과 같은 오류가 발생합니다.

[WARN] 경고 : 출력 파일 /Developer/B/Be/build/Release-iphonesimulator/BB.app/no.png에 대한 다중 빌드 명령

[WARN] 경고 : 출력 파일 /Developer/B/Be/build/Release-iphonesimulator/BB.app/d.png에 대한 다중 빌드 명령

[WARN] 경고 : 출력 파일 /Developer/B/Be/build/Release-iphonesimulator/BB.app/n.png에 대한 다중 빌드 명령

그러나 Xcode를 확인했는데 그러한 파일의 사본이 전혀 보이지 않습니다. Apple Mailing Lists 의이 게시물 에서 알 수 있듯이 중복 항목은 없습니다.



답변

프로젝트 네비게이터에서 Xcode 프로젝트 파일을 선택하십시오. 프로젝트의 목표와 프로젝트 설정이 표시됩니다. “번들 자원 복사”빌드 단계를보십시오. 해당 목록에서 문제가되는 파일을 두 번 찾아야합니다. 중복 참조를 삭제하십시오.

Xcode는 동일한 파일을 응용 프로그램과 함께 두 번 묶으려고한다고 불평합니다.


답변

자식 기반 하위 프로젝트를 추가 할 때 쉽게 발생합니다. Xcode는 파인더에서 .git 하위 폴더를 볼 수 없어도 .git 하위 폴더를 무시할 정도로 똑똑하지 않으므로 “master”또는 “exclude”라는 여러 파일 (표준 git repo 파일)이 있다는 것은 매우 혼란 스러울 것입니다. Xcode4를 사용하여 프로젝트 (왼쪽 트리의 루트)로 이동 한 다음 앱 대상을 클릭하고 “번들 리소스 복사”를 확장 한 다음 .git에 대한 모든 참조를 제거하십시오. 어쨌든 앱에 구운 필요는 없습니다.


답변

실제로 이것에 대한 대답은 매우 간단합니다.

Xcode 프로젝트에서 경고를 발생시키는 파일을 검색하고 그중 하나를 삭제하십시오.

Xcode는 검색 결과에 해당 파일에 대한 하나의 참조 만 표시하지만 거기서 멈추지 말고 삭제하십시오. (프로젝트 파일을 삭제하기 전에 백업하는 것이 좋습니다)

이제 프로젝트를 다시 빌드하십시오. 경고가 사라집니다. (이 답변은 이전 버전의 xcode에 대한 것입니다)


답변

경고 메시지는 실제 원인을 설명하는 데 도움이되지 않지만 Xcode 버그는 아닙니다.

이 오류 메시지는 프로젝트에 동일한 이름을 가진 여러 파일이있을 때 발생합니다. 중복 이름을 가진 파일을 삭제하거나 이름을 바꾸면 문제가 해결됩니다.


답변

프로젝트에 같은 이름의 파일이 2 개있는 경우에 발생합니다. 프로젝트가 컴파일 될 때 파일이 XCode의 그룹에 있더라도 모든 파일은 동일한 디렉토리에있게됩니다. 즉, /group1/image.jpg 및 /group2/image.jpg가있는 경우 컴파일 된 프로젝트에는 두 개의 image.jpg 파일 중 하나만 있습니다.


답변

앞에서 언급 한 것처럼 프로젝트 탐색기에서 이름은 동일하지만 다른 그룹 (노란색 폴더)에 여러 파일이있는 경우이 문제를 볼 수 있습니다. 필자의 경우에는 앱 번들에 복사하려는 “preview.jpg”가있는 여러 개의 하위 디렉토리가 각각 있으므로 의도적 인 것입니다.

그룹 참조

이 상황에서 Xcode 가 그룹뿐만 아니라 디렉토리 참조 (파란색 폴더 아이콘)를 인식하도록해야합니다 .

문제가되는 파일을 제거하고 “참조 제거”를 선택하십시오 (따라서 완전히 삭제하지는 않음).

그룹 참조 제거

프로젝트 탐색기로 다시 끌어서 프로젝트에 다시 추가하십시오. 나타나는 대화 상자에서 “추가 된 폴더에 대한 폴더 참조 작성”을 선택하십시오.

폴더 참조로 추가

파일은 프로젝트 탐색기에서 파란색 폴더 아이콘을 갖습니다.

폴더 참조


이제 대상 빌드 단계의 “번들 자원 복사”섹션을 보면 디렉토리 내에 포함 된 각 항목에 대한 항목이 아니라 전체 폴더에 대한 단일 항목이 있음을 알 수 있습니다. 컴파일러는 해당 파일에 대한 여러 빌드 명령에 대해 불평하지 않습니다.


답변

이것은 버그가 아닙니다. Xcode 지원이 도움이 될 수 있습니다. 프로젝트 네비게이터의 왼쪽에서 대상을 선택하십시오. 설정 하단의 “유효한 설정”을 클릭하십시오. Xcode는 설정을 확인하고 가능한 경우 중복을 제거합니다.