programing

Xcode 9 빠른 언어 버전(SWIFT_VERSION)

firstcheck 2023. 5. 13. 20:55
반응형

Xcode 9 빠른 언어 버전(SWIFT_VERSION)

나는 최근에 xcode를 버전 9로 업데이트했습니다. 8할마다 Xcode 8.x에서pod update그것은 나에게 코드를 스위프트 3으로 변환하고 오류를 해결하는 업데이트 코드를 보여줍니다.하지만 지금은 이런 오류를 일으키고 있습니다.

"Swift Language Version"(SWIFT_VERSION) 빌드 설정은 Swift를 사용하는 대상에 대해 지원되는 값으로 설정해야 합니다.이 설정은 빌드 설정 편집기에서 설정할 수 있습니다.

내가 시도한 이 오류에 대해Build Settings > Swift Language Version그리고 스위프트 3.2였는데 업데이트 호출이 알라모파이어와 같은 일부 포드를 다시 설치하고 코드를 스위프트 3으로 변환하기 위해 Xcode 8.x를 설치하라고 하는데 최신 Xcode로 추가 버전을 설치해야 합니까?그렇다면 Xcode 8을 Xcode 9와 함께 설치하려면 어떻게 해야 합니까?

질문에 대한 답변:
Apple 다운로드 포털에서 Xcode 8.x를 다운로드하거나 Xcode 8.3.3을 다운로드할 수 있습니다(또는 다음을 참조하십시오).프리미엄 개발자 계정(애플 ID)이 있는 경우 이전 버전의 Xcode를 다운로드할 수 있는 위치).Xcode 9와 Xcode 8.x를 모두 단일(mac) 시스템에 설치하고 작업할 수 있습니다.(확인하십시오.Command Line Tools두 버전의 Xcode를 모두 지원하여 터미널과 함께 작동합니다('명령줄 도구' 설치 방법 참조).


힌트: 코드 Xcode 9 호환 Swift 버전(Swift 3.2 또는 4)을 마이그레이션하는 방법
는 Xcode 9에서 변환합니다.Swift 3.0Swift 3.2/4.0이면, 8 를 3 합니다.

이것은 Xcode 9가 마이그레이션 중에 3.0 미만의 Swift 언어를 식별하는 경우 표시되는 일반적인 오류 메시지입니다.

여기에 이미지 설명 입력


Swift 3.2는 Xcode 9 및 Xcode 8에서 모두 지원됩니다.

Project ► (프로젝트 대상 선택) ► Build Settings ► (Searchbar에서 'swift' 입력) Swift 컴파일러 언어 ► Swift Language Version ► Language list를 클릭하여 엽니다.

여기에 이미지 설명 입력



Xcode 8을 사용하여 소스 코드를 Swift 2.0에서 3.2로 변환한 다음 Xcode 9(Swift 3.2 또는 4)를 계속합니다.


코드를 보다 쉽게 마이그레이션하려면 다음 단계를 따르십시오(Xcode Tool에서 지원하는 최신 버전의 swift로 변환하는 데 도움이 됩니다).

Xcode: 메뉴:▶ 비밀 ▶ 현재의 Swift 구문으로 편집

여기에 이미지 설명 입력

Xcode 8을 사용하여 생성되고 현재 Xcode 9에서 시작되는 Objective C Projects의 경우 질문에 언급된 것과 동일한 오류를 보여주고 있습니다.

이 문제를 해결하려면 아래 이미지와 같이 빌드 설정에서 + 버튼을 누르고 사용자 정의 설정 추가를 선택합니다.

빌드 설정

된 새 에 그런다새행추니다합을 합니다.SWIFT_VERSION 키와 열와같이쇠같이.3.2아래와 같은 값으로

여기에 이미지 설명 입력

그것은 객관적인 c 프로젝트의 오류를 수정할 것입니다.

저는 프로젝트에 코어 데이터 모델 파일을 추가한 후 Xcode 10에서 새로운 Objective-C 프로젝트를 생성한 후에 이것을 받았습니다.

이 문제를 해결하는 두 가지 방법을 찾았습니다.

  1. The Easy Way: 핵심 데이터 모델의 File Inspector(-)1를 열고 언어를 Swift에서 Objective-C로 변경합니다.

핵심 데이터 모델 언어 변경

  1. 더 길고 더 위험한 방법

모델에는 다음 행이 있는 "내용" 파일이 포함되어 있습니다.

<model type="com.apple.IDECoreDataModeler.DataModel" documentVersion="1.0" lastSavedToolsVersion="14460.32" systemVersion="17G5019" minimumToolsVersion="Automatic" sourceLanguage="Swift" userDefinedModelVersionIdentifier="">

에 그안이 .sourceLanguage="Swift" 엔리트로 합니다. 로 변경합니다.sourceLanguage="Objective-C"그러면 오류가 사라집니다.

"내용" 파일을 찾으려면 다음을 마우스 오른쪽 단추로 클릭합니다..xcdatamodeldXcode에서 "Show in Finder(파인더에 표시)"를 수행합니다. 버튼으로 하여 " Package Contents" (Finder) "Show Package Contents (Finder)를 실행합니다.

또한: 모델의 언어를 변경하면 Xcode가 Swift에서 관리 개체 하위 클래스 파일을 생성하지 못합니다.

이 문제는 기존 프로젝트에 핵심 데이터를 추가할 때 발생할 수 있습니다.
다음 항목을 확인합니다.
<이름>/<이름>.xcdatamodeld/<Name>. 모델/contentsxcdata 파일/준
java.
이 파일에는 기본적으로 "SourceLanguage"로 설정되었을 수 있는 항목이 포함되어 있습니다."Objective-C"는 "Objective-C"입니다.

최신 swift convert 버튼 클릭 후 App target build 설정만 하면 됩니다 -> swift 언어버전 : swift 4.0,

이것이 도움이 되기를 바랍니다.

이 솔루션은 다른 방법이 없을 때 작동합니다.

저는 전체 프로젝트를 전환하는 데 일주일이 넘게 걸렸고 다음과 같은 해결책을 얻었습니다.

먼저 프로젝트에서 코코팟 의존성을 분리한 다음 프로젝트를 최신 빠른 버전으로 변환하기 시작합니다.

터미널의 프로젝트 디렉토리로 이동하여 다음을 입력합니다.

pod deintegrate

이렇게 하면 프로젝트에서 코코팟이 분리되고 프로젝트에 코코아 팟의 흔적이 남지 않습니다.그러나 동시에 xc 작업 공간과 포드 파일은 삭제되지 않습니다.그들이 참석해도 괜찮습니다.

이제 xcodeproj(xcworkspace가 아님)를 열어야 하고, 주요 프로젝트에서 cocoapods 의존성 메서드를 호출했기 때문에 많은 오류가 발생할 것입니다.

이러한 오류를 제거하려면 두 가지 옵션이 있습니다.

  1. cocoapods 라이브러리에서 사용한 모든 코드에 대해 설명합니다.
  2. 코코팟 라이브러리와 유사한 더미 메소드를 가진 래퍼 클래스를 만든 다음 호출합니다.

모든 오류가 제거되면 코드를 최신 빠른 버전으로 변환할 수 있습니다.

가끔 이상한 오류가 발생하는 경우 파생 데이터를 치료하고 다시 시도하십시오.

아마도 당신은 툴체인을 다운로드해야 할 것입니다.이 오류는 올바른 버전의 swift 컴파일러가 없을 때 발생합니다.

저의 경우 빌드 설정에서 2.x에서 4.0으로 swift 버전을 직접 변경한 후 경고 2개를 제외하고 모든 경고가 사라졌습니다.

이 경고는 다음과 관련이 있습니다.myprojectnameTests그리고.myprojectnameUITests폴더를 누릅니다.저는 모르고 Xcode 7에서 Xcode 9로의 직접 이민과 관련이 있다고 생각했는데, 이 문제를 해결할 수 없고 누락된 Xcode 8 버전을 설치해야 한다고 생각했습니다.

이 폴더를 삭제하고 모든 경고가 사라졌지만 다음을 사용하여 이 폴더를 다시 만들 수 있습니다.

file > new > target > (uitest or unittest extensions)

테스트 사례를 만드는 데 이 문서를 사용합니다. https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/testing_with_xcode/chapters/04-writing_tests.html

언급URL : https://stackoverflow.com/questions/46338588/xcode-9-swift-language-version-swift-version

반응형