2013-07-09 4 views
0

Xcode의 작업 공간 찾기 및 바꾸기를 자주 사용합니다. regex와 결합하면 매우 강력합니다.찾기 및 바꾸기를위한 Xcode 프로젝트 파일 잠금 해제

그러나 30-40 개의 프로젝트가있는 작업 공간이 있으며 빌드 설정이 크게 변경되었습니다. 나는 Xcode로 건너 뛰기를 기대했고 블록을 맞았을 때 모든 프로젝트의 빌드 설정을 변경하기 위해 정규 표현식을 사용했다. 내 모든 Xcode 프로젝트 파일이 잠겨 있습니다. 따라서 정규식 찾기는 훌륭하게 작동하지만 대체 할 방법이 없습니다. 나는 심지어 그것을 미리 볼 수 없다. 내가 볼 수있는 프로젝트 파일에만 영향을줍니다. 나는 권한을 확인하기 위해 Finder를 열었고 그것들은 크게 열렸으며 OSX 파일 잠금은 모두 해제되어 있습니다. 그래서 이것은 Xcode 잠금 문제로 보인다. Xcode에서 일반 파일 (파일> 잠금 해제 ...)과 같은 방법으로 프로젝트 파일을 잠 그거나 잠금 해제하려고 시도했지만 이러한 옵션은 프로젝트에서 회색으로 표시됩니다.

누구나 전에이 문제가 발생 했습니까? 가능한 해결책은 30 개 이상의 프로젝트에 대한 업데이트 빌드 설정을 제출해야합니다.

+0

SCM을 사용하면 우연히 Perforce를 사용하지 않습니까? 기본적으로 P4 클라이언트 사양은 편집을 위해 체크 아웃 할 때까지 파일을 읽기 전용으로 유지하도록 설정됩니다. 그렇다면 클라이언트 사양에 'allwrite'옵션을 설정할 수 있습니다. –

+0

실제로 모든 지역. 이 프로젝트에는 SCM이 없습니다. –

+0

Bummer; 그러면 파일 시스템 사용 권한에 부딪 힐 수 있습니다. 터미널을 열고 .xcodeproj 파일을 탐색하고 ls -la를 실행합니다. 내용이 사용자 소유인지 확인하십시오. –

답변

1

위의 의견에서 내 가설을 확인하거나 논박하기 위해이 질문에 대해 좀 더 파고 들었습니다. Xcode는 실제로 찾기/바꾸기 작업과 관련된 파일의 디스크상의 데이터에 대해 직접 작동합니다. 파일 시스템 이벤트는 찾기/바꾸기 작업이 .pbxproj 파일을 열고 파일을 통해 작업하는 위에서 아래로의 정규식 활동을 시작하고 빌드 구성 및 설정 섹션에 대한 그룹 참조를 참조하여 궁극적으로 각각이 가리키는 디스크상의 데이터에 검색을 적용합니다 .pbxproj의 항목 중

당연히 사용자가 입력 한 정규식에 따라 검색의 커서 현재 위치에서 콘텐츠를 정확히 일치시키고 현재 검색의 컨텍스트를 파괴하는 대체 작업을 트리거 할 수 있습니다 . 이것은 조기에 검색을 종료 할 가능성이 가장 높지만 검색이 잘 포함되어 있지 않으면 무한대로 찾기/바꾸기 작업 (예 : '.'을 'aa'로 바꾸기)을 트리거 할 수 있습니다. 이 Xcode 찾기/바꾸기 동작과 관련하여 '자기 먹는 뱀'문제 전체를 막기 위해 Apple은 검색 작업 기간 동안 .pbxproj를 잠그기로 결정했습니다. 이것은 Xcode의 Find/Replace regex 도구를 사용할 수 없다는 것을 의미하지만, 여러 파일 편집기 (Textorrangler)를 통해 정규 표현식 찾기/바꾸기를 수행 할 수있는 훌륭한 텍스트 편집기가 있습니다 및 BBEdit). 이 편집기를 사용하면 마스터 프로젝트의 하위 폴더에서 파일 패턴 (예 : * .pbxproj)으로 검색을 필터링 할 수 있습니다. 프로젝트를 디스크에 구성하는 방법에 따라 공통 조상에서 시작하는 검색을 선택하면 Xcode에서와 마찬가지로 찾기/바꾸기 작업을 진행할 수 있습니다. 실제로 Xcode에서 식별 한 동일한 정규식 문자열을 이러한 도구에서 사용하여 필요한 변경 사항에 영향을 줄 수 있습니다.

대부분의 방대한 또는 자율적 인 편집과 마찬가지로 편집하려는 파일의 백업을 유지해야합니다 (프로젝트가 전적으로 소스가 아닌 소스 제어 프로젝트이므로 최소한 두 배로 진행됩니다). 변경 사항을 롤백해야합니다. 행운을 빌며 어느 길로 데려가는 길을 알았는지, 그리고 어떻게되었는지 알려주십시오.

+0

TextWrangler를 설치 했으므로 주석을 썼습니다. 자주 사용하지 않으므로 알아 내지 못할 것입니다. 다중 파일 찾기/바꾸기가 pbx 파일과 함께 작동하지 않고 반복적으로 충돌하는 것처럼 보였습니다. 마감일까지 필요하기 때문에 결국 손으로 끝내게되었습니다. –

+0

극단적 인 연구를 해줘서 고맙습니다. 다음에이 작업을 수행해야 할 때, 나는 TextWranger를 알아 내거나 다른 편집자를 움켜 쥐기 위해 특별한 노력을 기울일 것입니다. 나는 그들이 필요한 파일을 찾기 위해 독점적 인 .xcodeproj를 탐색 할 수있을 것이라고 기대하지는 않았지만, 하하를 부수 지 않으면 분명히 할 수있다. –