"0이 아닌 종료 코드로 인해 명령 실패"로 빌드 실패


83

Xcode로 앱을 빌드하려고하면 오류가 발생하여 빌드 프로세스가 중단됩니다.

CompileStoryboard0이 아닌 종료 코드로 인해 명령이 실패했습니다.

때로는 대신 다음 오류가 표시됩니다.

CompileSwift0이 아닌 종료 코드로 인해 명령이 실패했습니다.

나는이 새로운 빌드 시스템이 켜져.

이 문제를 해결하려면 어떻게해야합니까?


엑스 코드 10 년 - stackoverflow.com/a/52722094/822420 당신이 도움이 될 수 있습니다

답변:


45

나를 위해 Xcode를 닫아도 효과가 없었습니다. 대신 CommandShiftK.


또 다른 이유를 찾았습니다. 제가 제거한 다른 스토리 보드에 대한 스토리 보드 참조가있었습니다. 빠른 수정으로 이것을 삭제했습니다.

여기에 이미지 설명 입력


프로젝트를 닫아도 깨끗하지 않기 때문에 작동하지 않았습니다. :)
Led

32

컴파일러가 "중요한"작업 중일 때 프로젝트 빌드를 중지하면이 오류가 나타날 수 있습니다. 이 경우 프로젝트를 다시 빌드하고 정상적으로 완료하면이 오류가 사라집니다.


8
나를 위해 일하지 않았다. 이 오류는 info.plist파일 을 현지화하려고 할 때 나타납니다 .
Ricardo Mutti 2018 년

2
특히 이전에 만든 프레임 워크를 임베드하려고 할 때 저와 함께 일하지 않았습니다.
Abdulrahman Masoud

3
작동하지 않았습니다. 또한 command + alt + shift + k를 사용하여 빌드 폴더를 지우려고했습니다. 반응이 없습니다.
atereshkov

월의 09번째 2019 엑스 코드 10.1이 확실히 정답 아니다
NSDumb

2
먼저 청소 (CMD + SHIFT + K) 다음 건물 (CMD + B)이 저를 위해 일했습니다
Daniel Springer 19

28

이것은 Swift 4.2 및 Xcode 10의 알려진 문제입니다. 여기에서 문제를 해결 한 기사를 찾았습니다. https://github.com/Yummypets/YPImagePicker/issues/236

간단히 말해 프로젝트 빌드 설정으로 이동하여 SWIFT_ENABLE_BATCH_MODE라는 사용자 정의 설정을 추가하고 해당 값을 NO로 설정합니다.

이전에는 여기에서 제안 된 각 방법 (재 구축, Xcode 종료, 정리 및 재 구축, 파생 데이터 파일 제거)을 시도했습니다. 그들 중 누구도 일하지 않았습니다.

기사에 따라 사용자 정의 빌드 설정을 추가하면 Swift가 진정한 오류를 알려주었습니다. 제 경우에는} 누락되었지만 여러 문제가있을 수 있습니다.


21

나는 또한 xcode 10에서 동일한 문제에 직면하고 제공된 모든 솔루션을 시도했지만 아무것도 작동하지 않았습니다.

그런 다음 다음 폴더의 모든 파일과 폴더를 삭제했습니다.

~/Library/Developer/Xcode/DerivedData

그리고 그것은 매력처럼 작동했습니다.


9
이 대답은 효과가있었습니다. 터미널에 복사하고 붙여 넣으려면 다음을 사용하십시오.cd ~/Library/Developer/Xcode/DerivedData && open .
tww0003

1
감사합니다. 솔루션 시간을 찾고있었습니다. 오늘을 구했습니다!
ikel 19

이 길도 찾을 수 없습니다. 그러나 @ tww0003 코드로 트릭을 수행했습니다.
Dpedrinha

@ Dpedrinha 예, 내 로컬 시스템이기 때문입니다. 경로를 업데이트했습니다. 이제 찾을 수 있습니다.
Krishna Meena

11

