xcode 4 프로젝트 및 실제 폴더 이름 바꾸기


119

Xcode 4에서 프로젝트 이름을 바꾸는 방법을 알고 있지만 소스 폴더의 이름을 어떻게 바꾸나요? 문제는 Xcode에서 프로젝트 이름을 변경하면 Xcode 내에서만 이름이 변경된다는 것입니다 (이전에 비해 진행 중임).하지만 Xcode가 파일 시스템의 폴더 이름을 변경하지 않는 이유는 알 수 없습니다.


폴더 이름을 변경해 보셨습니까?
David Brown

2
내 친구가 있는데 프로젝트 파일의 모든 파일이 누락되었습니다. 모든 파일은 굴절이 없기 때문에 모두 읽음으로 표시됩니다. 그러나 나는 영혼을 찾았습니다-내 대답을보십시오. 답장 해 주셔서 감사합니다
Chris G.

답변:


259

텍스트 편집기에서 pbxproj 파일을 직접 편집하지 않고도 Xcode 내에서이 작업을 수행 할 수 있습니다!

방법은 다음과 같습니다.

  1. Finder에서 소스 폴더의 이름을 변경하십시오. 가상 (노란색) 프로젝트 폴더가 가리키는 실제 폴더가 변경 될 때 Xcode가 자동으로 감지하지 않으므로 해당 폴더 내의 모든 파일이 Xcode에서 빨간색으로 바뀌기 때문에 처음에는 프로젝트가 중단됩니다. 걱정하지 마세요. 3 단계에서 수정하겠습니다.

  2. Xcode에서 왼쪽 사이드 바에있는 (현재 깨진) 가상 폴더를 클릭하고 Finder의 이름과 일치하도록 이름을 바꿉니다 (실제로 원하는 이름으로 부르거나 이름을 바꾸지 않을 수 있지만, 그것은 제정신이 아닙니다. ). 폴더 안의 빨간색 파일은 수정되지 않지만 괜찮습니다.

  3. Xcode의 오른쪽 사이드 바에서 아래 스크린 샷에 표시된 아이콘을 클릭하여 파일 대화 상자를 불러옵니다. 이전에 이름을 바꾼 폴더를 선택하십시오. 그러면 가상 폴더가 디스크의 실제 폴더와 다시 연결되고 내부의 모든 파일에 대한 링크가 자동으로 수정됩니다.

  4. 빌드 설정에서 이전 폴더 이름을 검색하고 찾은 항목의 이름을 수동으로 바꿉니다. 일반적으로 oldfolder / prefix.pch와 oldfolder / info.plist의 두 가지가 있지만 다른 것도있을 수 있습니다.

완료되었습니다!

여기에 이미지 설명 입력

편집 :이 옵션은 여전히 ​​Xcode 5에 있지만 기본적으로 숨겨져 있습니다. 이를 표시하려면 "텍스트 설정"패널 위의 속성에서 얇은 "ID 및 유형"헤더를 클릭하여 확장합니다.


훌륭합니다. 이름 바꾸기가 전체 프로젝트의 이름을 바꾸는 부분이라면 또 다른 단계가 있습니다. 오른쪽 상단 영역에서 "프로젝트 이름"을 변경하고 Xcode가 내부적으로 일치하도록 모든 이름을 바꿀 수 있도록합니다.
RedYeti 2013-06-20

1
모든 것이 훌륭하게 작동했고 프로젝트의 이름이 변경되었지만 상단의 빌드 메시지와 시뮬레이터의 이름은 여전히 ​​이전 이름을 그대로 유지하여이를 변경합니다. 제품 메뉴로 이동하여 구성표를 관리하고 구성표 이름을 변경합니다.
BlackTigerX

진실. 구성표를 삭제하고 구성표 자동 생성 버튼을 눌러도됩니다.
Nick Lockwood 2013 년

