본문 바로가기
Tool&Util/Xcode

Xcode4 - Project Rename

by 백룡화검 2012. 9. 26.

출처 : http://wkqqn.tistory.com/60


** 개인적 메모입니다. 태클 사절 **

iOS  프로젝트를  몇 개 진행 한 후 부터 사업팀에서 기존 프로젝트를 기반의 기획을 하는 경우가 생겨서 기존 프로젝트를 다른 이름으로 변경해서 작업해야하는 이슈가 종종 발생하기 시작했다....-_-;
코드가 잘 나온거라면 재사용을 좀 용이하게 하겠지만...아직 저급 수준의 iOS 개발이라 코드를 정규화하거나 라이브러리화해서 사용하기는 좀 무리고...사업팀에서도 모듈이나 라이브러리 제작의 일정은 인정해 주지 않는다.
하다 못해서리..변경된 기획안을 달라고 화면 기획팀장이 뭘 그딴걸 요구 하냐는 식이니....... 쓰다보니...완죤 다른 얘기를 하네..젠장..

암튼 작년 중순쯤 만든 만화앱을 이번에 다른 이름의 만화앱으로 만들면서 뎁스를 추가하고 UI를 변경하는 기획이 나왔다. 기존 만화앱에다 뷰 컨트롤로 하나를 추가되고, 메뉴구조가 변경되고, 전체 이미지가 사이즈는 동일하면서 색상만 변경된다. 이런 경우 프로젝트를 새로 진행하기는 무리고 기존 프로젝트를 copy&paste 해서 새로운 프로젝트로 이름을 변경해서 진행하고 싶은데 구글링을 해보면 여기저기 많은 방법이 있어서 여러 방법으로 해봤지만 이클립스의 리펙토리가 안드로이드의 package rename tool 처럼 자동으로 해주는 방법이 없다..

Xcode 에서는 여기저기 수작업을 해줘야 하는 부분이 있어서 나중에 까먹고 구글링 하지 않기 위해서 남긴다.

** ViewTest ->  ViewRename ** 

0. 기존 프로젝틀 copy&paste (여기서 루트 디렉토리명을 바꾸고 싶으면 변경).
1. Related Item( command + 1) 창의 맨위 프로젝트 선택 후 Show file inspector - Identity 항목 ProjectName 변경.
 ---------- 여기까지만 해도 프로젝트 리네임 성공 ----------------
2. 리소그 구조를 변경하기 위해서는 아래 내용 참조...


기존 프로젝트  ViewTest 를 Finder 본 디렉토리 구조다.

ViewTest.xcodeproj  를 선택하여 Xcode 실행.

프로젝트를 실행 시키면 아래와 같은 Xcode 화면을 볼 수 있다. 


왼쪽부터 빨간 박스가 있는 항목을 선택하고 마지막 빨간 박스의 
ProjectName 의 텍스트필드에 원하는 프로젝트 이름을 입력한다.

ViewTest -> ViewRename 로 변경하고 Enter 하면 "Rename project content items?"라는 창이 나온다.


 Rename 을 선택하면 인디케이터가 돌면서 리스트에 있는 아이템 이름을 변경한다.
여기까지 기능은 음.....이클립스의 리펙토링 같다.

변경된 Xcode 를 보면..


파란색 박스 부분의 이름이 ViewRename 으로 변경되어있는 것을 볼 수 있다.
그런데 문제는 빨간색 박스 부분의 내용을 보면 ViewTest/.. 로 표시되는 부분이 아직 남아있다..
이부분들의 경우는 Finder 의 디렉토리 경로 패스들이다. 
Xcode 의 특정 같기도 한데...리소스들이나 디렉토리를 프로젝트에서 레퍼런스 참조만 하고 있지..실제 프로젝트에서 
해당 파일을 직접 가지고 있지는 않는 것 같다.

Build Settrings 의 내용을 수정하기에 앞서 우선 리소스 폴더의 이름을 변경해 줘야 한다.
Xcode를 종료 후 Finder로 이동하여 ViewRename.xcodeproj 와 같은 위치에 있는 ViewTest 디렉토리의 이름을 ViewRename으로 변경하자.
그리고, ViewRename.xcodeproj 를 선택해서 Xcode를 다시 실행보면..


왼쪽 박스에 파일들의 연결을 찾을 수가 없어 다 빨간색으로 표시되는 걸 볼 수 있다.
그리고 Build Settings 내 에서 ViewTest 를 검색해 보면.
ViewTest/ViewRename-Info.plist
ViewTest/ViewRename-Prefix.pch 
두 항목이 ViewTest 를 path로 잡고 있는 걸 알 수 있다.

이 부분을 둘다  ViewRename/ViewRename-Info.plist, ViewRename/ViewRename-Prefix.pch 로 변경해 주고,
오른쪽 빨간 박스의 항목이 나올 수 있게 첫번째 박스의 맨위에 있는 ViewTest  폴더를 선택해 준다.
그럼, 오른쪽 빨간 박스가 나온다. 거기서 Path : Relative to Group 아래 있는 회색 테두리 박스 아이콘을 선택하면

'Choose a directory this group represents' 선택 창이 나온다.

그 창에서 해당 프로젝트의 리소스 폴더 였던 ViewRename폴더를 선택. 
GroupName 항목을 ViewRename으로 변경.


이제 Product - Clear하고 Build 해 보면 성공적으로 Build 되는 것 을 볼 수 있다.

정말 Project Name만 변경하고 리소스 폴더등을 변경하지 않고 사용하려면 처음에 진행한 Project Rename 항목만 처리해도 사용하는데 무방하다.