ld: khung không tìm thấy Pods


233

Tôi đang cố gắng thêm khung vào dự án iOS của mình nhưng khi xây dựng tôi luôn nhận được thông báo tương tự:

ld: khung không tìm thấy Pods

clang: error: lệnh linker không thành công với mã thoát 1 (sử dụng -v để xem lệnh gọi)

Tôi đã cố gắng xóa Podsthư mục của mình và sau đó chạy pod install Tôi mở .xcworkspacenhư thể nó được ghi trong nhật ký cài đặt pod, tôi xóa dự án trên xcode và sau đó thử xây dựng nhưng nó sẽ không hoạt động ..

Podfile của tôi trông như thế này:

xcodeproj '/Users/guillaume/project/Mobile/iOS/FoodPin/FoodPin.xcodeproj'
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
use_frameworks!
pod 'SwiftHTTP', '~> 0.9.2'

Phiên bản xcode của tôi là 6.3.1

Cảm ơn bạn,


1
Bạn có kiểm tra xem đó libpods.alà trong "Các khung và thư viện được liên kết" của mục tiêu của bạn không? Và trong Giai đoạn xây dựng của bạn cũng vậy?
BoilingLime

Bạn đã quản lý để giải quyết điều này? Tôi có cùng một lỗi
Christopher Francisco

@ChristopherFrancisco Tôi đã giải quyết nó, kiểm tra câu trả lời của tôi.
Arbitur 24/07/2015

1
Đây Làm thế nào để trả lời [1] giải quyết vấn đề của tôi! Hy vọng nó sẽ giúp [1]: stackoverflow.com/a/31161871/1557663
Mário Carvalho

@ MárioCarvalho Đó chỉ là phiên bản dài hơn và thân thiện hơn với câu trả lời của tôi x)
Arbitur

Câu trả lời:


524

Trong Project Navigatorthư mục Podstôi có một cái Pods.frameworkcó màu đỏ. Nó cũng có mặt trong Linked Frameworks and Libraries. Tôi đã xóa cả hai tài liệu tham khảo và lỗi biến mất.

TL; DR

Xóa Pods.frameworktrong:

  • Thư mục có tên Pods
  • Linked Frameworks and Libraries

5
Tôi nghĩ rằng tôi đã kết thúc với vấn đề này sau khi thêm use_frameworks! vào Podfile của tôi và sau đó nhận xét nó. Xóa tham chiếu đến Pods.framework đã khắc phục sự cố.
StephenT

2
@StephenT Có Tôi tin rằng đó là những gì tôi đã làm, lần đầu tiên sử dụng use_frameworks!và sau đó không có và có lẽ Pods.frameworkkhông bị xóa đúng cách trong suốt thời gian pod install. Có thể là một lỗi trong Cocoapods.
Arbitur

Đây là một câu trả lời hay, không ảnh hưởng đến ứng dụng ví dụ, nó vẫn chạy tốt
Gabriel Goncalves

3
Nếu điều này không hiệu quả, hãy thử sử dụng cocoapods-deintegrate. Điều đó chỉ giải quyết vấn đề này cho tôi.
nickdnk

2
Sau khi chạy cài đặt pod, bằng cách nào đó tôi đã kết thúc với tệp khung "Pods_ <Tên dự án>" trong thư mục Pods của mình. Xóa tập tin này, làm sạch và xây dựng lại đã loại bỏ lỗi này cho tôi.
Caleb Faruki

209

Điều này thường xảy ra do mở tệp .xcodeproj thay vì .xcworkspace.

Khi bạn chạy 'pod install' lần đầu tiên, nó sẽ tạo một tệp .xcworkspace, bao gồm .xcodeproj ban đầu của bạn và một dự án Pods. Bạn sẽ cần phải đóng .xcodeproj và mở .xcworkspace thay thế.

Đây là một vấn đề phổ biến khi tạo dự án thông qua trình hướng dẫn dự án mới của Xcode - Tôi thường quên rằng tôi không ở trong không gian làm việc, điều này bắt buộc phải có để Cocoapods liên kết chính xác.