이 오류는 NSManagedObject 하위 클래스를 만들기 전에 엔터티 속성을 변경하는 것을 잊었을 때 발생했습니다. 해결 방법 :

  1. 삭제 Entity+CoreDataClass.swiftEntity+CoreDataProperties.swift.
  2. 엔티티 모델 검사기의 "클래스"에서 "모듈"을로 Current Product Module, "코드 겐"을로 변경 Manual/None합니다.
  3. NSManagedObject를 다시 만듭니다.

영상


CoreDataClass 란 무엇입니까 ?
IgorGanapolsky

9

프로젝트를 Swift 4에서 5로 업그레이드 할 때이 오류가 발생했습니다. 먼저 모든 포드를 최신 버전으로 업데이트했습니다. 내가 빌드 할 때 일부 포드에이 오류가 표시되었습니다.

다음 단계를 통해이 문제가 해결되었습니다.

  1. 에서 모든 포드를 제거했습니다. Podfile
  2. pod install설치된 모든 포드를 제거하기 위해 실행 됨
  3. pod deintegrateCocoaPods에 대한 지원을 제거하기 위해 실행 됨
  4. 내 프로젝트에서 삭제 Podfile.lock되어 .xcworkspace더 이상 CocoaPod가 없습니다.
  5. 이제 내 프로젝트는 순수한 Xcode 프로젝트입니다.
  6. 일반 .xcodeproj파일 에서 내 프로젝트를 열었습니다.
  7. 내 프로젝트의 Swift 버전을 Swift 5로 변경했습니다.
  8. 프로젝트 정리 (cmd + shift + K)
  9. 종료 된 Xcode
  10. 모든 포드를 내 Podfile
  11. pod installCocoaPods를 다시 통합하고 내 포드를 추가하기 위해 실행 됨
  12. .xcworkspace파일 에서 프로젝트를 열었습니다.
  13. 청소 및 재건
  14. 여전히 Swift 4.0 (제 경우에는 SlideMenuControllerSwift)을 사용하고 있던 일부 오래된 포드가 Swift 5.0으로 설정되어 코드에 많은 빌드 오류가 발생했습니다. Pods 프로젝트를 열고 대상을 선택하여 다시 Swift 4.0으로 수정했습니다.
  15. 다시 청소하고 재건했습니다.

이제는 내가 만든 Swift 버전의 차이와 관련된 내 프로젝트 코드에만 오류가 있습니다. 지금 내 일은 그것들을 고치는 것입니다.


포드 대신 카르타고를 사용하면 어떨까요?
IgorGanapolsky

8

오류가 발생 Command LinkStoryboards failed with a nonzero exit code하여 존재하지 않는 스토리 보드에 대한 참조를 사용하고 있음을 발견했습니다. 최근에 스토리 보드 파일의 이름을 변경 했으므로 참조를 '이전'이름에서 '새'이름으로 변경하면 문제가 해결되었습니다.
저와 똑같은 오류가 없을 수도 있지만 오류에 대한 자세한 설명을 찾는 쉬운 방법은 다음과 같습니다.

  • 이슈 탐색기 표시 (빌드 시간 오류가 표시되는 동안)
  • 오류를 클릭하십시오. 이슈 탐색기에서 오류를 클릭하십시오.
  • 그런 다음 오류에 대한 자세한 내용을 볼 수 있습니다. 0이 아닌 종료 코드로 인해 명령 LinkStoryboards가 실패했습니다.


이게 도움이 되길 바란다. 제발,이 질문과 다른 오류의 경험에서 대답하고 있음을 알고 있지만이 조언이 비슷한 문제를 해결하는 데 도움이 될 것이라고 믿습니다!


7

두 개 이상의 대상에 동일한 이름의 파일이있는 여러 대상이있는 경우 파일 검사기에서 해당 파일의 대상 구성원을 확인하십시오. 동일한 이름의 파일의 여러 인스턴스가 동일한 대상에 대한 대상 구성원을 설정 한 경우 오류가 발생합니다.



4

