2017-11-01 2 views
2

방금 ​​XCode 9.1로 업데이트했고 XCode 9.0.1 및 Realm 3.0.0에서 실행 중이던 프로젝트를 컴파일하려고 할 때 오류가 발생합니다 영역 3.0.1 업데이트 - - 을 내 프로젝트 에 프레임 워크를 다시 설치 : 메시지 내가 가진Swift 4.0으로 컴파일 된 Realm의 Swift 모듈을 Swift 4.0.2로 가져올 수 없습니다.

import RealmSwift 

내 코드의 영역 가져 오기에서 '스위프트 4.0 컴파일 된 모듈은 스위프트 4.0.2에서 가져올 수 없습니다' - XCode의 기능으로 프로젝트를 정리했습니다.

렐름 3.0.1에서 패키지에는 Swift-4.0.2 폴더가없고 Swift-4.0 만 있습니다.

Xcode 9.1과 호환되는 Realm 3.0.1이어야합니까? 그렇다면 작동하도록하려면 어떻게해야합니까? 그렇지 않은 경우 새 버전이 생성됩니까?

도움 주셔서 감사합니다. 감사합니다 기독교

+0

나는 Alamofire와 동일한 문제가있었습니다. 방금 Carthage (프레임 워크 파일 복사)로 다시 컴파일하고 다시 실행했습니다. –

+0

고마워요. 이것은 나를 도왔다. –

답변

0

나는 그러나 모듈 SocketIO와 같은 문제를 가지고 있었다. Carthage로 프레임 워크를 다시 컴파일하면 저에게 효과적이었습니다. 그 후에도 빌드 폴더를 정리해야했습니다.

+0

감사합니다. 이것은 나를 위해서도 효과가있었습니다. 나는 카르타고를 사용하지 않았지만 지금은이 문제를 해결했습니다. –

3

Swift 4.0.2는 Swift 4.0과 ABI 호환되지 않으므로 종속성으로 사용하는 바이너리는 다시 컴파일해야합니다.

두 가지 접근 방법이 여기에 적당하다 : 당신을 위해 영역을 다시 작성합니다

  1. 사용 카르타고. (또는 소스 코드를 직접 작성하십시오.)
  2. 카르타고를 사용하지 않거나 소스 코드를 직접 작성하지 않으려면 외부 Swift 4.0 Toolchain을 설치하고 Xcode -> 환경 설정 -> 구성 요소 -> 툴체인에서 선택하십시오. Realm이 업데이트를 릴리스 할 때까지 Xcode 9.0 swift toolchain으로 돌아 왔습니다.
+0

Swift의 패치 릴리스가 ABI 호환성을 깨뜨리는 것은 지루합니다. – NRitH

+0

ABI 문제가 실제로 릴리스 이후에 발견된다면 나는 선택의 여지가 없다고 생각합니다. 릴리스주기가 이슈의 실제 루트 일지는 확실하지 않습니다. Swift 10.0으로 ABI 안정성을 분류 할 수 있기를 바랍니다. – ambientlight