[objective-c] 프로젝트 빌드시 CocoaPods 오류

CocoaPods를 사용하는 프로젝트를 빌드 할 수 없습니다. 다음과 같은 오류가 발생합니다.

diff: /../Podfile.lock: No such file or directory
diff: Manifest.lock: No such file or directory error:
The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.`

$ pod install잘 작동 Pods하고 내 작업 공간에 프로젝트를 추가하는 것 같습니다 . 시도 $ pod update했지만 도움이되지 않습니다.

PODS_ROOT설정되지 않은 것 같습니다 .

포드 파일 :

platform :ios, '6.0'

workspace 'Example.xcworkspace'
xcodeproj 'example/Example.xcodeproj'

pod 'TestFlightSDK', '~> 1.3.0-beta.5'
pod 'TestFlightLogger', '~> 0.0.2'
pod 'CocoaLumberjack', '~> 1.6.2'
pod 'Reachability', '~> 3.1.0'
pod 'SBJson', '~> 3.2'
pod 'MKMapViewZoom', '~> 1.0.0'



답변

내 Podfile을 크게 변경했을 때도 비슷한 문제가있었습니다. 내 해결책은 작업 공간 파일을 제거하고 pod install다시 실행하는 것이 었 습니다.

rm -rf MyProject.xcworkspace
pod install


답변

TLDR : 이것은 Xcode의 버그 일 가능성이 높으며 프로젝트를 닫았다가 다시 여는 것이 일반적으로 가장 간단한 해결책입니다. 다른 모든 것이 제대로 구성되어 있다고 가정 합니다 .


Pods디렉토리를 삭제 한 다음 실행할 때 가끔 같은 오류가 발생 합니다 pod install.

프로젝트 정보에 모든 것이 올바르게 나타납니다.

여기에 이미지 설명을 입력하십시오

그러나 대상의 사용자 정의 빌드 설정으로 이동하면 PODS_ROOT 항목이 완전히 없거나 하나 이상의 구성에 대해 비어 있습니다. 빌드시 다음과 같은 오류가 발생합니다.

여기에 이미지 설명을 입력하십시오

가장 간단한 수정 방법은 Xcode에서 프로젝트닫고 다시 여는 것 입니다.

대상의 빌드 설정으로 이동하여 모두를 필터링 하면 PODS_ROOT오류없이 항목이 표시됩니다 .

여기에 이미지 설명을 입력하십시오

이제 오류없이 빌드되어야합니다.


참고 : Cocoa Pods의 공식 AFNetworking iOS 예제에서도이 문제가 발생하여 Xcode의 버그라고 생각합니다.

다른 수정 방법은 구성을 수동으로 변경 None한 다음 원래 값으로 되 돌리는 것입니다.

여기에 이미지 설명을 입력하십시오


답변

대상으로 이동하여 “사용자 정의”섹션에서 Build Settings값이 PODS_ROOT동일한 지 확인하십시오 ${SRCROOT}/Pods.

여기에 이미지 설명을 입력하십시오


답변

업데이트 : a podfile.lock가 필요하며 버전 제어에서 무시 해서는 안되며 특정 포드 설치에 설치된 라이브러리 버전을 추적합니다. ( 레일 및 PHP 의존성 관리에 대해서는 각각 gemfile.lockcomposer.lock 과 유사합니다 ). 자세한 내용은 문서를 참조하십시오 . 신용은 cbowns에 간다 .


내 경우에는 내가 프로젝트를 위해 집 청소를하고 있었으며 (즉, 통합 테스트를 git 하위 모듈로 분기합니다. 중복 파일 제거 등) …. 최종 결과를 git remote repo. 내 repo를 복제 한 모든 클라이언트는 위의 오류로 고통 받았습니다. 위 의 Hlung의 의견에서 영감을 받아 존재하지 않는 파일에 대해 실행하려는 매달려있는 포드 스크립트가 있음을 깨달았습니다. 그래서 난 내 목표 구축 단계에 가서, 코코아 포드 (및 Hlung의 의견 그가 삭제 시사와 아무 한 나머지 모든 단계 삭제 Copy Pods Manifest.lockcopy pod resources광산 다른 이름이되었다 .. 어쩌면 B / I는 엑스 코드 5 사용하고 c를 있습니다 .. 요점은 매달려있는 빌드 단계를 삭제하는 것입니다.)


답변

따라서 CocoaPods가 내 프로젝트의 구성을 설정하지 않은 것 같습니다. Pods.xcconfig에서 찾은 내용을 기반으로해야 합니다 Pods/Target Support Files/Pods. 이것이 작동하려면 다음을 수행해야했습니다.

  1. 이 파일을 Xcode의 Xcode Project로 드래그하여 복사하지 않도록 선택하십시오.
  2. 이제 프로젝트에 참조가 있으며 구성을 설정할 수 있습니다.
    여기에 이미지 설명을 입력하십시오

그런 다음 관련되었거나 관련되지 않은 다른 빌드 오류가 발생했습니다. 에 정의 된 쉘 스크립트의 경로 Copy Pods Resources가 올바르지 않습니다.

"${SRCROOT}/Pods/Pods-resources.sh"

잘못 해결되었습니다. SRCROOT가 경로에 존재하지 않는 추가 디렉토리를 추가하는 것 같습니다. 그래서 Project 폴더의 경로를 하드 코딩했습니다.

이것은 내가 만들 수있었습니다.

왜 시간을 절약해야 할 많은 것들이 그것을 먹게 될까요?

참고 : 설명은 @abood의 답변을 참조하십시오.


답변

비슷한 문제가 있습니다.

  1. Xcode에서 :
    • 깨끗한
    • Xcode / 창 / 주최자 / 프로젝트 / 귀하의 프로젝트에서 파생 데이터 삭제
    • 포드 디렉토리 (구성 파일을 포함하고 참조뿐만 아니라 파일을 삭제하십시오!)
    • 프로젝트 / 구성 (버그 / 릴리스)의 모든 대상에 대한 포드 구성 파일에 대한 모든 참조가 제거되었습니다.
    • 모든 대상에서 “대상 / 빌드 단계 / 팟 리소스 복사”가 제거되었습니다.
    • 모든 대상에서 “타겟 / 빌드 설정 / 사용자 정의 / PODS_ROOT”를 제거했습니다.
  2. Xcode 종료
  3. 프로젝트 디렉토리에서 :
    • rm -rf 포드
    • (선택 사항) rm -rf YourProject.xcworkspace
    • rm -rf Podfile.lock
  4. 포드 설치
  5. Xcode에서 YourProject.xcworkspace를여십시오

답변

다음 단계를 수행하여 동일한 문제를 제거했습니다.

  • Xcode->Product->Clean Build Folder( alt 키를 누르고 제품을 보려면 를 십시오)
  • 탭을 열고 Xcode->Window->Organizer선택 Projects하십시오. 그런 다음 프로젝트를 찾고 프로젝트를 삭제 derived data 하십시오.