이 문제에는 가능한 해결 방법이 수십 가지 있고 근본 원인이 매우 모호 할 수 있으므로 내 상황을 고리로 던지겠습니다. 내 포드의 절반이 일종의 CompileSwiftSource실패로 실패했지만 아카이브에서만 실패했습니다. 나는 여전히 장치와 시뮬레이터를 위해 잘 만들 수 있었다. 나는 여기에 제안 된 솔루션을 (모두는 아니지만) 많은 것을 시도했지만 운이 없었다. 포드 중 하나에 오류가 발생하기 전에 약간 다른 오류 CompileSwiftSource가 있었으므로 해당 단일 포드를 업데이트하고 수정하려고했습니다. Cache한동안 업데이트되지 않은 iOS 용 라이브러리 였습니다 . Xcode 10.2로 업데이트 할 수있는 문제를 해결 한 포크가 있었고 그 이후에는 다른 모든 문제가 해결되었습니다. 따라서 많은 오류가 발생하면 포드에서 하나의 특이 치를 찾아 거기서 시작하십시오.


3

제 경우에는 빌드 폴더를 정리 한 다음 Mac을 다시 시작하면 작동합니다.


3

내가 가지고 JSONwebtoken설치 포드와 그 원인이 문제였다. JSONWebtoken포드 폴더 에있는 CommonCrypto 폴더를 삭제해야했습니다 . 다음은 문제를 설명 하는-> 링크 <-입니다. 이것은 Xcode 10에서 시작되었습니다.


2

제 경우에는 클래스 확장 내에서 너무 복잡한 초기화를 사용했습니다. 갑자기 내 빌드가 망가졌습니다.

class MyClass { }
extension MyClass {
static var  var1 = "", var2 = "", var3 = "", var4 = "", ...., var20 = ""
}

해결됨 :

class MyClass { }
    extension MyClass {
    static var var1 = "",
    static var var2 = "",
    static var var3 = ""
    static var var4 = "", ...., 
    static var var20 = ""
    }


2

0이 아닌 종료 코드로 인해 CompileSwift 명령이 실패했습니다.

이 오류는 코드를 Xcode 9에서 Xcode 10+로 마이그레이션 할 때 발생합니다. 클래스 이름이 기존 애플 클래스와 충돌하기 때문입니다. 예 : 상태, 이벤트

  1. 따라서 먼저 "State"와 같은 코드에 존재하는 클래스 / 구조 이름을 "StateDetail"로 변경하십시오.

  2. Info.plist가 target에 추가 된 경우 앱 번들을 복사하지 않도록 체크 표시제거 합니다 (최신 Xcode10 보안 이유).

    • Info.plist 파일을 선택 하고 오른쪽 Identity inspector의 "Target Membership"에서 선택을 취소하십시오.

그리고 코드를 다시 빌드하십시오 !!!


2

제 경우 문제는 스토리 보드의 viewController에 .swift 클래스를 할당 한 반면 프로젝트는 Objective C였습니다.


2

여기서 논의한 많은 옵션을 시도했습니다.

  • 포드 삭제 및 재설치
  • 빌드 폴더 정리
  • 파생 데이터 삭제
  • SWIFT_ENABLE_BATCH_MODE를 추가하고 값을 NO로 설정합니다.
  • Xcode 다시 시작 및 재 컴파일
  • iMac 재시동 및 재 컴파일
  • 컴파일 모드를 증분으로 설정
  • 변경된 빌드 설정 : SWIFT_COMPILATION_MODE = 단일 파일 및 SWIFT_OPTIMIZATION_LEVEL = "-O"

작동하지 않았습니다. Xcode 버전 11.0 베타 (11M336w)를 사용하고 있습니다.

마지막으로 새 복사본을 다운로드하고 이전에 설치 한 복사본을 교체했습니다. 똑같은 버전이었습니다. 그게 속임수였습니다.


2

제 경우에는 Location이라는 파일을 갖는 것이 었습니다. 약간의 파헤 치기 후에 나는 그것이 같은 이름 (이상한)을 가진 두 개의 파일을 가지고 있다는 것을 알게되었다. 그러나 나는 파일을 제거하고 다른 이름을 가진 다른 파일을 추가하여 해결되었습니다.

