2017-11-06 17 views
2

xCode를 9.0.1에서 9.1로 업데이트했습니다. 모든 확인을 전했지만, 내가 (카르타고와) 내 프로젝트를 빌드 할 때 지금, 나는이 오류가 :Xcode 9.1 : Swift 4.0으로 컴파일 된 모듈을 Swift 3.2.2로 가져올 수 없습니다.

module compiled with Swift 4.0 cannot be imported in Swift 3.2.2 (SWIFT 또는 4.0.2 4 명 사용자)

당신을 수 있도록 할 필요가 없습니다 모듈에 의존하지 않기 때문에 모듈을 이해할 수 있습니다. 왜냐하면 관련된 가져 오기 라인에 주석을 달았을 때, 다른 모듈에 대해 다음 가져 오기와 잘못 배치 한 실수가 있기 때문입니다.

나는 내가 본 모든 것을 시도 :

  • 청소 프로젝트를
  • 청소 카르타고 폴더
  • 청소 파생 데이터 폴더 : 카르타고와
    rm -rf ~/Library/Caches/org.carthage.CarthageKit/DerivedData
  • 업데이트 : carthage update --platform iOS (또는하지 --no-use-binaries)
  • 업데이트 모듈
  • 빌드 다시
  • 닫았다가 다시 엽니 다 엑스 코드는

카르타고 (0.26.2)을기도하고 맥 OS (하이 시에라)는 최신입니다.

내가 생각할 수있는 마지막 가정은 Xcode 9.1이 Xcode 9.1을 사용하지 않는 모듈을 사용할 수 없다는 것입니다. 따라서 Xcode 9.0.1로 돌아갈 수는 있지만 프로젝트를 Xcode 9.1 사용자에게 제공 할 수는 없습니다. 나는 모든 모듈의 업데이트를 기다리는 것을 상상할 수 없다. 그럼 아이디어 있니?

고마워요!

+0

공유 모듈 이름 및 카트에 넣기 정보, 모듈 설정/통합 방법 – Krunal

+1

명령 줄 도구가 올바른 Xcode 응용 프로그램으로 설정되었는지 확인할 수 있습니까? 그래서 xcodebuild가 올바르게 해결됩니다. Xcode 또는'xcode-select -print-path'에서 찾으십시오. Xcode> 환경 설정> 위치> 명령 행 도구 또는'xcode-select -switch '에서 설정하십시오. –

+0

@Krunal 말했듯이, 모듈에 의존합니다. 하나의 가져 오기에 주석을 달면 문제가있는 다른 모듈을 가져 오기 때문입니다. 나의 카르타고는 최신이다. 그리고 프로젝트에 .framework를 복사하고, 링크 된 프레임 워크와 Librairies를 추가하고,'import ModuleName'을 사용하여 모듈을 통합합니다. – PMIW

답변

0

예. 사용중인 모든 프레임 워크를 9.1로 업그레이드해야합니다.

"내가 말했듯이 내가 하나 개 가져 오기를 언급하는 경우, 그것은 문제가 또 하나의 가져 오기 때문에,이 모듈에 의존하지 않는다" 다음 하나는 동일한 문제가 있기 때문에

. "Embedded Binaries"의 모든 프레임 워크를 9.1로 컴파일 된 버전으로 바꾸십시오. 자신에게 그것을 증명하기 위해 불만을 제기하는 첫 번째 질문에서 Xcode는 두 번째 질문이 지금 문제가되는 것 등을 알려줍니다.

+0

Swift 4/Xcode 9에서 "새로운 기능"을 잘못 읽었습니까? 어떤 이유로 저는 스위프트 3과 4 모듈을 혼합 할 수 있다고 읽었습니다 (3은 4, 4는 3에 달려 있음). 또는, 사실입니까? Xcode 9를 사용하여 모든 것을 다시 컴파일해야합니다. – BonanzaDriver

+0

나는 당신의 문제가 있었고, 아마도 그것이 설정 문제인지 또는 컴파일러 버그인지 모를 때 해결할 것을 권합니다. – Mozahler

+0

@Mozahler 외부 모듈을 사용하면 Xcode 9.1을 사용하여 모듈을 컴파일하기 만하면됩니다. – PMIW