누구나 xCode 5에서 이것을 수행하는 방법을 알고 있습니까? 더 이상 마법 버튼이 보이지 않습니다. :(
Jason

아직 거기에 숨겨져 있습니다. 검사기에서 "Identity and type"이라는 행을 클릭하여 확장해야합니다. 그것을 알아내는 데 약 20 분이 걸렸습니다!
Nick Lockwood 2013

112

나는 그것을 수십 번했다 :

  • Xcode 프로젝트 네비게이터에서 제목을 클릭 한 다음 편집하여 프로젝트 이름을 변경합니다.
  • Xcode를 닫습니다.
  • 소스 폴더의 이름을 바꿉니다.
  • Finder에서 .pbxproj텍스트 편집기를 사용하여 프로젝트 번들 (컨텍스트 메뉴 "패키지 내용보기") 내의 파일을 엽니 다 .
  • 원래 폴더 이름과 일치하는 항목을 검색 하여 새 폴더 이름으로 바꿉니다.
  • 파일을 저장하십시오.
  • Xcode 프로젝트를 엽니 다.

3
프로젝트 이름을 변경 한 후 그냥이 일을 기억
아람 Kocharyan

나는 당신의 지시를 따르고 실패합니다. 문제는 "원래 폴더 이름을 검색하여 새 폴더 이름으로 바꾸는 것"에 있다고 생각합니다. 이 단계에 대한 자세한 지침을 제공 할 수 있습니까? 감사합니다
Philip007

검색 및 바꾸기 방법은 선택한 텍스트 편집기 또는 도구에 따라 다릅니다. 제 경우에는 vim : <ESC> : % s / old / new / g <ENTER> 프로젝트 파일에 이름이 충돌하는 다른 것이 있으면 실패 할 수 있습니다.
djromero

@madmw에게 감사드립니다. TextEdit를 사용하고 있습니다. 검색 및 바꾸기를 수행하는 동안 "포함"속성을 "전체 단어"로 바꾸는 것이 트릭이라고 생각합니다. 그리고 아래에 자세한 지침을 게시합니다.
Philip007

치료 효과가 있습니다! 예를 들어 정적 라이브러리와 같은 대상 폴더의 이름을 바꿀 때 내 스키마를 엉망으로 만들고 접두사 헤더 및 정보 plist 파일의 이름도 바꿔야했습니다.
Tim Potter

12

작업 : Xcode와 Finder에서 "Play"의 이름을 "Play2"로 변경합니다.

이것을 변경하십시오 :

여기에 이미지 설명 입력

이에:

여기에 이미지 설명 입력

단계 :

// 무엇보다 먼저 Finder에서 프로젝트를 백업하십시오!

  • Xcode 프로젝트 탐색기에서 프로젝트 이름 바꾸기 // 프로젝트 이름을 클릭 한 다음 Enter 키를 누릅니다.
  • Xcode 프로젝트 탐색기에서 그룹 이름 바꾸기 // Finder의 폴더 이름에 영향을주지 않음
  • Xcode 닫기
  • Finder에서 외부 폴더 (이미지의 왼쪽 열) 이름 바꾸기

// 위의 모든 단계는 간단하고 부작용이 없습니다. // // 이제 까다로운 부분이 있습니다. Finder (.xcodeproj와 동일한 수준에있는 폴더)에서 내부 폴더 (이미지의 중간 열) 이름을 바꿉니다.

  • Xcode를 닫힌 상태로 유지하면서 Finder에서 내부 폴더 이름 변경
  • .xcodeproj를 마우스 오른쪽 버튼으로 클릭하고 "패키지 내용 표시"를 선택합니다.
  • Mac TextEdit로 .pbxproj 파일 열기
  • 모든 "Play"를 검색하여 "Play2"로 바꿉니다. 모든 것이 올바르게 진행되도록하려면 검색 창 왼쪽 끝에있는 화살표를 클릭하고 검색 속성을 수정합니다. "포함"을 "전체 단어"로 변경하고 "대소 문자 무시"를 선택 취소합니다.
  • .pbxproj 파일 저장
  • Xcode 프로젝트를 열고 실행

4

XCode4 (파일 폴더 포함)에서 프로젝트의 이름을 효과적으로 바꾸는 방법은 다음과 같습니다.

  1. 문제를 방지하기 위해 XCode에서 열려있는 모든 프로젝트를 완전히 닫습니다.
  2. 문제의 프로젝트를 새 폴더에 복사합니다 (중요 : 이전 프로젝트의 백업 유지).
  3. 프로젝트 열기
  4. XCode4에서 프로젝트 자체의 이름을 바꾸고 (프로젝트 이름을 두 번 클릭) 이름을 변경하고 단계를 따릅니다 (모두 예).
  5. 제품으로 이동하여 구성표를 관리하고 구성표 이름을 변경합니다 (구성표 이름을 두 번 클릭).
  6. 프로젝트를 닫으십시오 (완전히 닫혀 있는지 확인하십시오. 그렇지 않으면 다음 단계가 작동하지 않습니다)
  7. Finder에서 Project 폴더로 이동하여 .xcodeproj 파일을 마우스 오른쪽 버튼으로 클릭 한 다음 "Show Package Contents"옵션을 선택합니다.
  8. 그런 다음 .pbxproj 파일을 마우스 오른쪽 버튼으로 클릭하고 TextEdit로 엽니 다.
  9. 프로젝트가 존재했던 폴더 이름 (새 프로젝트 이름의 이전 프로젝트 이름)의 모든 항목을 바꿉니다.
  10. 파일 저장
  11. 프로젝트를 다시 열고 빌드하십시오!

9 단계에 대한 자세한 지침을 제공 할 수 있습니까?
Philip007

2

먼저-Xcode 프로젝트의 이름을 바꾸지 마십시오 !!!

필요한 경우 아래에있을 수 있습니다. 작동하지 않고 새 프로젝트를 만들고 기존 파일에서 모든 것을 복사하기 시작했습니다. Xcode는 너무 아아 .... 파일 이름을 "이름"에서 "이름"으로 바꾸는 것과 같이 비생산적인 것들이 너무 많습니다. 글쎄요, 재미있게 보내세요.

이 문제에 대한 답이나 해결 방법을 찾았습니다. "패키지 내용 표시"를 마우스 오른쪽 단추로 클릭하여 pbxproj 파일을 열고 거기에서 project.pbxproj 파일을 편집합니다. 경로 및 기타 항목이라는 참조의 이름을 바꿔야합니다. 폴더 이름에 "/"가 추가되었습니다.

그게 다야. 도움이되기를 바랍니다.


2
어제 프로젝트 이름을 변경했는데 제대로 작동했습니다. 나는 Xcode가 "ahh"라는 것에 동의한다. : D
manmal

이를 수행하는 완벽하게 안전하고 지원되는 방법이 있습니다. 내 대답을 참조하십시오.
Nick Lockwood 2013 년

2

다음은 * .pbxproj 파일의 값을 바꾸는 동안 알아야 할 또 다른 문제입니다. 이전 폴더 이름이 FooBar이면 * .pbxproj 파일에 다음과 같은 항목이 있습니다.

경로 = FooBar

새 폴더 이름이 Foo Bar라고 가정합니다. 즉, 공간을 도입하고 있습니다. 그러면이 선은

경로 = "Foo Bar"

간단한 찾기 및 바꾸기 만 수행하면 결과는 Xcode에서 구문 분석 할 수없는 * .pbxproj 파일이됩니다. 새 폴더 이름에 공백이 있고 이전 이름에 공백이없는 경우 큰 따옴표를 포함해야합니다.


2

위의 다양한 답변을 살펴보고 스스로를 시도한 후 나 자신을 요약하고 있습니다. 현재 프로젝트 이름이 ProjAbc이고 이름을 ProjDef로 바꾸려고한다고 가정합니다.

  1. 해당 프로젝트의 Xcode를 종료하십시오.

  2. Finder에서 백업을 위해 ABOVE ProjAbc.xcodeproj 폴더를 복제합니다.

  3. Finder에서 새 프로젝트 이름에 맞게 필요하다고 생각되면 ABOVE ProjAbc.xcodeproj 폴더의 이름을 자유롭게 변경하십시오.

  4. Finder에서 소스 파일 폴더의 이름을 ProjAbc.xcodeproj와 평행하게 ProjAbc에서 ProjDef로 바꿉니다.

  5. ProjAbc.xcodeproj 용 Xcode를 엽니 다 (Project Navigator에서 가상 소스 폴더 ProjAbc의 모든 파일이 빨간색으로 표시됨).

  6. Xcode에서 왼쪽 사이드 바의 프로젝트 네비게이터에있는 (현재 깨진) 가상 폴더를 클릭하고 Finder-ProjDef의 이름과 일치하도록 이름을 바꿉니다. 아직 폴더 안의 빨간색 파일을 수정하지는 않지만 괜찮습니다.

  7. Xcode에서 (왼쪽 사이드 바에서 가상 폴더 선택) 오른쪽 사이드 바의 파일 속성에서 아래 스크린 샷에 표시된 아이콘을 클릭하여 파일 대화 상자를 불러옵니다. 파일 대화 상자에서 이전에 이름을 바꾼 폴더 (ProjDef)를 선택합니다. 그러면 가상 폴더가 디스크의 실제 폴더와 다시 연결되고 내부의 모든 파일에 대한 링크가 자동으로 수정됩니다. 그림은 파일 속성에서 폴더 아이콘을 클릭하는 위치를 보여줍니다.

  8. Xcode의 Project Navigator에서 ProjAbc 프로젝트 이름을 클릭하고 이름을 ProjDef로 바꿉니다.

    • "프로젝트 컨텐츠 항목 이름을 바꾸시겠습니까?"라는 메시지가 표시됩니다. "이름 변경"버튼을 클릭합니다.
    • "프로젝트 이름 바꾸기 및 유사한 작업 전에 Xcode가 자동 스냅 샷을 찍도록 하시겠습니까?"라는 메시지가 표시됩니다. "사용 안 함"또는 "사용"을 클릭하십시오. 그것은 중요하지 않습니다.
  9. Xcode에서 이제 ProjDef 대상 (Project Navigator의 프로젝트 ProjDef 내부) 내에서 "Build Settings"를 엽니 다. * -Info.plist 및 * -Prefix.pch 파일의 폴더 이름과 파일 이름을 모두 ProjAbc 대신 ProjDef를 포함하도록 변경합니다.

  10. Xcode의 프로젝트 네비게이터, ProjDef 가상 소스 폴더의 "지원 파일"에서 * -Info.plist 및 * -Prefix.pch 파일 모두 ProjAbc 대신 ProjDef를 포함하도록 다시 이름을 바꿉니다.

  11. Xcode 메뉴에서 Product / Scheme / Manage Schemes ...를 누르고 (또는 Xcode 왼쪽 상단의 Scheme Bar에서 "ProjAbc"> Scheme 이름을 클릭하고 "Manage Schemes ..."를 누릅니다) 대화 상자에서 Scheme의 이름을 ProjAbc에서 ProjDef로 전환 한 다음 "확인"버튼을 누릅니다. 프로젝트 이름이 한 단어로 구성되어 있다면 지금 바로 실행할 수 있습니다!

  12. Xcode에서 Supporting Files / *-Prefix.pch 파일의 맨 위 주석 줄을 편집하고 ProjAbc를 ProjDef로 바꿉니다 (2 회). 물론이 주석을 수정하는 것은 선택 사항입니다.

  13. Xcode를 종료합니다.

  14. Finder에서 ProjDef.xcodeproj를 가리키고 텍스트 편집기에서 엽니 다. (TextWrangler.app에서 열거 나 마우스 오른쪽 버튼을 클릭하고 팝업 메뉴에서 "Show Package Contents"를 누른 다음 TextEdit.app에서 project.pbxproj 파일을 편집합니다.)

  15. 텍스트 편집기에서 한 번 표시되어야하는 "ProjAbc"(전체 단어, 대 / 소문자 일치)를 검색하고 (단락 : / * 시작 PBXNativeTarget 섹션 * / 줄 : productName = ProjAbc;) "ProjDef"로 바꿉니다. 실제로 프로젝트는 어쨌든 실행될 수 있으므로이 단계는 선택 사항입니다.

  16. 프로젝트 이름이 "ProjDef Geh"와 같이 2 개 이상의 개별 단어로 구성된 경우 다음 단계를 수행해야합니다. 가상 소스 파일 폴더의 Finder 폴더에 대한 참조 검색-

    • 줄 검색 : path = ProjDef Geh;
    • 단락 / * ProjDef Geh * /에 한 번 나타납니다.
    • 다음 줄로 바꿉니다. path = "ProjDef Geh";
  17. 텍스트 편집기에서 저장하고 텍스트 편집기를 종료합니다.

  18. 그게 다야. 위와 같이 프로젝트 이름이 한 단어로 구성된 경우 11 단계 끝에서 바로 실행할 수 있습니다.


당신은 이것을 더 복잡하게 만들었습니다. 8 단계 (프로젝트 이름 변경)를 먼저 수행하면 4 단계 (소스 폴더 이름 변경) 전에 Info.plist 및 Prefix.pch 파일의 이름이 자동으로 변경되므로 9 단계와 10 단계를 건너 뛸 수 있습니다.
Nick Lockwood

0

위의 답변, 특히 Nick Lockwood의 답변이 정말 유용하다는 것을 알았습니다.

방금 Xcode 8에서 몇 개의 폴더 이름을 변경했고 두 가지 문제가 더 발생했습니다. A) "작업 복사 오류에서 누락" B) Core Data 충돌 .