filenames are used to distinguish private declarations with the same name

2

하위 모듈에서 단위 테스트를 실행하는 동안이 오류가 발생했습니다. 내가 한 일은 :

시뮬레이터를 변경 => 청소 프로젝트 => 건설 프로젝트 => 실행 단위 테스트 .

그 후, 내 단위 테스트는 문제없이 실행되었습니다.



1

나는 그런 문제가 있으며 내 솔루션은 빌드 설정에서 약간의 변경입니다.

SWIFT_COMPILATION_MODE = singlefile;
SWIFT_OPTIMIZATION_LEVEL = "-O";

그것은 나에게 일한다


1

좋아, 나는 Xcode 10에서 같은 문제를 겪고 있었다. 나는 보통 모든 뷰에 스토리 보드를 사용한다. 누군가가 코드를 접는 것이 더 쉽도록 도와주는 방식이다. 나는 하나의 스토리 보드에있는 뷰 중 하나를 초기 뷰 컨트롤러로 만들어야했다.


더 이것을 설명하십시오, 나는 완전히이 답변을하지 않습니다
Mohsin Khubaib 아메드

따라서 하나 이상의 스토리 보드를 가질 수 있으며 멀티 뷰 앱에서는 모듈화를 위해 모든 뷰에서 스토리 보드를 사용합니다. 그런 식으로 누군가 앱의 다른 부분에서 작업하는 경우 이러한 변경 사항을 가져 오는 것이 훨씬 쉽습니다. ViewControllers에는 호출 할 때로드되는 스토리 보드의 초기 뷰 컨트롤러로 만드는 storyboard.loadInitialView() 옵션이 있으며 하나의 스토리 보드에서는 해당 옵션을 클릭하지 않았고 클릭했을 때 사라졌습니다.
jimistephen

1

제 경우에는 실수로 다른 폴더 (그룹)에있는 기존 파일로 파일 이름을 바꾸고 있었는데, 이름을 바꾸면 오류가 사라졌습니다.


1

대상은 appicon과 같은 관련 데이터로 지정되어야합니다.


1

나에게 문제는 내 Podfile에 넣지 않았다는 것 use_frameworks!입니다. 해당 줄의 주석 처리를 제거 pod install하고 터미널에서 다시 실행 합니다. 그리고 그것은 고쳐졌습니다.

앱이 전적으로 Objective-C로 만들어 졌기 때문에 댓글을 달았습니다. 앱이 이제 Swift를 사용하기 때문에 Podfile에서 변경해야했습니다.


1

Xcode를 다시 시작하고 다시 컴파일하면 동일한 오류가 발생하여 문제가 해결되었습니다.


1

별도의 스토리 보드를 연결할 때 동일한 오류가 발생합니다. "명령 CompileSwiftSources가 0이 아닌 종료 코드로 실패했습니다."오류 '초기 뷰 컨트롤러'로 연결하는 두 번째 스토리 보드 안에 뷰 컨트롤러를 설정하는 것을 잊었 기 때문에 표시됩니다.


0

나에게 도움이 된 것은의 모든 구성에 대해 로 설정 Compilation Mode하는 것 Incremental입니다 Target's Build Settings. 로 Whole module컴파일 모드 나는 오류를 얻었다. 그러나이 설정으로 인해 프로젝트 빌드 속도가 느려졌습니다.


0

새 MacOS 버전에서 이와 같은 오류가 발생하는 경우.

xcrun : 오류 : 잘못된 활성 개발자 경로 (/ Library / Developer / CommandLineTools), 다음 위치에 xcrun 누락 : / Library / Developer / CommandLineTools / usr / bin / xcrun

이는 XCode 명령 줄을 설치하고 터미널을 열고 다음 명령을 실행해야 함을 의미합니다.

$ xcode-select --install


0

나에게 이러한 오류를 일으키는 원인은 (코코아 포드 중 일부에 대해 8+가 발생했습니다) 모든 포드에서 런타임 빌드 문제를 수정하는 것입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.