Cảm ơn ! Nó làm tôi bối rối ngay lần đầu tiên
Phi Nguyễn

6
Giải thích của bạn tốt hơn nhiều so với tôi đã thấy ở nơi khác. Tôi đã không nhận ra những gì đang xảy ra. Cảm ơn!
Michael Yaworski

Khi được thực hiện kết hợp với câu trả lời của Arbitur, điều này sẽ giải quyết vấn đề. Cảm ơn!
dùng1577390

Đây chính xác là vấn đề của tôi. Cảm ơn!
Antonio Papalillo

không có tệp .xcworkspace trong dự án của tôi. phải làm gì
Kartiikeya 18/03/19

126

Xcode 9, 10, 11, 11,5

cài đặt https://github.com/CocoaPods/cocoapods-deintegrate

pod deintegrate

sau đó

pod install

1
Làm việc như người ở! Cảm ơn bạn. Điều này đã loại bỏ một tham chiếu cũ đến một mục tiêu được đổi tên gây ra lỗi này.
Alex Obenauer

1
Bạn là người hùng của tôi! ;)
Swissdude

1
Wow Bạn đã cứu ngày của tôi! đã bị kẹt từ hôm qua và cuối cùng đã giải quyết bằng Xcode 10. Cảm ơn!
Purushottam Padhya

1
Đây phải là câu trả lời chính xác, đó là cách tiếp cận an toàn nhất. Đừng thực hiện các bước thủ công khi sử dụng các công cụ tự động như CocoaPods, trừ khi đó là một lỗi đã biết không thể khắc phục bằng cách khác.
Gobe

1
Điều này giúp tôi, anh bạn tuyệt vời!
S A. A.Suk

51

Tôi đã xóa lỗi này bằng cách xóa các .frameworktệp màu đỏ nằm trong một thư mục Frameworkstrong project navigator. Tôi nghĩ rằng điều này cũng tự động xóa các mục màu đỏ tương ứng trong Linked Frameworks and Librariesphần Generalcài đặt.

Tôi đã được dọn dẹp / cài đặt lại các pod để khắc phục sự cố khác. Có lẽ các tệp và mục nhập khung màu đỏ này chỉ còn sót lại từ bản cài đặt pod trước đó?


Đúng! Vấn đề của tôi là trong các Khung và Thư viện được liên kết của cài đặt Chung và rất khó tìm thấy vì nó không xuất hiện trong tìm kiếm văn bản!
Alistair Cooper

Trong trường hợp của tôi, các tệp khung thậm chí không có màu đỏ, nhưng chỉ có màu xám. Nhưng xóa chúng dường như đã khắc phục vấn đề!
Kẻ lừa đảo

28

Đối với những người tìm thấy vấn đề này. Tôi đang sử dụng NativeScript và gặp lỗi tương tự.

Điều đó xảy ra vì tôi đã mở tệp .xcodeproj, nhưng chúng ta phải mở dự án bằng tệp .xcworkspace.


27

Điều này đã xảy ra với tôi sau khi cập nhật Podfile của tôi và thực hiện cập nhật pod.

Vì một số lý do, tôi đã có tệp khung "Pods_ [ProjectName]" xuất hiện trong dự án của tôi trong 'Mục tiêu'> Chung> Thư viện và Khung công tác được liên kết.

Xóa cái này và sau đó dọn dẹp / xây dựng lại đã khắc phục vấn đề.


2
Điều này xảy ra khi bạn chuyển tên dự án và cần xóa tên cũ. +1
Babbz77

Điều này làm việc cho tôi. Tôi đã không thay đổi tên dự án, nhưng đã thêm Swift vào một dự án Objective-C đang hoạt động lâu dài.
Luffy

24

Tôi đã có một vấn đề tương tự như

framework not found Pods_OneSignalNotificationServiceExtension

Nó đã được giải quyết bằng cách loại bỏ những điều sau đây. Chuyển đến mục tiêu OneSignalNotificationServiceExtension> Xây dựng giai đoạn> Liên kết nhị phân với Thư viện và xóa Pods_OneSignalNotificationServiceExtension.framework Nó nên trống ở đây. Hy vọng điều này sẽ giúp ích. Chúc mừng.


