그러나 동일한 Xcode를 사용하여 프레임 워크를 다시 컴파일했지만 여전히이 오류가 발생합니다.
- 두 가지 모두를위한 Base SDK iOS 11.1
- Swift 언어 버전 Swift 4.0
- 포드 / 카르타고를 사용하지 않음
누군가가 알기를 바랍니다
그러나 동일한 Xcode를 사용하여 프레임 워크를 다시 컴파일했지만 여전히이 오류가 발생합니다.
누군가가 알기를 바랍니다
답변:
최신 정보:
Xcode 릴리스 버전의 경우 :
이 오류 (및 Swift 4.1, 4.2 등과 관련된 유사한 오류)는 이전 Xcode 도구로 빌드 된 프레임 워크를 사용하는 Xcode 9.1, 9.2, 9.3, 9.4, 10 등으로 프로젝트를 열 때 발생합니다.
문제를 해결하려면 새로운 업데이트 된 Xcode 도구를 사용하여 Carthage ( carthage update --platform iOS
), Cocoapods ( pod update
또는 pod install
)를 사용하거나 수동으로 프레임 워크를 업데이트하고 다시 빌드하십시오 . 도구는 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 Language Version
했습니다 Swift 4
. 그런 다음 작동했습니다.
내 문제는 Swift 4.0.2 용으로 컴파일되지 않은 외부 프레임 워크 때문이었습니다. Carthage를 통해이 파일을 추가 했으므로 다음을 실행합니다.
carthage update --platform iOS
그런 다음 프로젝트를 정리하고 cmd + shift + k
폴더를 빌드 cmd + option + shift + k
하고 파생 된 데이터 폴더를 삭제 (단순히 휴지통으로 이동하는 것도 가능)하는 것이 저에게 효과적이었습니다.
제 경우에는 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
똑같이 유효하게 설정 해야하므로 처음에 오류가 발생하는 이유를 잘 모르겠습니다 .
Build Settings
제 경우 (Xcode 9.2) :
나는 Xcode에 갔다 Preferences > Locations > Derived Data
그런 다음 데이터를 삭제하고 깨끗한 빌드를 수행했으며 괜찮 았습니다.
제 경우에는 불평하는 버전으로 프레임 워크를 다시 컴파일했습니다.
pod update
카르타고 를 재 컴파일, 실행 또는 업데이트 (사용중인 항목)하고 프로젝트를 빌드합니다.
그런 다음 파인더에서 프레임 워크를 검색합니다. theFramework.framework
프로젝트에를 복사하여 붙여넣고 "필요한 경우 항목 복사"를 확인하십시오. 프로젝트를 다시 빌드하면 작동합니다.