에러(error)

failed to load project at '.xcodeproj' incompatible project version

 


개발 환경(platform)

iMac, Xcode 9.2 (9C40b)


 

원인(cause)

Xcode는 프로젝트 내에 있는 project.pbxproj 파일 내용을 읽어서 실행시키는데, project.pbxproj 파일 안에는 프로젝트에 대한 설정값들이 포함되어 있다. 위 에러가 발생한 원인은 바로 이 파일을 읽인 후, 프로젝트를 로딩하던 중에 발생한 것이다. 그리고 정확히 그 내용 중 프로젝트 버전(project version)때문에 발생한 문제이다.

 

현재, PC에 설치되어 있는 Xcode의 버전은 9.2이다. 하지만, 지금 실행하려는 프로젝트개 처음부터 내가 만든 것이 아니고, 다른 사람이 만든 프로젝트를 가져다가 실행하려던 것이었다. 그런데, 그 사람의 Xcode 버전은 나보다 높은 9.3이상의 다른 버전이었던 것이다. 이건 마치 한글 2010으로 편집한 hwp 문서를 한글 2002에서 열지 못하는 것과 같은 상황이다.

 


해결(solution)

[해결방안1] 해결책의 최고는 똑 같은 개발환경을 맞추는 것이다. 편법을 써서 Xcode 9.2에서 실행시킬 수 있게 만들더라도, 실행시키려는 프로젝트가 최신 iOSAPI들을 사용하고 있을 것으로 추정되기 때문에, 분명 추가적인 작업이 더 필요할 것이다. 따라서 Xcode 버전을 9.3이상으로 버전업하는 것이 제일 속편하다.

 

[해결방안2] 하지만, 내 경우처럼 빌드(Build)할 필요는 없고, 코드만 보고 싶어하는 경우라면, project.pbxproj 파일 내용을 수정해서 열 수 있다. 이 파일 내용 중 objectVersion 50에서 48로 변경하면 열 수 있다. 48Xcode 9.2 이하를 의미하고, 50Xcode 9.3 이상을 의미하기 때문이다. 에러는 동일하지만, 현재 내 경우랑 개발환경이 다를수도 있으니 아래 몇가지 정보를 남겨둔다.

 

버전 정보

For Xcode 10.0 / compatibilityVersion: "Xcode 10.0" / objectVersion :51

For Xcode 9.3+ / compatibilityVersion: "Xcode 9.3" / objectVersion :50

For Xcode 8.0-9.2 / compatibilityVersion: "Xcode 8.0" / objectVersion: 48

For Xcode 6.3-7.3.1 / compatibilityVersion is "Xcode 6.3" / objectVersion is 47

 

실제 변경되어야 하는 내용

.xcodeproj 파일 우클릭 > 패키지 내용 보기 > project.pbxproj 파일 내용 수정

project.pbxproj

. . .

objectVersion = 50 ß 48로 변경

. . .