Điều này đã khắc phục vấn đề cho tôi. Tình huống cụ thể của tôi là tôi đã có một mục tiêu MyApp trên iOS. Sau đó, tôi cần tạo mục tiêu thứ hai và có các mục tiêu MyAppFirst, MyAppSecond. Cocoapods đã có thể xây dựng những gì nó cần (Pods_MyAppFirst, Pods_MyAppSecond) nhưng nó cũng đang cố gắng liên kết với Pods_MyApp không còn tồn tại. Tôi muốn chỉ ra rằng trong quá trình cố gắng khắc phục, tôi đã vứt bỏ tệp không gian làm việc và thư mục Pods để chúng được tạo lại từ đầu khi tôi thực hiện một cài đặt pod pod -install nhưng không giúp được gì.
xdeleon

@Sharukh Mastan Bạn có biết làm thế nào để thực hiện điều này sau khi cài đặt pod không? Mỗi lần tôi cài đặt, sự Pods_OneSignalNotificationServiceExtension.framework trở lại sẽ ám ảnh tôi trong các khung và thư viện được liên kết của OneSignalNotificationServiceExtensionmục tiêu.
Sethmr

@Sethmr Đáng buồn thay, không. Tuy nhiên, trong trường hợp của tôi, nó không luôn xảy ra sau một pod install, đó là ngẫu nhiên.
Sharukh Mastan

