본문 영역

Develop/ETC2017. 9. 7. 13:25


불친절한 Xcode씨

Hybrid 방식이든 Native 방식이든 iOS 애플리케이션을 개발하는데 필수적인 Apple의 IDE(Integrated Development Environment), Xcode. 좋은 도구 임에는 분명하나 가끔은 Apple의 철학(고집?)이 너무 많이 반영된 것이 아닌가 하는 부정적인 시각으로 바라보게 되는 순간들이 종종 있다. 

대표적인 예는 최근 업데이트된 Xcode 8버전이다. Xcode 8버전에서는 iOS8 버전 이상만을 지원 한다. 물론 Apple답게, iOS 8 버전이하는 과감(?)하게 버렸다!.

최근 유지보수를 진행 중인 연합뉴스TV 모바일앱 (https://itunes.apple.com/kr/app/연합뉴스tv/id1084591457?mt=8)은 Xcode 7 버전으로 개발이 되었고, 이후 여러 프로젝트를 진행하면서 최신 버전의 iOS를 지원하기 위해 Xcode 8 버전으로 업그레이를 한 상황이었다.

Xcode 7 버전으로 개발된 연합뉴스TV 프로젝트를 Xcode 8 버전에서 로드하여 빌드하는 과정에서 (Xcode 버전 차이로 인해 발생하는 문제라는 힌트를 전혀 주지 않은 채) 수많은 알 수 없는 빌드 오류 들이 발생하였다. 

개발자로서 Xcode 정도 수준의 IDE에 기대하는 기본적인 편의 기능들이 여러가지가 있을텐데, 그중 기본적이며 필수적이라고 할 수 있는 것은 Backward Compatibility 관리 기능 일 것이다. Xcode 7 버전이든, 8 버전이든 어떠한 Warning도 없이 프로젝트 파일이 로드가 된다면, 당연 개발자는 Backward Compatibility가 보장된 것이라고 믿지 않을까? (나만 그럴 수도 ㅎㅎ) 만약 Backward Compatibility가 보장되지 않는다면, 최소한 프로젝트 로드 시 경고 정도는 뱉어줘야 되지 않을까?

아무튼 Xcode 7 버전으로 개발했다는 사실을 망각하고 Xcode 8 버전에서 빌드가 잘 되기를 바란 순진한 나 자신 부터 반성을 해야... ㅜㅜ


여러개의 Xcode 설치하기 

우선 여러 개의 Xcode를 설치하기 위해서는 다음과 같이 Xcode의 실행 파일명 변경이 선행되어야 한다.

  1. 먼저, Xcode가 실행 중이라면 종료.
  2. /Applications/Xcode.app 을 /Applications/Xcode_8.x.x.app 로 변경
  3. 관리자 비밀번호 팝업에서 비밀번호 입력 
  4. 추가로 설치할 Xcode의 .dmg 파일 준비 (https://developer.apple.com/download/more/ 에서 다운로드)
  5. 새로 설치된 Xcode의 실행 파일 이름 변경: /Applications/Xcode.app 를 /Applications/Xcode_7.x.x.app로 변경

Xcode-Select로 Xcode 설정하기

이와 같이 여러 개의 Xcode 버전이 설치되어 관리가 필요한 경우, xcode-select라는 CLI(Command Line Interface)를 통해 쉽게 관리가 가능하다. 별도의 설치 과정은 필요없다. Xcode가 설치될 때 번들로 설치되는 CLI 도구들 중 하나이기 때문이다. 두 개의 이상의 Xcode 버전에 대해 xcode-select를 통해 전환(switch) 및 설정이 가능한다, 기본적인 xcode-select 사용법은 아래 링크를 참고하자.

https://developer.apple.com/legacy/library/documentation/Darwin/Reference/ManPages/man1/xcode-select.1.html


언제나 그렇듯, 기본적인 사용법은 --help 옵션을 통해서도 확인이 가능한다.

먼저 현재 설정된 Xcode를 화면에 출력하기 위해서는 아래와 같이 -p (또는 --print-path) 옵션을 사용한다. 아래 예시 화면에서는 7.3.1 버전으로 설정이 되어 있는 것을 확인할 수 있다.

이번에는 다른 버전의 Xcode로 전환하기 위해 -s (또는 --switch) 옵션을 사용해보자. (설정 변경에는 root 권한이 필요하다.)

설정이 제대로 변경되었는지 확인하기 위해 다시 -p 옵션을 이용하여 결과를 확인한다.

To Dear Smartlink Developers: Meteor에서 Cordova를 이용하여 iOS 하이브리드 프로젝트를 진행할때 meteor build 컴맨드 실행시 현재 설치되어 있는 Xcode 버전 중에서 xcode-select로 설정된 CLI 빌드 도구를 이용하여 build가 진행된다. 그러므로, 기존 Xcode 7 버전 이하 프로젝트를 meteor build를 통해 iOS 앱을 빌드할 때는 반드시 xcode-select를 통해 해당 Xcode 버전이 설정해야만 한다.




작성자

account_circle
grooveslap

댓글 영역