Các lỗi của CocoaPods khi xây dựng dự án


178

Tôi không thể xây dựng một dự án sử dụng CocoaPods. Tôi nhận được các lỗi sau:

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 installdường như hoạt động tốt và thêm một Podsdự án vào không gian làm việc của tôi. Tôi đã thử $ pod updatenhưng điều này không có ích.

Có vẻ như điều đó PODS_ROOTkhông được thiết lập.

Podfile:

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'

3
Một "cài đặt pod" đơn giản khắc phục điều này :)
onmyway133

Quan trọng! [!] From now on use MyProject.xcworkspace.không phải là cũ `.xcodeproj '
Dawid Drozd

Khi bạn kiểm tra trong trình giả lập, chỉ có một màn hình trắng
desigNerd

Câu trả lời:


171

Tôi đã gặp một vấn đề tương tự khi tôi thực hiện các thay đổi lớn đối với Podfile của mình. Giải pháp của tôi là xóa tệp không gian làm việc và chạy pod installlại:

rm -rf MyProject.xcworkspace
pod install

17
Có nghĩa là cocoapods không được cài đặt đúng cách. chạysudo gem install cocoapods
vào

4
gem install cocoapodsthậm chí còn tốt hơn Hầu hết thời gian sudokhông cần thiết với đá quý.
PatrickNLT

5
Câu trả lời của bạn làm cho ngày của tôi. Tôi bị mắc kẹt trong đó hàng giờ. ngả mũ
shaikh

Cảm ơn vì điều này, nó đã sửa lỗi. FWIW, tôi đã gặp lỗi sau khi thực hiệngem update cocoapods
rounak

Đã sửa lỗi. Đã xảy ra lỗi khi thực hiện "cập nhật nhóm"
swebal

68

TLDR: Đây rất có thể là một lỗi với Xcode và đóng và mở lại dự án thường là cách khắc phục đơn giản nhất. Giả sử mọi thứ khác được cấu hình đúng .


Thỉnh thoảng tôi gặp lỗi tương tự khi xóa Podsthư mục và sau đó chạy pod install.

Tất cả mọi thứ xuất hiện chính xác trong thông tin dự án:

nhập mô tả hình ảnh ở đây

Tuy nhiên, khi tôi đi đến Cài đặt bản dựng do người dùng xác định của mục tiêu, mục nhập PODS_ROOT hoàn toàn bị thiếu hoặc trống đối với một hoặc nhiều cấu hình. Nguyên nhân gây ra lỗi sau khi xây dựng:

nhập mô tả hình ảnh ở đây

Cách khắc phục đơn giản nhất là đóng dự án trong Xcode và mở lại .

Nếu bạn đi đến Cài đặt bản dựng và bộ lọc trên Tất cả , bây giờ bạn sẽ thấy PODS_ROOTmục nhập không có lỗi:

nhập mô tả hình ảnh ở đây

Bây giờ nó sẽ được xây dựng mà không có lỗi.


Lưu ý: Ví dụ về AFNetworking iOS chính thức của Ngay cả Pod Pod có vấn đề này, điều này khiến tôi tin rằng đó là một lỗi với Xcode.

Một cách khắc phục khác là thay đổi cấu hình theo cách thủ công None, sau đó quay lại giá trị ban đầu:

nhập mô tả hình ảnh ở đây


1
Điều này hóa ra là nó cho tôi! $ PODS_ROOT của tôi đã được đặt không chính xác
Alex Ryan

Sau một thời gian dài tìm kiếm sửa chữa, tôi đã có thể làm cho nó đi mà không có lỗi nhờ giải pháp của bạn. Tôi chỉ phải thay đổi Cấu hình thành Không có và quay lại Pods
Glogo

Đây là điều tốt khi đặt KHÔNG.

32

Chuyển đến mục tiêu Build Settingsvà đảm bảo giá trị PODS_ROOTbằng ${SRCROOT}/Podstrong phần "Người dùng xác định".

nhập mô tả hình ảnh ở đây


Công trình tuyệt vời. Đây là những gì cần thiết.
pr4n

Tôi đã phải thêm PODS_ROOTvào mục tiêu của mình bằng con đường này và violá (tôi cũng đã thêm nó vào header search pathsdưới dạng "$ (PODS_ROOT)" đệ quy
Jacksonkr

Không làm việc cho tôi.

30

cập nhật: a podfile.locklà cần thiết và không nên bỏ qua bởi kiểm soát phiên bản, nó theo dõi các phiên bản của các thư viện được cài đặt tại một cài đặt pod nhất định. (Nó tương tự như gemfile.lockcomposer.lock cho quản lý phụ thuộc rails và php, tương ứng). Để tìm hiểu thêm xin vui lòng đọc các tài liệu . Tín dụng đi đến cbowns .


Trong trường hợp của tôi, những gì tôi đã làm là tôi đang thực hiện một số công việc dọn dẹp nhà cửa cho dự án của mình (tức là phân nhánh các bài kiểm tra tích hợp dưới dạng một mô hình con git .. loại bỏ các tệp trùng lặp, v.v.) .. và đẩy kết quả cuối cùng lên một repo từ xa .. tất cả các khách hàng đã nhân bản repo của tôi bị lỗi trên. Lấy cảm hứng từ nhận xét của Hlung ở trên, tôi nhận ra rằng có một số tập lệnh pod lủng lẳng đang cố chạy với một số tệp không tồn tại. Vì vậy, tôi đã đi đến giai đoạn xây dựng mục tiêu của mình và xóa tất cả các giai đoạn còn lại có liên quan đến vỏ ca cao (và nhận xét của Hlung, anh ấy đề nghị xóa Copy Pods Manifest.lockcopy pod resources.. tôi được đặt tên khác có thể là tôi đang sử dụng Xcode 5 .. điểm là để xóa các giai đoạn xây dựng lơ lửng) ..


1
Đó không phải Podfile.locklà những gì dành cho: đọc tài liệu của Cocoapods về "Làm việc với các nhóm" để biết thêm thông tin về nó.
cbowns

@cbowns bạn hoàn toàn đúng, cảm ơn vì nhận xét. Tôi cập nhật câu trả lời của tôi.
abbood

12
Tôi đã xóa tệp xcworkspace của mình và đã cài đặt pod, nhưng tôi vẫn nhận được thông báo lỗi tương tự.
jowie

@jowie tương tự ở đây ... bạn có thể vui lòng hướng dẫn cho tôi nếu bạn đã giải quyết nó.
Bandish Dave

28

Vì vậy, có vẻ như CocoaPods đã không đặt Cấu hình cho Dự án của tôi. Họ cần phải được dựa trên Pods.xcconfigcái được tìm thấy trong Pods/Target Support Files/Pods. Để làm việc này, tôi phải làm như sau:

  1. Kéo tệp này vào Dự án Xcode của tôi trong Xcode, chọn không sao chép.
  2. Bây giờ có một tài liệu tham khảo trong dự án của chúng tôi, chúng tôi có thể thiết lập các cấu hình: nhập mô tả hình ảnh ở đây

Sau đó tôi đã có một lỗi xây dựng khác có thể có hoặc không liên quan. Đường dẫn đến tập lệnh shell được xác định trong Copy Pods Resourceskhông chính xác.

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

Đã giải quyết không chính xác. Có vẻ như SRCROOT đã thêm một thư mục bổ sung không tồn tại vào đường dẫn. Vì vậy, tôi cứng mã hóa đường dẫn đến thư mục Project.

Điều này cho phép tôi xây dựng.

Tại sao có quá nhiều thứ được cho là giúp bạn tiết kiệm thời gian cuối cùng lại ăn nó?

Lưu ý: Vui lòng xem câu trả lời của @ abood để được giải thích.


27
Nếu bạn thấy lỗi này vì bạn đã xóa tất cả các nhóm khỏi mục tiêu, bạn sẽ không còn có bất kỳ tập lệnh pod nào nữa nhưng nó vẫn sẽ cố chạy nó. Bạn sẽ phải chuyển đến Giai đoạn xây dựng mục tiêu của mình và xóa Copy Pods Manifest.lockvà thực hiện Copy Pods Resourcescác giai đoạn. Và cũng loại bỏ libPods.atrong Liên kết nhị phân với Thư viện.
Hlung

@Hlung bình luận tuyệt vời .. nó thực sự giải quyết nguyên nhân gốc rễ của vấn đề, tôi đã thử các giải pháp ở trên và tôi vẫn kết thúc với một Podfile.lock (mà hầu hết .gitignorecác tệp được định cấu hình để bỏ qua .. và đúng như vậy) .. tệp đó không nên Sẽ không nán lại xung quanh .. Nếu bạn viết nó như một câu trả lời, tôi sẽ cho bạn +1!
abbood

@abbood Viết nó lên và tôi sẽ cho bạn chiến thắng.
Hủy bỏ

Chỉ muốn thêm rằng vấn đề này trên trang Github của CocoaPods đề cập đến việc kiểm tra các giai đoạn xây dựng cho vấn đề chính xác này (thậm chí tương tự nhiều hơn vì tôi có nhiều mục tiêu). Vấn đề khiến tôi phải cuộn xuống đây ....
DanBlakemore

22

Tôi có một vấn đề tương tự đây là những gì đã làm việc:

  1. Trong Xcode:
    • Dọn dẹp
    • Xóa dữ liệu phái sinh trong Xcode / Window / Organizer / Project / Dự án của bạn
    • Thư mục Pod (nó chứa các tệp cấu hình, xóa các tệp không chỉ là tài liệu tham khảo!)
    • Đã xóa tất cả các tham chiếu đến các tệp cấu hình nhóm cho mọi mục tiêu trong Dự án / Cấu hình (gỡ lỗi / phát hành)
    • Đã xóa "Mục tiêu / Xây dựng giai đoạn / Sao chép tài nguyên Pods" khỏi tất cả các mục tiêu
    • Đã xóa "Mục tiêu / Cài đặt bản dựng / Xác định người dùng / PODS_ROOT" khỏi tất cả các mục tiêu
  2. Thoát Xcode
  3. Trong thư mục dự án của bạn:
    • rm -rf Pods
    • (Tùy chọn) rm -rf YourProject.xcworkspace
    • rm -rf Podfile.lock
  4. cài đặt pod
  5. Mở YourProject.xcworkspace trong Xcode

4
Đừng tự ý xóa không gian làm việc của bạn - Ngay cả khi không gian làm việc của bạn được tạo bởi Cocoapods, nó vẫn được bạn duy trì.
Joseph DeCarlo

Điều này làm việc cho tôi đã xóa mọi tập tin liên quan đến nhóm và cài đặt lại nhóm.
Leena

15

Tôi đã thoát khỏi vấn đề tương tự bằng cách thực hiện các bước sau:

  • Xcode->Product->Clean Build Folder(giữ phím alt trên Sản phẩm để xem)
  • Mở Xcode->Window->Organizervà chọn Projectstab. Sau đó tìm dự án của bạn và xóa derived data dự án.

1
Đã làm cho tôi. Đã bực mình. Bây giờ hạnh phúc.
fresidue

Trong trường hợp của tôi, tôi đã gặp rắc rối với một dự án github. Vì vậy, tôi đã phải loại bỏ hoàn toàn thư mục Project (rm -rf), đã làm như trên, sau đó giải nén dự án, cài đặt pod và mở xcworkspace và không có lỗi!
rharvey

Đã làm cho tôi. Cảm ơn bạn.
xevser

10

Đơn giản chỉ cần giải quyết bằng cách làm như sau:

  • (sudo) đá quý cài đặt cocoapods

  • cài đặt pod

  • làm sạch và xây dựng

có vẻ như vấn đề là do một trong các thành viên trong nhóm của chúng tôi có cài đặt đá quý cocoapods gần đây hơn.


1
Tôi đã phải cài đặt lại cocoapods và khởi động lại XCode để giải quyết vấn đề này.
Camster

Phải chạy gem install cocoapodsvà sau đó pod installvà tất cả mọi thứ khác được đề cập trong chủ đề này ...
Echelon

9

  1. mở tệp .xcodeproj trong văn bản cao siêu
  2. xóa hai dòng này, nếu bạn có các thư mục nhóm sạch, ý tôi là nếu bạn gặp lỗi ở trên sau khi bạn xóa thư mục nhóm

cung cấp cho tôi một thư viện ld: không tìm thấy cho -lPods - / * Tên dự án của tôi * / Bài kiểm tra
SleepsOnNewspapers

điều này cũng sẽ cho tôi lỗi trên các cài đặt pod trong tương lai?
SleepsOnNewspapers

6

Có cùng một vấn đề nói /Pods/Pods-resource.sh: Không có tệp hoặc thư mục như vậy ngay cả sau khi các tệp vv liên quan đến nhóm được xóa.

Loại bỏ nó bằng cách đi đến mục tiêu-> Xây dựng các giai đoạn và sau đó loại bỏ giai đoạn xây dựng "Sao chép tài nguyên Pod".


sửa chữa tuyệt vời nhưng tôi sợ sau khi làm sạch dự án và dữ liệu có nguồn gốc, bạn có thể nhận thấy lý do tại sao bạn cần điều này :)
Julian Król

Sau đó, tôi nhận được lỗi ".h" không tìm thấy tệp từ fileName sử dụng Pod
coolcool1994

4

Tôi đã có cùng một vấn đề gần đây. Tôi đã thử mọi lời khuyên có thể, không có gì ngoại trừ plugin này đã làm việc cho tôi:

https://github.com/kylef/cocoapods-deintegrate

Sau khi dọn dẹp tích hợp cocoapods hiện tại, những gì còn lại sẽ bị xóa là Podfile, Podfile.lock và .xcworkspace. Sau đó chỉ cần cài đặt lại.

Tôi hy vọng tôi sẽ giúp ai đó với điều này.


Đây là điều duy nhất đã sửa nó cho tôi.
Charlie

Tôi rất vui vì tôi có thể giúp Charlie
Chiara

4

Vấn đề này đã giải quyết nó.

  1. Chọn mục tiêu của dự án của bạn
  2. Chọn Cài đặt bản dựng
  3. Mở danh sách thả xuống do người dùng xác định
  4. Thay đổi giá trị của khóa PODS_ROOT thành $ {SRCROOT} / Pods

Ảnh chụp màn hình cho các bước trên


1
Tôi thích bạn Nhưng tôi vẫn nhận được cùng một lỗi shitty. Cái này là cái gì!!! không ai có câu trả lời đúng về điều này

@YumYumYum: Sau đó thử cài đặt lại pod của bạn.
Jayprakash Dubey

Đã thử trên tất cả các giải pháp nhưng điều này đã làm việc. Trong trường hợp của tôi, nó vẫn được thiết lập đường dẫn trong một bản phát hành.
Ankit Kargathra

3

Tôi nghĩ rằng nó có một lỗi ở đây.
Đối với tôi, tôi xóa Podsthư mục Podfile.lockvà làm pod installlại để giải quyết vấn đề.
Thông báo này đang bỏ qua .. :(


2

Nó không trực quan lắm. Tôi đã đi đến các cài đặt dự án cơ sở và sau đó tôi mã hóa các đường dẫn đến pod.lock và pod.manifest của mình trong Check Pods Manifest.lock, vì thực tế chúng ở trong các thư mục khác nhau, vì vậy các đường dẫn của tôi trông như thế này:

diff "/Users/admin/Desktop/Experimental/projectfolder/Podfile.lock" "/Users/admin/Desktop/Experimental/projectfolder/Pods/Manifest.lock" > /dev/null
if [[ $? != 0 ]] ; then
    cat << EOM
error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.
EOM
    exit 1
fi

Kịch bản dường như được tạo ra bởi CocoaPod. Bạn đã đặt kịch bản này ở đâu?
Nickolas

2

Bạn có thể thử như sau. Nó cố định cho tôi.

  1. cài đặt đá quý cài đặt cocoapods-deintegrate
  2. cài đặt đá quý cài đặt cocoapods-sạch
  3. goto pod deintegrate
  4. vỏ sạch
  5. cài đặt pod

Các plugin sẽ được gỡ bỏ khỏi cocoapods cho dự án của bạn và sẽ cài đặt mới.


2

Trong trường hợp của tôi, đây là mục tiêu thử nghiệm mà tôi đã loại bỏ tất cả các nhóm từ bên trong podfile của mình (vì tôi đã thêm các nhóm mà sau đó tôi nhận ra rằng tôi không cần trong mục tiêu đó). Không có giải pháp nào khác ở đây làm việc cho tôi.

  1. Chuyển đến tab Build Ph Phase trong cài đặt dự án cho mục tiêu gây rắc rối.

  2. Xóa phần có tên "Kiểm tra bản kê khai Pods" và "Sao chép tài nguyên Pods"

  3. Bên trong "Liên kết nhị phân với thư viện" xóa libPods-YourTarget.a

  4. Trong cài đặt dự án của bạn trong tab Thông tin mở rộng "Cấu hình" và đặt cấu hình cho mục tiêu thành Không cho cả gỡ lỗi và phát hành. (Điều này sẽ sửa một vài cảnh báo tập tin bị thiếu)

  5. Xóa dữ liệu dẫn xuất của dự án của bạn (Cửa sổ> Dự án> Xóa [bên cạnh dự án của bạn) và khởi động lại Xcode. Xây dựng / chạy mục tiêu.


2

Điều này làm cho ngày của tôi!

  1. Xóa tệp Podfile.lock trong thư mục dự án của bạn
  2. Xóa thư mục Pods trong thư mục dự án của bạn
  3. Thực thi pod installtrong thư mục dự án của bạn
  4. Thực hiện "Làm sạch" trong Xcode
  5. Xây dựng lại dự án của bạn

1

Trong trường hợp của tôi, vấn đề là sai cách. giải pháp tại đây http://guides.cocoapods.org/USE/troubledh Boot.html

Nếu một cái gì đó dường như không hoạt động, trước hết hãy đảm bảo rằng bạn không hoàn toàn ghi đè bất kỳ tùy chọn nào được đặt từ tệp Pods.xcconfig trong cài đặt bản dựng dự án của bạn. Để thêm giá trị vào các tùy chọn từ cài đặt bản dựng dự án của bạn, hãy thêm vào danh sách giá trị bằng $ (được kế thừa) .


1

Tôi đã có vấn đề này.

Cách tôi sửa nó là bằng cách xóa hoàn toàn Pod triển khai và thực hiện lại nó. Đảm bảo xóa "Sao chép tài nguyên Pods" và "Kiểm tra Podif Manifest.lock" khỏi "Xây dựng giai đoạn" trên tất cả các mục tiêu như đã nêu ở đây: Làm cách nào để loại bỏ CocoaPods khỏi dự án?


1

Để tôi thoát khỏi lỗi này, tôi cần xóa Podsthư mục và xóa Podfile.locktập tin.


Tôi đồng ý với bạn, tôi đã làm tất cả những gì bạn đã làm bao gồm xóa tệp không gian làm việc và nó đã làm việc cho tôi.
Alix

1

Trong trường hợp của tôi, tôi đã đặt Podfile.lock & Manifest.lock trong kiểm soát nguồn, nhưng tôi đã quên thêm các tệp Pods-Project.debug (phát hành) vào kiểm soát nguồn (bằng cách thêm nhầm * .xcconfig vào .gitignore), sau đó tôi có cùng các lỗi biên dịch với cùng một lý do, PODS_ROOT không được đặt.

Vì vậy, nếu mục tiêu là sau khi nhân bản repo, dự án có thể ngay lập tức xây dựng và chạy, mà không cần cài đặt Cốc Cốc trên máy, bạn có thể thêm toàn bộ thư mục Pods trong kiểm soát nguồn hoặc thêm tệp Podfile.lock, Manifest.lock, tệp xcconfig của dự án và Pods xcconfig tập tin để kiểm soát nguồn.

Tôi đã không đặt .xcconfig riêng tư hợp nhất các cài đặt bản dựng với cấu hình Cốc Cốc mặc định để kiểm soát nguồn.


1

Sau khi dành hàng giờ tôi đã tìm thấy giải pháp đi đến "Xây dựng giai đoạn" Sau đó "Kiểm tra Pods Manifest.lock" Đánh dấu "Chỉ chạy Script khi cài đặt"

Cảm ơn tôi sau;)nhập mô tả hình ảnh ở đây


1

Tôi gặp vấn đề tương tự với dự án IONIC của tôi , tôi đã thử trên tất cả các giải pháp nhưng không may mắn.

Nếu bạn vẫn gặp vấn đề tương tự, hãy kiểm tra thời tiết bên dưới có cài đặt Build Settings -> User-Defined settingshay không

1. PODS_ROOT 2.PODS_PODFILE_DIR_PATH

Nếu không có thì thêm nó vào,

PODS_ROOT = ${SRCROOT}/Pods

PODS_PODFILE_DIR_PATH = ${SRCROOT}/

Nó sẽ giải quyết vấn đề, liên kết giải pháp


0

Tôi đã tạo nhiều mục tiêu trước khi tôi sử dụng nhóm. Sau này khi tôi bắt đầu biên dịch các mục tiêu khác, tôi phải thêm link_with với danh sách các mục tiêu trong Podfile của mình.


0

Tôi gặp vấn đề tương tự. Sau khi tìm lại các bước gần đây của tôi, tôi thấy rằng việc thêm một khai báo mục tiêu cho một mục tiêu mới, tiếp theo là chạy pod install,là nguyên nhân của vấn đề:

nhập mô tả hình ảnh ở đây

Đặt lại chi nhánh của tôi và làm sạch dự án của tôi không hoạt động, vì Cocoapods đã sửa đổi ít nhất một tệp không thuộc quyền kiểm soát nguồn. Tôi biết điều này bởi vì một khi tôi đặt lại nhánh từ xa thành một cam kết trước khi thêm mục tiêu bổ sung và sao chép lại repo, vấn đề không còn tồn tại.


0

Nếu bạn có một mục tiêu watchOS: Tôi thấy rằng đột nhiên, có các pod trong phần mở rộng đồng hồ nhưng không phải trong mục tiêu đồng hồ đã phá vỡ mọi thứ với cùng một lỗi này. Giải pháp là thêm các nhóm vào mục tiêu đồng hồ.



0

nếu bạn đã thêm mục tiêu mới sau khi tạo Podfile, chỉ cần xóa Podfile, Podfile.lock, thư mục Pods và không gian làm việc sau đó init pods -> sau đó đặt cài đặt pod của bạn


0

Sau khi thử những điều trên, tôi nhận ra mình đang gặp lỗi pod install

[!] CocoaPods không đặt cấu hình cơ sở cho dự án của bạn vì dự án của bạn đã có bộ cấu hình tùy chỉnh.

Điều này gây ra lỗi, vì cocoapods đã không thêm tệp .xcconfig vào dự án của tôi.

Để giải quyết điều này tôi đã đi đến Infotab của dự án của tôi. Đặt tệp dựa trên tệp cấu hình của tôi Nonecho tất cả các lược đồ và mục tiêu. Sau đó chạy lạipod install

Xem liên kết này để biết thêm thông tin. Cảnh báo của Cocoapods - CocoaPods không đặt cấu hình cơ sở cho dự án của bạn vì dự án của bạn đã có bộ cấu hình tùy chỉnh


0

Trong trường hợp của tôi, tôi đã vô tình gõ một dấu chấm không cần thiết vào cuối tập tin cấu hình gây ra vấn đề kỳ lạ này. Hãy chắc chắn rằng tập tin cấu hình của bạn không chứa bất kỳ lỗi nào!

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.