@SharukhMastan Vấn đề của tôi là mở *.xcodeproj/*.xcworkspacera *.xcworkspacevới tập lệnh tự động hóa vsts .yml của tôi. Tôi biết rõ hơn với một gui, nhưng vẫn quen với các yêu cầu trong kịch bản đất.
Sethmr

15

Tôi đã gặp lỗi này vì tôi đã đổi tên dự án của mình và thay đổi tên dự án trong tệp pod nhưng dự án của tôi đã đề cập đến tên cũ không có ở đó và gây ra lỗi này. Tôi thoát khỏi điều này bằng cách

pod deintegrate

theo dõi bởi

pod install

Đúng! Tôi gặp vấn đề tương tự khi hạ cấp phiên bản từ 12.0 xuống 9.0. Cái trên hoạt động sau khi tôi sửa đổi phiên bản đích trong Podfile của mình để phù hợp với những gì trong dự án.
Richard Bown

Câu trả lời tốt. Cảm ơn bạn.
whdals0

14

bạn nên xóa dự án của bạn một số tập tin như hình ảnh này.

bạn nên xóa pods.framework và pods đánh dấu các tập tin màu đỏ


10

Chỉ cần xóa .framework của bạn khỏi danh sách "Dự án của bạn-> Chung-> Khung & Thư viện được liên kết".


Thế là xong, tôi đã có hai cái sau khi đổi tên dự án. Cảm ơn!
Jimmy

10

Nó xảy ra với tôi vì tôi đã thay đổi Deployment Targettrong Generalnhưng quên thay đổi Deployment Targettrong Pods > General. Thay đổi mục tiêu triển khai


Đã sửa nó cho tôi, Xcode 11.2 / Cocoapods 1.8.4. Kích thích rằng thông báo lỗi không giống với nguyên nhân gốc rễ ...
Jonathan Ellis

1
Đã sửa nó cho tôi - không có ý tưởng rằng tôi cần thay đổi điều này ở cả hai nơi. Cảm ơn rất nhiều!
hakazvaka

6

Trong trường hợp của tôi, tôi có thể xây dựng nó trên các thiết bị và trình giả lập nhưng có cùng một lỗi khi lưu trữ. Để giải quyết nó, tôi phải

  • tẩy Pods.framework
  • đảm bảo Pods-<project-name>.frameworkđược nhúng

Bạn sẽ tìm thấy các cài đặt trong TARGETS -> Các khung và thư viện được liên kết.


Bạn có thể kiểm tra điều này không: github.com/CocoaPods/CocoaPods/issues/
mẹo

4

Bước 1

Điều đầu tiên bạn cần làm là loại bỏ Podfile, Podfile.lock, thư mục Pods và không gian làm việc được tạo.

Bước 2

Tiếp theo, trong .xcodeproj, xóa các tham chiếu đến tệp Pods.xcconfig và tệp libPods.a.

Bước 3

Trong tab dự án Build Ph Phase, xóa phần Kiểm tra Podif Manifest.lock (mở), Sao chép phần Tài nguyên Pods (phía dưới) và Nhúng Tài nguyên Pod (phía dưới).

Bước 4

Xóa Pods.framework.

Điều duy nhất bạn có thể muốn làm là bao gồm một số thư viện mà bạn đã sử dụng trước đó. Bạn có thể làm điều này bằng cách kéo bất kỳ thư mục nào trong các thư mục nhóm vào dự án của bạn (tôi thích đặt chúng vào thư mục Tệp hỗ trợ của mình).

Nó làm việc cho tôi.


Bước 3 làm việc trong trường hợp của tôi, bước 3 -> cmd + alt + shift + k.
ViruMax

4

Bạn có nhiều khả năng đang cố gắng để các nhóm hoạt động trong dự án của bạn phải không? Cách duy nhất để làm như vậy là bằng cách tạo một dự án riêng biệt sử dụng CocoaPods.

Đóng tất cả các không gian làm việc mà bạn đang sử dụng.

Tiếp theo, hãy chắc chắn rằng bạn đã có Podfile hoàn toàn sẵn sàng hoạt động.

Trong dòng lệnh, bất cứ nơi nào tập tin của bạn, gõ lệnh:

pod deintegrate

Sau đó, cài đặt pod agian của bạn.

pod install or pod update

Bây giờ bạn có thể sử dụng không gian làm việc mới của dự án để phát triển. Hãy tìm một tập tin gọi là .workspace. Sử dụng tập tin đó!

Dưới đây là hướng dẫn sử dụng CocoaPods


Chỉ có điều này làm việc cho tôi sau khi đấu tranh 2 ngày với lỗi.
Mitesh Dobareeya

3

Sử dụng Xcode 8.3, câu trả lời được chấp nhận không phù hợp với tôi. Tôi đã thử nhiều giải pháp khác nhưng câu trả lời của @Elliott Davies là cái gì đã sửa nó cho tôi. Tôi đang thêm một ảnh chụp màn hình cho rõ ràng. Vì một số lý do, Xcode đã cố gắng liên kết các thiết lập podfile trước đó không còn tồn tại. Tất cả tôi phải làm là xóa các tài liệu tham khảo thêm và mọi thứ đã hoạt động.Ảnh chụp màn hình của Thư viện và Khung liên kết Xcode


3

Vấn đề này đã khiến tôi phát điên vì nó đột nhiên xảy ra mà không thực hiện bất kỳ thay đổi nào đối với dự án. Tôi đã thử tất cả các giải pháp được đề xuất trong chuỗi này (và các giải pháp khác có liên quan) và không có giải pháp nào trong số đó giải quyết được vấn đề.

Điều duy nhất khác với các dự án khác của tôi (được biên soạn tốt), là tên dự án này có chứa một dấu (một giọng Pháp, "é"). Tôi đã đổi tên dự án và tất cả các tệp liên quan, và cuối cùng nó đã hoạt động!

Có lẽ điều này có liên quan đến việc cập nhật lên Xcode 10, vì dự án này đã hoạt động tốt trước khi ...

EDIT: dường như cũng thất bại khi sử dụng một dự án có -tên dự án


1
Bạn đã cứu mạng tôi
Florian Mac Langlade

1
Cứu mạng tôi quá!
Dan

Bất kỳ giải pháp nào ngoài việc đổi tên dự án?
gây mê

@anestis Tôi không nghĩ vậy. Để nhanh chóng đổi tên dự án, tôi đề xuất các lệnh từ câu trả lời này stackoverflow.com/a/48004237/3614980 , một công việc rất tuyệt vời!
AnthoPak

3

Trong trường hợp của tôi, sau khi so sánh sự khác biệt giữa một nhánh mà tôi biết được xây dựng chính xác, tôi nhận thấy dòng này trong Podfile của mình:

platform :ios, '11.0'

Tôi đã vô tình nâng phiên bản mục tiêu của mình từ 10 lên 11 trong khi các mục tiêu trong Xcode vẫn được đặt thành 10. Hoàn nguyên về 10 đã giải quyết vấn đề của tôi cho tôi.

Đảm bảo các phiên bản iOS mục tiêu của bạn được đặt đúng.


Bạn đã cứu ngày của tôi !! Cảm ơn bạn
Mayank Patel

3

Đây là cách tôi khắc phục vấn đề của tôi. và bây giờ nó hoạt động khi tôi viết câu trả lời này:

Đầu tiên, tôi thử tất cả các cách khắc phục nhất ở trên,

xóa Pods_xxx.framework khỏi các thư viện liên kết và khung trong các giai đoạn xây dựng của mục tiêu là hữu ích và vấn đề sẽ biến mất, nhưng vấn đề sắp tới là tôi không thể nhập Pods.framework nữa.

Và sau đó, tôi cố gắng khởi động lại cấu hình xcworkspace, để tôi có thể tìm ra vấn đề thực sự. vì vậy tôi chạy

pod deintergate

và sau đó cài đặt pod của tôi một lần nữa:

pod install

công việc này hoàn toàn hiệu quả, nhưng vấn đề vẫn còn đó, nhưng tôi nhận ra vấn đề thực sự là Pods_xxx.framworks không được biên dịch thành công bởi tập lệnh xây dựng cocoapods. Tôi nghĩ rằng đây là cách thực sự để khắc phục vấn đề.

Cuối cùng, tôi cố gắng chỉnh sửa sơ đồ dự án của mình:

Đề án Pods không được chỉnh sửa

và tôi thêm sơ đồ Pods vào quản lý:

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

và xây dựng riêng Pods.framework này và bạn sẽ thấy biểu tượng Pods.framework thực sự trở lại:

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

và tôi nghĩ bây giờ bạn đã khắc phục vấn đề "khung không tìm thấy Pods_xxxx.framework" nhưng thực sự tôi có một vấn đề khác sắp xảy ra:

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

Vì vậy, tôi đi đến cài đặt bản dựng và chỉnh sửa "Framework Search Path"với "${inherited}", và bây giờ tất cả các vấn đề đều được giải quyết, vui lên !!!! :)

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


Thêm mục tiêu Pod và xây dựng nó thực sự cho thấy những gì đã sai với bản dựng pod. Trong trường hợp của chúng tôi, đây là phiên bản nhanh chóng xung đột. Cảm ơn!
green0range

Tôi đã không làm theo tất cả các bước. Tôi chỉ cần thêm ${inherited}con đường đó, sau đó đã làm Product->Clean Build Folder, và đó là nó, bây giờ nó được xây dựng mà không gặp trở ngại nào.
Starwave

2

Tôi đã gặp vấn đề này bởi vì tôi đã không đặt platformchính xác.

Vì vậy, trong ứng dụng macOS của tôi, tôi đã cài đặt nền tảng thành:

platform :ios

thay vì

platform :osx

1

Tôi đã giải quyết vấn đề này bằng cách chọn dự án được tải xuống CocoaPodsvà xây dựng nó, bạn có thể nhấp vào Quản lý lược đồ để có thể xuất hiện trong thanh Run. Sau đó, bạn có thể xây dựng lại dự án của bạn. Hy vọng nó sẽ giúp.


1

Sau khi gỡ bỏ và cập nhật pod tôi vẫn gặp vấn đề tương tự.

Tôi đã phát hiện ra rằng nhà phát triển trước đó đã gắn cờ trong ' Cài đặt bản dựng -> Cờ liên kết khác ' với tên Khung (trong trường hợp của tôi -framework 'OGVKit') đã gây ra sự cố.

Sau khi xóa cờ đó, dự án xây dựng đúng.


Cảm ơn bạn rất nhiều! Bạn luôn phải để mắt đến những thứ in đậm trong Cài đặt bản dựng!
Marcio Granzotto

1

Trong trường hợp của tôi, có một tham chiếu đến thư viện mà tôi đã xóa

Mục tiêu> Cài đặt bản dựng> Đường dẫn tìm kiếm đường chạy

Xóa thư viện khỏi Podfile và cập nhật nó rõ ràng không xóa nó, vì vậy tôi phải làm thủ công và bây giờ mọi thứ đều hoạt động.


1

Không có câu trả lời nào trước đây chỉ ra vấn đề gốc trong tình huống của tôi. Vì vậy, tôi hy vọng điều này có thể hữu ích cho người khác.

Trong trường hợp của tôi, cuối cùng tôi đã phải chỉnh sửa podfile của mình ở thư mục gốc của dự án. Khi tôi lần đầu tiên tạo podfile, các thư viện tĩnh swift không được hỗ trợ. Vì vậy, tôi đã sử dụng use_frameworks!trong podfile của mình theo từng mục tiêu của mình như sau:

TRƯỚC

...
target 'targetName' do
   use_frameworks!
   pod 'podName', '~> 0.2'
end

SAU

...
target 'targetName' do
   pod 'podName', '~> 0.2'
end

Tôi đã gỡ bỏ use_frameworks!khỏi podfile của mình, nó vẫn tiếp tục cài đặt các khung công tác mỗi khi tôi chạy cài đặt pod. Sau khi xóa dòng này, hãy đảm bảo chạy pod installlại và xóa bất kỳ tham chiếu .framework màu đỏ nào khỏi thư mục Khung của bạn trong Xcode. (Mặc dù của tôi xuất hiện khác nhau như đính kèm bên dưới.)

Hình ảnh xóa các tệp .framework không còn cần thiết

Bạn cũng có thể đọc thêm về use_framework! đây .


0

Nếu bạn đã mở tệp .xcworkspace và bạn vẫn gặp lỗi tương tự:

delete all the contents of Pods directory and from command line write "pod install" to resolve the issue.

0

Xóa thư mục khung được tạo sau khi cài đặt hoặc cập nhật pod


0

Một điều khác đã giải quyết vấn đề của tôi là đi theo Target -> Build Settings -> Other linker Flag và xóa "-framework" và "name" khung của bạn.

Nó đã xảy ra khi tôi cố gắng để loại bỏ một pod.


0

Tôi đã giải quyết vấn đề này bằng cách kéo .frameworktệp vào Khung và Thư viện được liên kết

Giả sử tôi gặp sự cố này do lỗi FIRAnalyticsConnector not foundvà tôi chỉ cần kéo FIRAnalyticsConnector.framworktệp vào Khung và Thư viện được liên kết và vấn đề của tôi đã được giải quyết


0

Tôi đã thử mọi câu trả lời ở đây và không ai trong số họ làm việc. Cuối cùng tôi đã làm cho nó hoạt động bằng cách tăng mục tiêu triển khai từ 10.0 lên 11.0. Tôi không biết tại sao điều đó đã sửa nó, nhưng tôi nghi ngờ nó phải làm với việc nâng cấp lên Xcode 10.2.1.


0

có thể bạn đột nhiên mở tệp sai của .xcodprj và bạn nên mở .xcworkspace


Nó là tốt hơn để gửi như vậy là một bình luận.
MR

0

Vui lòng kiểm tra tập tin thực thi của bạn bên trong. Làm việc như nhập mô tả hình ảnh ở đây

  1. Tên tập tin thực thi nên như thế này mà không cần bất kỳ phần mở rộng.

  2. Một số khung hiển thị như thế này nhập mô tả hình ảnh ở đây

  3. Sử dụng thư mục Terminal goto .framework sử dụng lệnh dưới đây lipo -create FrameworkName-x86_64 FrameworkName-armv7 FrameworkName-armv7s FrameworkName-i386 FrameworkName-arm64 -output FrameworkName

Sau khi tạo tập tin thực thi duy nhất xóa tập tin này nhập mô tả hình ảnh ở đây

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.