programing

프로젝트를 열 수 없습니다...프로젝트 파일을 구문 분석할 수 없으므로 열 수 없습니다.

muds 2023. 5. 31. 18:33
반응형

프로젝트를 열 수 없습니다...프로젝트 파일을 구문 분석할 수 없으므로 열 수 없습니다.

저는 한동안 아이폰 앱을 만들기 위해 일하고 있습니다.오늘은 배터리가 부족할 때 작업을 하면서 소스 파일을 계속 저장하다가 전원이 꺼졌습니다.

이제 컴퓨터를 다시 연결하고 전원이 켜지면 프로젝트 파일을 열려고 하면 오류가 발생합니다.

프로젝트를 열 수 없습니다.

프로젝트 파일을 구문 분석할 수 없으므로 프로젝트...를 열 수 없습니다.

사람들이 내가 이것으로부터 회복할 수 있다는 것을 알 수 있는 방법이 있습니까?이전 프로젝트 파일을 사용하여 다시 삽입한 다음 컴파일을 시도했습니다.원하는 파일을 모두 찾지 못했기 때문에 펑키한 오류가 발생합니다.

가능하면 프로젝트를 처음부터 다시 만들고 싶지 않습니다.


편집

좋아요, 저는 이것과 작동했던 약간 오래된 프로젝트 파일 사이에 차이를 두었는데, 파일에 약간의 손상이 있다는 것을 알았습니다.(좋은 부품과 최신 부품을) 병합한 후에 이제 작동하고 있습니다.

SVN에 대한 좋은 점.저는 하나가 있지만, 그것과 XCode를 동기화하려는 약간의 펑크가 있었습니다.앞으로 더 많은 시간을 보내겠습니다.;-)

여기에 이미지 설명 입력

저는 이 문제를 접했고 선배가 해결책에 대해 알려주었습니다.

마우스 오른쪽 단추를 클릭합니다.projectname.xcodeproj여기에 줄을 대다projectname프로젝트 이름이 됩니다.이제 마우스 오른쪽 단추를 클릭한 후 패키지 내용 표시를 선택합니다.그 후에 당신의projectname.pbxproj텍스트 편집기에 파일을 입력합니다.이제 이제다음포라검색다니합인을는함이 된 .<<<<<<< .mine,=======그리고.>>>>>>> .r를 들어 저 에는 이렇게 .

<<<<<<< .mine
    9ADAAC6A15DCEF6A0019ACA8 .... in Resources */,
=======
    52FD7F3D15DCEAEF009E9322 ... in Resources */,
>>>>>>> .r269

이제 그것들을 제거합니다.<<<<<<< .mine,=======그리고.>>>>>>> .r 선을 됩니다.

    9ADAAC6A15DCEF6A0019ACA8 /* BuyPriceBtn.png in Resources */,

    52FD7F3D15DCEAEF009E9322 /* discussionForm.zip in Resources */,

이제 Xcode 프로젝트를 저장하고 열어 빌드합니다.모든 일이 잘될 거예요.

무함마드의 대답은 매우 도움이 되었습니다(그리고 저의 해결책으로 이어지는 데 도움이 되었습니다).그러나 병합 후 두 분기에서 변경 사항을 유지할 때 단순히 ======= <<<<<<<<>>>>를 제거하는 것만으로는 project.pbxproj(나에게는)의 구문 분석 문제를 해결할 수 없었습니다.

project.pbxproj 파일의 PBX Group 섹션(이 섹션의 시작은 /* Begin PBX Group 섹션 */)에서 병합 충돌이 발생했습니다.그러나 제가 직면한 문제는 project.pbxproj 파일의 다른 위치에서도 발생할 수 있습니다.

