programing

Xcode 10에서 명령 CompileSwift가 0이 아닌 종료 코드로 실패했습니다.

muds 2023. 4. 26. 23:46
반응형

Xcode 10에서 명령 CompileSwift가 0이 아닌 종료 코드로 실패했습니다.

현재 Xcode의 최신 버전(버전 10.0)으로 업데이트한 후 일부 "Command CompileSwift failed with nonzero exit code" 오류와 관련된 일부 오류를 발견했기 때문에 프로젝트를 빌드할 수 없습니다.

이 오류를 해결하려면 어떻게 해야 합니까?프로젝트 내에서 사용하는 대부분의 포드(코코아팟 사용)에 나타납니다.

팟 버전과 팟을 이용 가능한 최신 버전으로 업데이트해봤지만, 문제는 여전히 남아 있습니다.

저는 웹을 통해 많은 것을 검색했고 이 문제에 대한 정보가 거의 없습니다.

저는 &을 사용하여 청소 프로젝트만 진행합니다.

대부분의 경우 전체 오류 메시지를 읽지 않습니다."Command CompileSwift failed with non-zero exit code" 메시지 위를 보면 다음과 같은 사양을 찾을 수 있습니다.

여기에 이미지 설명 입력

이 예에서는 이름이 같은 두 개의 파일이 있었습니다.일단 고치면 모든 것이 제대로 작동합니다.

시도했습니다

  • Xcode 닫기 및 다시 열기
  • 빌드 폴더를 정리하는 중
  • 중입니다.pod install --repo-update

그리고 이 모든 것들이 여전히 문제를 해결하지 못했습니다.

Mac을 다시 시작하면 효과가 있습니다!

현재 제 빌드가 작동하고 있습니다.최종적으로 작동할 때까지 시도한 단계는 다음과 같습니다.

  1. 프로젝트 전체에서 CommonCrypto라는 단어를 검색합니다.
  2. 해당 헤더 가져오기가 포함된 포드가 있는 경우 포드 파일에서 이 포드를 제거하고 포드 설치를 수행합니다.
  3. 프로젝트를 정리하고 빌드합니다.
  4. 포드 파일에 포드를 다시 추가하고 포드 설치를 수행합니다.
  5. 가능한 경우 실제 장치를 사용하여 프로젝트를 청소하고 다시 빌드합니다.

만약 당신이 그 포드를 가지고 있지 않다면, 당신의 프로젝트에서 볼 수 있는 오래된 포드와 같은 단계를 만들어 볼 수도 있습니다.

추가 정보: 또한 포드 내부에 코드 오류가 있을 경우 먼저 코드 문제를 해결한 다음 프로젝트를 다시 컴파일해야 합니다.

나는 내 프로젝트의 변경 사항을 복사할 것입니다.pbxproj.별로 도움이 되지 않는다는 것을 알지만, Git difference commit에서 변경된 것은 이것뿐입니다.

Removed: BDC9821B1E9BD1B600ADE0EF /* (null) in Sources */ = {isa = PBXBuildFile; };
Added:   BDC9821B1E9BD1B600ADE0EF /* BuildFile in Sources */ = {isa = PBXBuildFile; };

이게 도움이 되길 바랍니다

안부 전해요.

이 문제가 발생하여 프로젝트의 컴파일 모드 설정을 증분에서 전체 모듈로 변경하여 수정했습니다.

여기에 이미지 설명 입력

이는 Swift 4.2 및 Xcode 10의 알려진 문제입니다.저는 여기서 그것을 고쳐주는 기사를 찾았습니다: https://github.com/Yummypets/YPImagePicker/issues/236

요약하면 프로젝트 빌드 설정으로 이동하고 SWIFT_ENABLE_B라는 사용자 정의 설정을 추가합니다.ATCH_MODE를 설정하고 값을 NO로 설정합니다.

이전에 저는 다른 곳에서 제안한 다음 방법(재구축, Xcode 종료, 치료 및 재구축, 파생 데이터 파일 삭제)을 각각 시도했습니다.아무 것도 작동하지 않았습니다.

기사에 따라 사용자 정의 빌드 설정을 추가하자 Swift가 실제 오류를 알려주었습니다.저의 경우, 누락된 }개였지만, 여러 가지 문제가 있을 수 있습니다.

문제는 네이티브 Swift CommonCrypto가 존재하지 않기 때문에 브리지 헤더와 마법으로 빌드에 포함된 대상을 사용했다는 것입니다.CommonCrypto가 네이티브가 되었기 때문에 타겟과 타겟을 제거하여 문제를 해결했습니다.#import그리고 대신에 a를 추가했습니다.import CommonCrypto내가 사용했던 곳.

저는 다음을 수행했고 그것은 매력적으로 작동합니다.

  • Xcode Command,기본 설정 열기()
  • Locations
  • 다음에 대한 URL 경로를 표시하는 작은 회색 화살표를 클릭합니다.Derived Data
  • 파인더 창이 열리고 다음 폴더가 표시됩니다.

    • DerivedData
    • Archives
    • iOS DeviceSupport
    • UserData
    • DocumentationCache
    • iOS Device Logs
  • Xcode 종료

  • 를 합니다.DerivedData) 파일(파일 이름: folder)
  • Xcode 다시 시작

솔루션은 다음과 같습니다. - 빌드 설정으로 이동 - SWIFT_COMPLATION_MODE 검색 - 릴리스 구성에 대한 "전체 모듈"인 경우 "증분"으로 변경하십시오. - 지금 보관.

