Xcode를 8.1 GM으로 업그레이드했고 이제 SwiftyJSON에 대해 아래 오류가 발생합니다. 다른 가져온 프레임 워크가 작동하는 것 같습니다. SwiftyJSON이 프레임 워크를 업그레이드 할 때까지 Swift 3에서 작동하도록 강제하는 방법이 있습니까? Carthage를 사용하여 프레임 워크를 가져 오거나 업데이트했습니다. 나는 또한 Use Legacy Swift language version
소용이 없도록 On 및 Off를 변경하려고 시도했습니다 .
Swift 3.0으로 컴파일 된 모듈은 Swift 3.0.1에서 가져올 수 없습니다 : Modules / SwiftyJSON.swiftmodule / arm64.swiftmodule
답변
SwiftyJson은 carthage에서 미리 컴파일하여 다운로드하고 있습니다. 미리 컴파일 된 다운로드는 Swift 버전 3.0입니다. 이로 인해 컴파일러는 버전이 올바르지 않다고 불평합니다. 다음 명령을 사용합니다.
carthage update --platform iOS --no-use-binaries
SwiftyJson (및 Carthage 내의 다른 모든 프레임 워크)은 로컬 버전의 Swift (3.0.1)를 사용하여 로컬에서 컴파일되며 컴파일러는 더 이상 불평하지 않습니다.
답변
DerivedData에서 앱 chache를 제거하고 다시 빌드합니다. 오류가 수정 될 수 있습니다.
다음과 같은 DerivedData 경로 :
~/Library/Developer/Xcode/DerivedData/
답변
응용 프로그램 폴더에 새로운 XCode 8.1 GM 패키지를 배치했는지 확인하십시오. 우리 중 한 명이 Carthage를 실행하여 종속성을 업데이트했지만 응용 프로그램 폴더에서 XCode 이전 8.0 응용 프로그램을 대체하지 않았을 때이 문제가 발생했습니다 (8.1 GM이 데스크탑에서 실행 중임).
: 당신은 당신이 터미널에 다음을 실행할 때 있는지 확인하려면 xcrun swift -version
이 반환 Apple Swift version 3.0.1
.
답변
Xcode
터미널에서 기본값 을 새 것으로 업데이트 하는 것이 저에게 효과적이었습니다.
1 단계 : 다음 명령을 사용하여 터미널에서 Xcode 버전을 최신 버전으로 업데이트합니다. Ref
sudo xcode-select -switch <path/to/>Xcode.app
2 단계 : 이제 carthage 업데이트 명령을 시도합니다 .
carthage update --platform iOS
답변
최신 업데이트를 제공하려면 :
Carthage는 2017 년 2 월 27 일에 0.20 버전 을 출시했습니다 .
Carthage는 이제 사용 가능한 사전 빌드 바이너리가 호환되는 경우 에만 사전 빌드 바이너리를 사용합니다 .
즉, --no-use-binaries
호환되지 않는 사전 빌드 프레임 워크를 피하기 위해 더 이상 사용할 필요가 없습니다 .
따라서 카르타고 버전이 다음 보다 더 크고 다음0.20
과 같은지 확인하십시오 .
carthage update --platform iOS
답변
@zirinisp가 말한 것처럼 :
- 다음 명령을 사용할 수 있습니다.
carthage update --platform iOS --no-use-binaries
- 다음 명령 사용 :
xcrun swift -version
Swift 버전보기 - 이렇게 :
Xcode->preferences->locations
파생 된 데이터를 지우고 데이터를 보관하려면 명령 줄 도구를 “로 변경하는 것이 가장 중요합니다.Xcode 8.1
“ - 다음 명령을 사용하면
xcrun swift -version
빠른 버전이 3.0.1임을 알 수 있습니다. - 세트
Use Legacy Swift Language Version = NO
도움이 되길 바랍니다
답변
-
Xcode가 / Applications 폴더에있는 경우 베타 / GM 버전을 이동하고 이름을 Xcode-beta로 지정합니다.
-
다음의 출력을 확인하십시오.
xcrun swift --version
터미널에서이 명령을 실행하면 Carthage가이 명령의 출력을 사용하여 로컬 Swift 버전을 결정하기 때문에 해당 출력이 앱에서 컴파일 할 빠른 버전과 일치해야합니다.
-
다음 명령을 실행하여 터미널에서 Xcode 버전을 최신 버전으로 업데이트하십시오.
sudo xcode-select -s /Applications/Xcode-beta.app/
-
iOS 용 라이브러리를 빌드하고 다음 명령을 실행하여 Carthage가 기존 (아직 호환되지 않는) 사전 컴파일 된 바이너리를 다운로드하지 못하도록합니다.
carthage update --platform iOS --no-use-binaries
-
청소 및 구축