다음은 제가 직면한 병합 충돌을 단순화한 것입니다.

    <<<<<<< HEAD
          id = {
            isa = PBXGroup;
            children = (
                 id
            );
            name = "Your Group Name";
    =======
          id = {
            isa = PBXGroup;
            children = (
                 id
            );
            name = "Your Group Name";
    >>>>>>> branch name
            sourceTree = "<group>";
          };

병합 충돌 마커를 제거했을 때 다음과 같은 작업이 수행되었습니다.

          id = {
            isa = PBXGroup;
            children = (
                 id
            );
            name = "Your Group Name";
          id = {
            isa = PBXGroup;
            children = (
                 id
            );
            name = "Your Group Name";
            sourceTree = "<group>";
          };

일반적으로 병합 충돌 마커를 제거하면 project.pbxproj 파일의 구문 분석 문제가 해결되고 작업 공간 무결성이 복원됩니다.이번에는 그렇지 않았습니다.

다음은 문제를 해결하기 위해 수행한 작업입니다.

          id = {
            isa = PBXGroup;
            children = (
                 id
            );
            name = "Your Group Name";
            sourceTree = "<group>";
          };

          id = {
            isa = PBXGroup;
            children = (
                 id
            );
            name = "Your Group Name";
            sourceTree = "<group>";
          };

저는 사실 첫 번째 PBX 그룹의 마지막에 2개의 라인을 추가해야 했습니다.

헤드 또는 병합 지점의 변경 사항을 취소했다면 구문 분석 문제가 발생하지 않았을 것입니다!하지만 저의 경우 각 분기에서 추가한 두 그룹을 모두 유지하고 싶었기 때문에 병합 마커를 제거하는 것만으로는 충분하지 않았습니다. 올바른 형식을 유지하기 위해 project.pbxproj 파일에 줄을 추가해야 했습니다.

따라서 병합 충돌을 모두 해결했다고 생각한 후 구문 분석 문제가 발생하는 경우에는 .pbxproj를 자세히 살펴보고 포맷 문제가 없는지 확인하는 것이 좋습니다!

코르도바는 당신이 공간이 있는 프로젝트를 만들 수 있게 해줄 것이고, Xcode는 어떻게 처리해야 할지 모르기 때문에 저는 똑같은 오류를 얻었습니다.

저도 비슷한 문제가 있었어요.

스크린샷 1

다음은 이 문제를 해결하기 위한 단계입니다.

  1. 다폴로이니다가 있는 합니다.projectName.xcodeproj.

    스크린샷 2

  2. 마우스 오른쪽 버튼을 클릭하고 '를 선택합니다.Show Package Contents은 다을사여파볼수있다습니목록을일음이 있는 파일 볼 수 입니다..pbxproj연장의

    스크린샷 3

  3. 를 선택합니다.project.pbxproj마우스 오른쪽 단추를 클릭하고 '를 사용하여 이 파일을 엽니다.Text Edit'.

    스크린샷 4

  4. 은 당은볼수것다니입있을 볼 수 입니다.<<<<<< .mine,============그리고.>>>>>>>>>> .r123이러한 충돌은 일반적으로 SVN에서 업데이트를 수행할 때 발생합니다.이 항목을 삭제하고 파일을 저장합니다.

    스크린샷 5

    스크린샷 6

  5. 이제 오류 메시지 없이 프로젝트를 열 수 있습니다.

Xcode 프로젝트 파일의 시각적 분석은 병합 후 오류를 찾는 데 도움이 되지 않았습니다.Xcode가 파일을 구문 분석하려고 할 때 syslog가 이러한 행을 발견했습니다.

2/7/14 12:39:12.792 PM Xcode[9949]: CFPropertyListCreateFromXMLData(): Old-style plist parser: missing semicolon in dictionary on line 4426. Parsing will be abandoned. Break on _CFPropertyListMissingSemicolon to debug.

그 프로젝트를 수정한 후에 OK를 열 수 있습니다.

프로젝트 파일의 구문을 분석합니다.터미널에서 프로젝트 내부를 확인합니다.

plutil -lint project.pbxproj

파서의 오류가 표시됩니다.

가능한 문제:일부 프로젝트는 git 병합 전략을 설정합니다.union프로젝트 파일의 경우.이 작업은 대부분의 경우 작동하지만 실패할 경우 프로젝트 파일이 자동으로 종료됩니다.은 이전은다있습다니에 ..gitattributes파일을 저장합니다.

최근에 원격 지점과 지점을 병합할 때 동일한 문제가 발생했습니다.그러나 위의 해결책 중 어느 것도 제 문제에 적합하지 않은 것 같습니다.

내 브랜치나 원격 브랜치의 project.pbxproj 파일 간에 병합 충돌이 없었습니다.하지만, 나의 프로젝트Name.xcodeproj 파일은 질문에 표시된 것과 같은 이유로 열기를 거부합니다.

제 해결책은 텍스트 편집기를 사용하여 project.pbxproj를 살펴보고 파일 구문에 불규칙성이 있는지 확인하는 것이었습니다(예: 추가로 곱슬곱슬한 괄호).병합된 파일과 비교하여 이전 파일에서 삽입되거나 삭제된 줄에 초점을 맞추어 이 프로세스를 가속화했습니다.자세히 살펴보니, 제 문제의 원인은 다음과 같은 행이 반복된 것이었습니다.

xxxxxxxxxxxxx /* [CP] Check Pods Manifest.lock */ = {

내 병합 파일에.이로 인해 닫히지 않은 곱슬머리가 발생하여 잘못된 pbxproj 구문이 발생했습니다.위 라인을 삭제한 것이 제 문제를 해결했습니다.

따라야 할 단계:- 1.projectName이 있는 폴더로 이동합니다.xcodeproj 2.마우스 오른쪽 단추를 클릭하고 '패키지 내용 표시'를 선택합니다..pbxproj 확장자가 있는 파일 목록을 볼 수 있습니다. 3.project.pbxproj를 선택합니다.마우스 오른쪽 단추를 누른 후 '텍스트 편집'을 사용하여 이 파일을 엽니다. 4.<<<<, ============ 및 >>>>>>>>를 볼 수 있습니다.이러한 충돌은 일반적으로 소스 트리/SVN/GITLAB에서 업데이트를 수행할 때 발생합니다.이것들을 삭제하고 파일을 저장하세요. 5.이제 오류 메시지 없이 프로젝트를 열 수 있습니다.

저도 방금 같은 문제에 부딪혔어요.나는 항상 git로 생성된 문자열을 제거했지만 Xcode는 여전히 .xcodeproj 파일 열기를 거부했습니다.하지만 모든 것이 정확했고, 빠진 괄호 등은 없었습니다.결국 는 Xcode를 그만두고 Xcode가 닫혔을 때 프로젝트를 열려고 했습니다.효과가 있었습니다.이것이 누군가에게 도움이 되길 바랍니다.

편집:

.xcodeproj 파일의 충돌을 해결하기 위해 다음과 같은 편리한 스크립트를 사용할 수 있습니다.

  1. 프로젝트 디렉토리에 빈 .sh 파일을 만듭니다(예: resolve_conflicts.sh ).
  2. 스크립트는 다음과 같습니다.

    file= 프로젝트 파일 =find -d . -name 'project.pbxproj'projectdir=echo *.xcodeproj="${="${projectdirproject.pbxproj tempfile="${projectdir}/project.pbxprojout" savefile="${projectdir/project.pbxprojectpbxproj"proj"pbj"pbj"pb.pbj"pb.pb"

    cat $projectfile | grep -v "<<<HEAD" | grep -v "=======" | grep -v "^>>>>> "> $repfile mv $repfile $projectfile

  3. sh 명령어 shresolve_conflicts를 사용하여 터미널에서 실행합니다.

프로젝트를 되돌립니다.pbxproj

svn revert --revert--

만약 당신이 합병하고 여전히 그것들이 무엇인지 모르는 문제가 생긴다면, 내 말은 명백한 차이의 흔적이 아니라는 것입니다.

<<<<<
....
======
>>>>>>

그런 다음 https://github.com/Karumi/Kin, 에서 프로젝트 파일을 분석하여 설치하고 사용할 수 있습니다.

kin project.pbxproj

프로젝트를 더 쉽게 이해하고 해결할 수 없는 오류(해시, 그룹 등)를 발생시켰습니다.


그리고 참고로, 이것은 또한 도움이 될 수 있습니다. 비록 제가 그것을 사용하지 않았지만, 당신의 프로젝트 파일 https://github.com/bloomberg/xcdiff 의 2가지 버전을 디파짓해서 이것이 당신에게 정말로 무슨 일이 일어나고 있는지를 알려줄 것입니다.

제 경험상, 저는 이를 위한 전술의 조합이 필요했습니다.

A-

1-명령줄에서 git merge를 사용하여 해결해야 할 파일 파악

2- 해당 파일에 git add or gitrm을 적절히 사용합니다.

3-기트 커밋을 사용하여 합병 완료

B-1- .pbxproj의 경우 <<<, >>>와 =====를 제거했습니다.

2 - 병합 오류를 찾기 위해 https://github.com/Serchinastico/Kin 을 사용했고, 스누피 프로토콜의 답변을 사용하여 이러한 문제를 해결했습니다.

참고: Kin이 보여준 유일한 오류는 다음과 같습니다.ERROR: line 1197:40 mismatched input '1' expecting NON_QUOTED_STRINGXcode 프로젝트를 열 수 있도록 수정할 필요가 없었습니다.

마치 Xcode로 새 프로젝트를 만들고 이전 디렉터리로 이동한 다음 모든 소스 파일, 닙 및 리소스를 새 프로젝트의 Xcode 파일 사이드바로 끌어다 놓아야 하는 것처럼 들립니다.사용자 지정 빌드 설정이나 대상에 대해 실제로 많은 작업을 수행한 경우가 아니면 몇 분 이상 걸리지 않습니다.또는 소스 컨트롤의 마지막 체크인으로 되돌리고 현재와 그때 사이에 변경된 코드 파일을 수동으로 추가합니다.

그리고 다시 작동하게 되면 백업 및 수정 제어를 위해 전복이나 수은과 같은 것을 사용하는 것을 검토해야 합니다.전자가 항상 예정된 위치에 있지는 않습니다. 일찍 그리고 자주 백업하십시오!

현재 프로젝트 폴더 이름과 체크아웃 모듈을 동일한 프로젝트로 변경합니다.그런 다음 현재 파일 변경 내용을 추가합니다.

project.pb 프로젝트 파일을 확인하고 프로젝트 파일의 작업 버전에 대해 diff를 수행합니다.

여기에 게시된 것과 같은 버전 제어 시스템에서 충돌이 발생할 때 종종 이런 일이 발생합니다. MAC iphone SDK에서는 사용자 파일을 버전에서 구문 분석할 수 없습니다.

행 사이에서 HEAD와 _HEAD를 찾고 project.pbxproj에서 이 단어를 삭제합니다.이 작업을 수행하기 전에 이 파일을 백업합니다.

PhoneGapTest >> 플랫폼으로 이동한 다음 폴더 iOS를 삭제하고 터미널로 이동한 다음 sudo phonegap buildios를 입력합니다. 그 후 프로젝트를 실행할 수 있습니다.

되돌리면 풀된 코드를 실행 취소할 수 있습니다.

꺼내기 요청을 실행 취소하려면 프로젝트 경로에 이 명령을 입력하십시오.

-->git merge --abort

만약 당신이 텍스트 ===나 << 또는 >>에서 나를 위한 like was 문제가 정말 간단하고 재미있었다면...저는 Xcode에서 앱 이름을 변경하지만 빌드 전에 UnityProjectSettings에서 변경하지 않습니다. 그게 문제였습니다.

서브버전은 거의 일주일 단위로 SVN을 실행한 후에 내 프로젝트 파일을 손상시킬 것입니다.저는 왜 이것이 지금 당장 이런 일을 하고 이 문제에 부딪혔는지 알아내려고 노력하고 있습니다.

언급URL : https://stackoverflow.com/questions/361799/unable-to-open-project-cannot-be-opened-because-the-project-file-cannot-be-pa

반응형