설정을 "증분"으로 변경하면 프로세스가 성공합니다.

중입니다.pod install --repo-update은 이내이를 해결했습니다.x-code를 종료한 후 다시 여는 것입니다.

저는 이름 띄어쓰기 문제였습니다.같은 이름의 파일이 두 개 있었습니다.이름을 바꿨더니 해결되었습니다.

항상 다른 곳을 보기 전에 '멍청한 나' 상자를 먼저 확인해야 합니다. :)

이 문제를 해결한 경험을 공유하겠습니다.

대상 -> 빌드 단계 -> 번들 리소스를 복사하고 info.plist를 제거합니다.

참고: 확장을 사용하는 경우 대상에서 해당 확장의 info.plist를 제거합니다.

도움이 되길 바랍니다.

나의 경우 문제는 워치킷 확장이 swift 3으로 설정된 반면 메인 프로젝트의 목표는 swift 4.2로 설정되었기 때문입니다.

수업 재신고가 문제가 될 것입니다.중복 클래스 및 빌드를 확인합니다.

이 오류는 상당히 모호한 오류인 것 같습니다. 따라서 이 오류를 해결하기 위해 제가 한 일을 공유하겠습니다.

Xcode 10.1과 Swift 4.2를 사용하여 거의 모든 제안을 시도했지만 어느 것도 제게 맞지 않았습니다. 그 후 제가 사용하고 있는 종속성이 Swift 4.2와 호환되지 않는다는 것을 알게 되었고 이로 인해 다른 포드에서 이러한 오류가 발생했습니다.그래서 이 문제를 해결하기 위해 저는 이것을 제 마지막에 놓음으로써 그 포드가 Swift 4.0을 사용하도록 강요해야 했습니다.Podfile:

post_install do |installer|
    installer.pods_project.targets.each do |target|
        if ['TKRadarChart'].include? target.name
            target.build_configurations.each do |config|
                config.build_settings['SWIFT_VERSION'] = '4.0'
            end
        end
    end
end

저는 웹 전체를 검색했지만 이 문제에 대한 해결책을 찾을 수 없었습니다.빌드 설정의 가져오기 경로 섹션에서 "공통 암호화" 경로를 제거할 수 있었습니다.문제는 현재 ios 12 sdk의 기초에 "common crypto"가 존재한다는 것입니다.

그래서":

빌드 설정에서 "common crypto" 파일의 경로를 제거하기만 하면 프로젝트가 매력적으로 빌드됩니다! :)

이 질문에 추가하는 중입니다.제 문제는 커먼크립토와 관련이 없습니다.새로운 단일 애플리케이션을 생성하고 실행 테스트를 거쳤습니다.컴파일러는 Swift 4.2를 사용하는 것에 대해 불평했습니다.

빌드 설정에서 Swift 언어를 버전 4.0으로 변경하여 문제가 해결되었습니다.이것이 버그인지 확실하지 않습니다.

Xcode 10부터 랜덤으로 받은 거예요.빌드를 시작할 때 코드를 변경하면 발생하는 것 같습니다.다음 빌드는 항상 작동합니다.

저도 같은 문제를 겪었고 @cdeeerink가 제안한 대로 했고 배치 모드를 비활성화하기 위해 사용자 정의 변수를 빌드 설정에 추가할 것을 제안하는 다음 링크에 도달했습니다. 즉, SWIFT_ENABLE_B라는 새 사용자 정의 변수를 추가하는 것입니다.ATCH_MODENO로 설정하고 문제에 대한 더 많은 통찰력을 얻을 수 있었고 (내가) 추가한 CommonCrypto를 사용하는 프레임워크에서 오류가 발생했다는 것을 알게 되었지만 Xcode 10부터는 Swift의 일부로 기본적으로 노출됩니다(애플 플랫폼 전용).추가(또는 이전 버전의 존재)로 인해 이름 충돌이 발생하여 오류가 발생했습니다.자세한 내용은 문제를 자세히 설명하는 이 링크를 참조하십시오.

저도 같은 문제가 있으며, 제 해결책은 빌드 설정에서 약간 변경하는 것입니다.

SWIFT_COMPILATION_MODE = singlefile;
SWIFT_OPTIMIZATION_LEVEL = "-O";

제 경우 빌드 단계의 카르타고 프레임워크 입력 파일 섹션에 프레임워크에 대한 중복 항목이 있었습니다.

오류 = 명령 CompileSwiftSources가 0이 아닌 종료 코드로 실패했습니다.

저의 경우 이 오류를 발견했을 때, 저는 컴파일로 인해 비좁아졌습니다.하지만 관련된 문제의 답을 보면요.프로젝트에서 중복 파일을 찾았습니다.컨트롤러가 클래스 파일로 있는 동일한 뷰입니다.그래서 네, 제가 그것을 깨달았을 때 저는 그것의 이름을 새 이름으로 바꿨습니다.그리고 네, 상황이 바뀌었습니다!!!

저는 Swift를 빌드하기에 너무 많은 시뮬레이터 파일이 열려 있다는 오류 메시지가 표시되었습니다.제가 시뮬레이터를 그만두고 다시 만들었을 때, 모든 것이 작동했습니다.

언급URL : https://stackoverflow.com/questions/52387452/command-compileswift-failed-with-a-nonzero-exit-code-in-xcode-10

반응형