이 두 가지 문제를 해결하는 방법 :

A) " 작업 복사본에서 누락 오류 "

아래 답변이 매우 유용하다는 것을 알았습니다. .Swift 3 / Xcode 8 Upgrade-작업 복사 오류에서 누락 된 100 개의 DerivedData 파일

기본적으로 Xcode 8에는 엄격한 소스 제어 기능이있어 위의 오류가 발생할 수 있습니다. 다음을 수행해야합니다.

  1. Xcode 파생 데이터를 정리합니다.
  2. 소스 제어로 이동하여 상태 새로 고침을 클릭하십시오.
  3. 소스 제어로 이동하여 커밋을 클릭합니다. 커밋 할 때 커밋 메뉴의 왼쪽 사이드 바에있는 모든 파일을 선택합니다 (오른쪽 클릭-> 모두 선택).
  4. 아마도 오류가 발생할 것입니다.
  5. 커밋 메뉴를 닫습니다.
  6. 상태 새로 고침.
  7. Xcode를 종료하여 프로젝트를 닫습니다.
  8. 프로젝트를 다시 열고 상태를 새로 고친 다음 다시 커밋하십시오.
  9. 이번에는 커밋이 작동합니다.
  10. 프로젝트-> 정리를 클릭하십시오.

이미 소스 제어를 활성화했다고 가정합니다. 그렇지 않은 경우 또는 내 지침을 따르지 않는 경우 제공된 링크에서 더 자세한 지침을 따르십시오.

