티스토리 뷰

오늘도 여전히 에러가 발생하여 

또 잡아왔습니다.

에러 전문 블로그 아닙니다

 

이게 좀 규모가 많이 큽니다. 

그래서 글이 길어요

천천히 하나씩 풀어가봅시다. 

 

 

에러 발생 상황 

Xcode 16 프로젝트를 Xcode15 에서 열때 발생했습니다.

(주로 더 낮은 버전으로 실행하려 할때 발생한다고 합니다.)

어이구야;;;

 

에러 내용 

The project at "경로"

cannot be opened

because it is in a future Xcode project file format. Adjust the project format using a compatible version of Xcode to allow it to be opened by this version of Xcode.

 

* 참고로 한 맥북은 아예 이런 오류 문구도 안뜨고 그냥 Crash 났습니다.

 

해결법 

**** XCode 16 이상에서 생성한 경우 *****

이게 설마 이렇게 연결될 줄 몰랐는데;;;;; 

Xcode 16 부터는 폴더색이 아래처럼 파란색으로 기본 생성됩니다.

네 이게 문제가 됩니다.....(파일 연결 방식의 차이라나...)

그래서 이렇게 회색으로 바뀌게 만들어 줄껍니다. 

 

하는 방법은 한 외국 글에서 발견했는데 (사이트를 다시 찾으려하면 안보이는 마법)

프로젝트 열어주시고 가장 상단 폴더에서 우클릭해주세요.

일단 저걸 누른다고 문제가 발생하진 않았습니다.

Convert to Groups 버튼을 눌러주시면 폴더 색들이 회색이 됩니다. 

Xcode 16 이신 분들은 반드시 해주세요!!!!

안그럼 아무리 해도 에러나요....이렇게....

(알고 싶지 않았어요 저도)

이러지마 제발

**** 그 이후 *****

이 방법은 큰 업데이트가 나올때마다 회자되는데 같이 해봅시다. 

 

패키지 내용 보기를 눌러주세요

여기서 패키지 내용을 보면 하단 처럼 보이실 겁니다. 

짜잔

여기서 project.pbxproj 파일을 열어주세요

이제 여기 스크롤하면 영어가 엄청 적혀있을꺼에요

이거 엄청 긴 분들도 계실겁니다.

지금부터 우리 파일에 있는 속성 값을 수동으로 낮춰 주시면 됩니다.

예를 들어 지금 밑줄친 부분의 값이 77 이면 Xcode15.2 에서 열리도록 56으로 바꿔주면 됩니다.

물론 하나만 바꾼다고 되는건 아니고 저의 경우에는 아래 항목들을 전부 바꾸었습니다.

항목 Xcode 15.2  Xcode 16.0 (16.0 , 16.1에서 사용 )
objectVersion 56 63 / 77 (16.0이랑 16.1 차이로 추정)
preferredProjectObjectVersion
56 63 (없을때도 있음 위랑 값 동일함)
LastSwiftUpdateCheck 1520 1600
LastUpgradeCheck 1520 1600
compatibilityVersion "Xcode 14.0"; "Xcode 15.0";(없을때있음)
CreatedOnToolsVersion 
15.2 16.0
IPHONEOS_DEPLOYMENT_TARGET
17.2 18.0
(본인이 설정한 값이 낮으면 건들필요 X)

* 참고로 프로젝트에 따라 바꿔야하는 속성이 더 있을 수 있습니다.

* 굳이 없는 걸 추가하실 필요는 없어요!

(저도 프로젝트가 3개인데 모양이 셋 다 달랐어요)

 

저 같은 경우 운이 좋게 옛날 버전의 Xcode 를 가진 맥북이 있어서 

바꿔야 할 값을 쉽게 확인했는데 

아니신 분들은 주의하셔야 할 것 같습니다.

(개인적으로 안 열린 분 컴퓨터에 새프로젝트를 만들어 저 값을 보는게 빠를것같아요.)

 

이 이후에 swift 는 문제가 하나더 발생할수있는데 

이건 좀 케이스마다 다릅니다. 

에러그만

애가 프로젝트 3개중 2개에서 발생했는데 하나는 다시 빌드하니까 갑자기 에러가 사라졌고 

하나는 특정 코드를 수정했습니다. 

let result = isTrue ? "Yes":"No"
// 이걸 아래처럼 수정했더니 에러가 사라졌습니다.
let result : String = isTrue ? "Yes":"No"

swift 컴파일러 버전 차이때문에 그렇다고는 하는데 정확히는 모르겠네요;;

 

일단 이 포스트의 주 목적은 에러 해결법이라 따로 작성은 안했는데 

원인에대해 정리를 따로 할지는 조금 고민되네요.

 

그래도 저처럼 고통(?)받으시는 분들을 위해 

올려봅니다. 

 

오늘도 파이팅입니다.  

 

댓글