Swift 4.0으로 컴파일 된 모듈은 Swift 4.0.1에서 가져올 수 없습니다.
그러나 동일한 Xcode를 사용하여 프레임 워크를 다시 컴파일했지만 여전히이 오류가 발생합니다.
- 두 가지 모두를위한 Base SDK iOS 11.1
- Swift 언어 버전 Swift 4.0
- 포드 / 카르타고를 사용하지 않음
누군가가 알기를 바랍니다
최신 정보:
Xcode 릴리스 버전의 경우 :
이 오류 (및 Swift 4.1, 4.2 등과 관련된 유사한 오류)는 이전 Xcode 도구로 빌드 된 프레임 워크를 사용하는 Xcode 9.1, 9.2, 9.3, 9.4, 10 등으로 프로젝트를 열 때 발생합니다.
문제를 해결하려면 Carthage ( carthage update --platform iOS
), Cocoapods ( pod update
또는 pod install
)를 사용하거나 새로 업데이트 된 Xcode 도구를 사용하여 수동으로 프레임 워크를 업데이트하고 다시 빌드합니다 . 도구는 Xcode를 업데이트 할 때 자동으로 업데이트되어야하지만 그렇지 않은 경우 원래 답변에서 아래에 설명 된 단계를 따를 수 있습니다.
Xcode가 캐시 된 프레임 워크 빌드를 사용하지 않도록하려면 프로젝트 cmd + shift + k
와 빌드 폴더 를 정리해야 할 수도 있습니다 cmd + option + shift + k
.
경우에 따라 파생 데이터 폴더를 삭제해야 할 수도 있습니다 (Xcode 환경 설정-> 위치-> 파생 데이터 폴더로 이동하면 쉽게 찾을 수 있습니다 ( Thanks Stunner ).
Xcode 베타 버전의 경우 :
아래의 원래 답변을 참조하고 위의 단계를 따르십시오.
원래 답변 :
xcodebuild 도구가 Swift 4.0으로 빌드되고 Xcode 9.1 베타의 Swift 4.0.1과 호환되지 않는 Xcode 9.0으로 설정되어있을 것입니다.
다음 명령을 사용하여 터미널을 체크인하십시오.
xcodebuild -version
또는 Xcode 환경 설정-> 위치로 이동하여 명령 줄 도구를 Xcode 9.1로 확인 / 변경하십시오. 그러면 설정해야합니다.
내 문제는 Swift 4.0.2 용으로 컴파일되지 않은 외부 프레임 워크 때문이었습니다. Carthage를 통해이 파일을 추가 했으므로 다음을 실행합니다.
carthage update --platform iOS
그런 다음 프로젝트를 정리하고 cmd + shift + k
폴더를 빌드 cmd + option + shift + k
하고 파생 된 데이터 폴더를 삭제 (단순히 휴지통으로 이동하는 것도 가능)하는 것이 저에게 효과적이었습니다.
여기 에서 작동하던 특정 Xcode 버전의 Xcode Toolchain을 설치 하십시오 .
Xcode 도구 모음에는 특정 버전의 Swift에서 작업하기위한 일관된 개발 경험을 제공하는 데 필요한 컴파일러, lldb 및 기타 관련 도구의 사본이 포함되어 있습니다.
Xcode의 환경 설정을 열고 구성 요소> 도구 체인으로 이동 한 다음 설치된 Swift 도구 체인을 선택하십시오.
이렇게하면 지금은 앱을 컴파일하고 실행할 수 있습니다.
제 경우에는 SwiftUI를 테스트하기 위해 xCode 11 베타 버전을 다운로드했습니다. 프로젝트를 실행할 때 "Swift 5.1로 컴파일 된 모듈은 Swift 5.0.1 컴파일러에서 가져올 수 없습니다 : ..." 오류가 발생합니다.
이 문제를 해결하려면. xCode 명령 줄 도구를 새로운 xCode 11 주석 줄 도구로 변경했습니다. 그 후 SwiftUI로 새로운 xcode 프로젝트를 만들 수 있습니다.
Xcode-> 환경 설정-> 위치-> XCode 명령 줄 도구
나는 이것이 새로운 freamework로 테스트하려는 사람을 도울 것입니다. :)
저는 Swift 4.2를 추가하는 Xcode 10 베타에서이 문제를 해결했습니다. 내 문제는 Carthage 또는 외부 종속성과 관련이 없습니다.
YourTarget > Build Settings > Swift Language Version
모든 Xcode 대상으로 이동 하십시오.
내 모든 설정이 Swift 4
.
파일 복사 빌드 단계를 추가 한 후 오류가 발생하기 시작했습니다.
: 0 : 오류 : Swift 4.1.2로 컴파일 된 모듈은 Swift 4.2 컴파일러에서 가져올 수 없습니다. /Users/user/Library/Developer/Xcode/DerivedData/MyApp-faskfrihumfcdibjxisjvbfshppp/Build/Intermediates.noindex/MyApp.build/Debug/ MyAppExtension.build/Objects-normal/x86_64/MyClass~partial.swiftmodule
0이 아닌 종료 코드로 인해 MergeSwiftModule 명령이 실패했습니다.
나는 각 목표의 설정 Swift Language Version
에 Swift 4.2
오류를 제거하는합니다.
그러나 모든 대상을 Swift 4
똑같이 유효하게 설정 해야하므로 처음에 오류가 발생하는 이유를 잘 모르겠습니다 .
제 경우 (Xcode 9.2) :
나는 Xcode에 갔다 Preferences > Locations > Derived Data
그런 다음 데이터를 삭제하고 깨끗한 빌드를 수행했으며 괜찮 았습니다.
제 경우에는 플러그인과 함께 CocoaPods를 사용 cocoapods-binary
하여 라이브러리를 바이너리로 미리 빌드했습니다 . Xcode를 10에서 11로 업그레이드 한 후 Xcode에서 다음 오류가 발생합니다.
Module compiled with Swift 5.0.1 cannot be imported by the Swift 5.1 compiler
/Pods
디렉토리 를 제거하고 pod install
.
'Program Tip' 카테고리의 다른 글
activerecord의 하위 쿼리 (0) | 2020.10.11 |
---|---|
긴 경로에 대한 "별칭"을 만드는 방법은 무엇입니까? (0) | 2020.10.11 |
Visual Studio에 포함 된 아이콘은 어디에 있습니까? (0) | 2020.10.11 |
프로그래밍 방식으로 버튼 위젯에 포커스를 설정하는 방법은 무엇입니까? (0) | 2020.10.11 |
Javascript-다른 배열 안에 배열 삽입 (0) | 2020.10.11 |