B) 핵심 데이터 충돌

폴더 이름을 바꾸면 때때로 핵심 데이터가 망가집니다. 그 이유는 여러 가지가 있으며 다음은 제가 제안 할 수있는 몇 가지 수정 사항입니다.

  1. AppDelegate 모델 이름이 잘못되었습니다 . 제 상황이 그랬습니다. AppDelegate로 이동하여 let container = NSPersistentContainer(name: "YOUR CORE DATA MODEL NAME"). 이름이 정확한지 확인하십시오.

    향후 (이 게시물 이후 몇 년 후 Apple이 Core Data를 다시 변경할 때) 또는 Core Data의 이전 버전을 사용하는 경우 AppDelegate를주의 깊게 살펴보십시오. 핵심 데이터를 엉망으로 만드는 펑키 한 무언가가있을 것입니다.

  2. xcdatamodeld에 잘못된 모델 이름이 있습니다 . Finder로 이동하여 텍스트 편집기에서 .xcdatamodeld를 엽니 다.

다음을 확인하십시오.

<plist version="1.0">
  <dict>
     <key>_XCCurrentVersionName</key>
     <string>YOUR CORE DATA MODEL NAME.xcdatamodel</string>  <-- Make sure this is correct.
  </dict>
</plist>

자세한 내용은 여기 : 핵심 데이터 모델 파일은 이름을 바꿀 때로드되지 않습니다.

  1. 위의 두 가지가 작동하지 않으면 1) 엔티티를 삭제 한 다음 동일한 다른 엔티티를 추가하거나 2) xcdatamodeld를 삭제 한 다음 동일한 다른 데이터 모델을 추가합니다 (새 xcdatamodeld의 이름이 일치하는지 확인하십시오). AppDelegate 및 나머지 코드에있는 내용). 라이브 앱으로이 작업을 수행하지 마십시오. 또는이 작업을 수행하는 동안 코어 데이터를 올바르게 마이그레이션해야합니다.

0

프로젝트에 대한 소스 프로젝트의 이전 참조가있는 경우 프로젝트를 복제 할 때 (모든 변경 사항이 두 프로젝트 모두에 영향을 미침) 여기에 해결책이 있습니다.

  • 소스 프로젝트에서 프로젝트 복제
  • 참조 문제를 깨는 소스 프로젝트의 소스 폴더 이름을 바꿉니다.
  • 중복 proejct에서 모든 것이 빨간색으로 이동하여 프로젝트의 현재 폴더를 선택하십시오. (스크린 샷은 stackoverflow의 녹색 틱 답변으로 표시됩니다)

================================================= ======================

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.