Xcode 8 베타 3 레거시 Swift 사용 문제
Xcode 8 베타 3의 Objective-C 프로젝트가 있습니다.업데이트 후 빌드하려고 할 때마다 다음 오류가 발생합니다.
Swift를 사용하는 타겟에 대해 "Use Legacy Swift Language Version"(SWIFT_VERSION)을 올바르게 구성해야 합니다.[ Edit > Convert ]> [ To Current Swift Syntax ... ]메뉴를 사용하여 Swift 버전을 선택하거나 [Build Settings]에디터를 사용하여 빌드 설정을 직접 구성합니다.
이거 본 사람 있어요?Objective-C 프로젝트이므로 Swift를 구성하는 빌드 설정은 없습니다.또한 프로젝트 의존관계나 코코아팟이 Swift를 사용하고 있지 않은지 확인했습니다.제가 가지고 있는 유일한 해결책은 베타 2를 사용하는 것입니다.이 문제를 어떻게 해결할 수 있을까요?
또, OSX 10.12 Beta 2 를 실행하고 있습니다.
당신이 을 사용하고 , 을 할 .pod install할 수
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['SWIFT_VERSION'] = '3.0'
end
end
end
편집: 코코아팟 v1.1.1 이후를 사용하면 이 문제가 해결되었습니다. 거 마세요.ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES기본 프로젝트 목표에서 설정합니다.
방금 고칠 방법을 찾았어요
프로젝트 또는 라이브러리의 빌드 설정으로 이동하여 "Use Legacy Swift Language Version" 속성을 "Use Legacy Swift Language Version"에서 "Use Legacy Swift Language Version"
저는 한동안 이 문제를 무시하고 그 동안 다른 일을 하고 있었습니다.- 저는 마침내 제 문제에 대한 해결책을 찾았습니다.
프로젝트가 Objective-C이기 때문에 사용하고 있는 Pod 중 하나가 Swift를 사용하고 있는 것이 아닐까 생각하고 각 Pod를 확인했지만 모두 사용하고 있지 않았습니다.
마지막 해결책은 코어 데이터 모델이 [File]> [ New ]> [ NSManaged Object Subclass ]메뉴에서 수동으로 코드를 생성해도 Swift에서 코드를 생성하도록 설정되어 있는 것입니다.목표 C로 바꾸기만 하면 돼
이 문제는 Xcode-8.1에서도 볼 수 있습니다.확장이나 위젯과 같은 새로운 타겟을 추가하면 서드파티 라이브러리가 코코포드의 도움으로 새로운 타겟에 통합됩니다.팟 설치 후위와 같은 오류가 발생할 수 있습니다.
모든 라이브러리 빌드 설정에서 레거시 Swift 언어 버전 사용 설정 변경
아니요.
Xcode 8 이후를 사용하는 경우
- 빌드 설정으로 이동
- 기존 swift 언어 버전 사용 찾기
- 있음 - Swift 2.3
- 아니요 - Swift 3.0
포드 파일 끝에 아래 코드를 추가합니다.
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['SWIFT_VERSION'] = '3.0'
end
end
end
이전에 swift version 2.3으로 사용하던 objective-c와 swift code가 혼합된 프로젝트를 진행 중인데 swift 3으로 업그레이드한 후 프로젝트를 빌드할 수 없었습니다.Xcode가 상기 에러 메시지와 함께 불만을 표시.
제 project.pbxproj 파일에 아직 오래된 Swift 버전이 지정되어 있는 것 같습니다.swift 3.0.1이 지정되었습니다.
SWIFT_VERSION = 3.0.1;
다만, 3.0.2는 이미 인스톨 되어 있습니다.
$ xcrun swift -version
Apple Swift version 3.0.2 (swiftlang-800.0.63 clang-800.0.42.1)
Target: x86_64-apple-macosx10.9
soooo, project-pbxproj 파일의 Swift 버전을 다음과 같이 변경하여 수정했습니다.
SWIFT_VERSION = 3.0;
패치 수준 버전 지정자가 너무 구체적이었습니다.
저 같은 경우에는 다음 것만 하면 됩니다.
프로젝트 타겟=> 빌드 설정으로 이동=>"Swift Language 버전" 검색 => 현재 Swift 버전 값 제공
그것이 나의 문제를 해결했다.
저도 같은 오류가 발생했어요."Use Legacy Swift Language Version"을 검색하려고 했지만 찾을 수 없었습니다.Xcode 8.3.3 서핑을 너무 많이 해서 작업을 하다가 이 솔루션을 찾았고,
이것이 나에게 효과가 있었습니다.
Here are the steps.
1=> select your target from Xcode
2=> go to build setting
3=> search for "Swift Language Version"
4=> change it to swift 3. (or accordingly.)
프로젝트에서 이전 버전의 swift를 사용하는 경우 또는 다른 서드파티를 사용하는 경우 "Use Legacy Swift Language Version"을 "YES"로 설정합니다.프로젝트가 현재 swift 버전으로 업데이트되는 경우 "아니오"swift 버전을 구성하지 않으면 업데이트 및 설치 후 Pod 프레임워크에서 이를 지정해야 합니다.
실제로 "Legacy Swift"를 검색해야 미지정에서 "Yes"로 변경할 수 있었습니다.위 섹션까지 스크롤을 하면 변경할 수 없었습니다.이게 도움이 됐으면 좋겠어요.
내 프로젝트는 스위프트로 쓰여 있다.같은 에러가 발생했습니다.fastlane Xcode가 3.Xcode로 오류가 너무 많아요.수정과 디버깅에 시간이 너무 많이 걸려서 그 당시에는 그럴 가치가 없었기 때문에 이전 버전의 Xcode를 설치하기로 했습니다.2.3일 ★★★★★★★★★★★★★★★.fastlane beta더 이상 작동하지 않았어요알고 보니 명령줄 도구를 7.3으로 설정해야 했습니다.
같은 문제를 안고 있었는데, 다음과 같이 해결했습니다.
[ Project ]> [ Build Settings ]에서 다음을 수행합니다.
Always Embed Swift Standard Libraries = $(inherited) Use Legacy Swift Language Version = YES
그러면 내 Podfile:
config.build_settings['SWIFT_VERSION'] = '3.0'
이 세 가지 설정을 사용하면 모든 경고가 제거되어 컴파일이 정상적으로 수행되었습니다.
가장 불명확하고 실제로 컴파일이 진척된 것은 여기서 제시한 바와 같이 Podfile의 SWIFT_VERSION을 3.0으로 변경한 것입니다.
XCode 8 이후로는 Swift 3.x를 기본 스위프트버전으로 사용해도 Swift 2.3을 사용할 수 있습니다.swift 2.3을 사용하려면 Use Legacy Swift Language Version to YES 플래그를 Build Setting에서 켜면 XCode가 해당 프로젝트 대상에 Swift 2.3을 사용합니다.
복잡한 솔루션을 시도하기 전에 Cocapods를 처음 사용하는 경우 이 문제가 발생할 경우 기본적으로 확인해야 합니다.
다음과 같은 경우가 있습니다.
- 포드 파일을 다시 엽니다.
- 플랫폼 행에 '#'이 붙어 있지 않은지 확인합니다.최종적으로 다음과 같은 상태가 됩니다.
platform :ios, '10.1' # Put the right version and no #platform here use_frameworks! # For swift pod "MyPod" # Your mean pod :)
- 포드 파일을 저장하고 Xcode를 닫은 후 실행
pod install다시. - 프로젝트를 엽니다.xcworkspace
아마 그것 때문일 거야.
그렇지 않은 경우 위로 이동할 수 있습니다;-)
xcode 8.3.2로 업데이트한 후에도 동일한 문제가 발생했지만 "Use Legacy Swift Language" 옵션이 사라졌습니다.이것은 지금 변경할 수 있는 옵션인 것 같습니다.
Alarmofire와 다른 libs와 함께 이 수정을 사용했고 모든 것이 잘 작동합니다.
프로젝트용 프로젝트 빌드 설정으로 이동하여 아래 두 가지 작업을 수행합니다.
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES
And
Swift Compiler - Version = Swift 3
최신 버전으로 변경Swift 3.
오류가 해결되었습니다.
에러 수정이 해결되었다면, 마음에 들어 주세요.
Xcode 9 베타판.프로젝트 설정, 빌드 설정으로 이동하여 Swift Language 버전을 검색합니다.Xcode 9에서는 Swift 3.2 또는 Swift 4 중 어느 쪽을 사용하고 있는지 지정해야 합니다.
바꾸면ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES로.NO아직 동작하지 않습니다.이것은 xcode의 문제이지, 당신의 문제가 아니기 때문입니다.다음 단계를 수행합니다.
1. 변경ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES될 성질YES경고 표적에
2. 왼쪽 바에 swift 3.0으로 변경하는 것을 권장하는 경고가 표시됩니다.
3. 다음으로 다시 변경NO프로젝트를 재구축하면 xcode에 의해 변경 내용이 검출됩니다.NO!
이 경우 문제 해결!
다음 설정만 확인하면 됩니다.
파일 -> 워크스페이스 설정 ->
1 - "빌드 시스템 권장 사항에 대한 진단 문제를 표시하지 않음"을 선택합니다.
2 - 빌드 시스템을 레거시 빌드 시스템으로 설정(공유 워크스페이스)
3 - 빌드 시스템을 레거시 빌드 시스템으로 설정(사용 전 작업 공간)
언급URL : https://stackoverflow.com/questions/38446097/xcode-8-beta-3-use-legacy-swift-issue
'programing' 카테고리의 다른 글
| 내비게이션 기반 앱에서 푸시 및 팝 애니메이션을 변경하는 방법 (0) | 2023.04.14 |
|---|---|
| 마지막 git 커밋 주석 표시 (0) | 2023.04.14 |
| Python에서는 목록을 다른 목록과 인덱싱하려면 어떻게 해야 합니까? (0) | 2023.04.14 |
| WPF MVVM 응용 프로그램의 키보드 이벤트 (0) | 2023.04.14 |
| 에서 클립보드를 설정할 때 CLIPBRD_E_CANT_OPEN 오류가 발생합니다.그물 (0) | 2023.04.14 |



