아이폰 앱을 개발하다보면, 여러 이유로 하나의 프로젝트를 복사해서 프로젝트명을 바꿔야 할 때가 있다.
구글링을 해보면 다양한 방법들이 존재하고, 대부분 xcodeproj 컴포넌트(원래는 디렉토리) 안의 project.pbxproj 파일을 텍스트 에디터를 이용해 수정한다.
project.pbxproj 파일안에는 프로젝트에 등록된 모든 파일이 고유 id 와 함께 기록되어 있는 것을 볼 수 있으며, 자칫 잘못해서 수정에 실패해서 xcode 가 파싱을 제대로 하지 못한다면, 프로젝트를 다시 열 수 없게 된다.
약 5시간의 삽질 + 구글링 끝에, 가장 깔끔하다고 판단되는 솔루션을 찾았고, 적절히 동작하는 것을 확인했다.
물론, 직접 proejct 파일을 수정하지도 않는다.
원문 링크는 다음과 같다.
기록을 위해서, (아이폰 프로젝트 기준으로) 간단히 요약하면..
0. xcode 종료된 상태에서
1. 폴더를 복사하고, 새 이름을 정한다.
2. 폴더를 열고, .xcodeproject 파일 이름을 수정한다.
3. 수정한 파일을 연다. (프로젝트가 열림)
4. 왼쪽 Groups & Files 리스트에서 Targets 그룹 안의 target 을 더블클릭한다.
5. info 창의 General 탭에서 원하는 프로젝트명을 적는다.
6. Build 탭에서 Packaging 그룹 안의 Product Name 을 변경된 프로젝트명으로 바꿔준다.
7. 6 단계의 Debug / Release 및 기타 단계(ad-hoc, Distribution...) 도 모두 바꿔준다.
6. Build / Clean all targets 을 실행한다.
첨언하면,
Projects 그룹 안의 name.app 파일이 중복될 경우, 두개를 별도의 프로그램으로 인식하지 않고, 선행된 쪽의 결과물을 연결해서 가져오는 동작을 보여주고 있었다.
최초에는 Target 에서 Product Name 만 바꿨는데, 곰곰히 생각해보니, 배포때는 Products 의 .app 을 보내지 않던가.
또하나 중요한 부분은 7번 단계.
Debug 만 수정할 경우, Products 안의 파일명이 바뀌지 않아서, 위에서 언급한 build 결과물들을 공유하는 사태가 발생한다.
사실 이부분 때문에 고생을 좀 했는데, 결론은 모두 수정이 정답.
간만에 삽질이었다 ㅠ.ㅜ
-코나-
덧. 적고보니, 결국 build 탭에서 7번을 제대로 수행했으면 되었다는.......쿨럭.. ^^;;