에러(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에서 실행시킬 수 있게 만들더라도, 실행시키려는 프로젝트가 최신 iOS의 API들을 사용하고 있을 것으로 추정되기 때문에, 분명 추가적인 작업이 더 필요할 것이다. 따라서 Xcode 버전을 9.3이상으로 버전업하는 것이 제일 속편하다.
[해결방안2] 하지만, 내 경우처럼 빌드(Build)할 필요는 없고, 코드만 보고 싶어하는 경우라면, project.pbxproj 파일 내용을 수정해서 열 수 있다. 이 파일 내용 중 objectVersion을 50에서 48로 변경하면 열 수 있다. 48은 Xcode 9.2 이하를 의미하고, 50은 Xcode 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로 변경 . . . |