Xcode - ld: không tìm thấy thư viện cho -lPods


184

Tôi gặp những lỗi này khi tôi cố gắng xây dựng một ứng dụng iOS.

ld: library not found for -lPods
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Ld /Users/Markus/Library/Developer/Xcode/DerivedData/Totalbox-clpeqwpfvwuhpleeejnzlavncnvj/Build/Products/Debug-iphonesimulator/Totalbox.app/Totalbox normal x86_64
cd /Users/Markus/Development/xcode/totalbox-ios
export IPHONEOS_DEPLOYMENT_TARGET=7.1
export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch x86_64 -isysroot 
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.1.sdk -L/Users/Markus/Library/Developer/Xcode/DerivedData/Totalbox-clpeqwpfvwuhpleeejnzlavncnvj/Build/Products/Debug-iphonesimulator -F/Users/Markus/Library/Developer/Xcode/DerivedData/Totalbox-clpeqwpfvwuhpleeejnzlavncnvj/Build/Products/Debug-iphonesimulator -filelist /Users/Markus/Library/Developer/Xcode/DerivedData/Totalbox-clpeqwpfvwuhpleeejnzlavncnvj/Build/Intermediates/Totalbox.build/Debug-iphonesimulator/Totalbox.build/Objects-normal/x86_64/Totalbox.LinkFileList -Xlinker -objc_abi_version -Xlinker 2 -ObjC -framework CoreGraphics -framework Foundation -framework MobileCoreServices -framework QuartzCore -framework Security -framework SystemConfiguration -fobjc-arc -fobjc-link-runtime -Xlinker -no_implicit_dylibs -mios-simulator-version-min=7.1 -framework CoreGraphics -framework UIKit -framework Foundation -lPods -Xlinker -dependency_info -Xlinker /Users/Markus/Library/Developer/Xcode/DerivedData/Totalbox-clpeqwpfvwuhpleeejnzlavncnvj/Build/Intermediates/Totalbox.build/Debug-iphonesimulator/Totalbox.build/Objects-normal/x86_64/Totalbox_dependency_info.dat -o /Users/Markus/Library/Developer/Xcode/DerivedData/Totalbox-clpeqwpfvwuhpleeejnzlavncnvj/Build/Products/Debug-iphonesimulator/Totalbox.app/Totalbox

PODS ROOT trong cài đặt bản dựng:

${SRCROOT}/Pods

Tôi đã không tạo dự án Xcode này - chỉ cần kéo nó từ git để kiểm tra.

Câu trả lời:


598

Nếu dự án sử dụng CocoaPods, hãy lưu ý luôn mở .xcworkspacetệp thay vì .xcodeprojtệp.


2
Tôi cũng thấy hữu ích khi xây dựng mục tiêu nhóm chứ không phải mục tiêu Xcode thông thường.
Don Simon

1
Sau khi tôi mở nó, tôi không thể chạy dự án của mình cả. tôi nên làm gì?
Inuyasha

Tôi nhận thấy rằng một tài liệu tham khảo Podslà trong .xcodeprojnhưng không phải trong .xcworkspace, do đó giải pháp này hoạt động.
Jacksonkr

1
Cd vào thư mục dự án và chạy "pod update". Nếu bạn không có pod, hãy tìm cách cài đặt nó.
justinkoh

2
Tôi đã nhận được thông báo lỗi đó khi mở .xcworkspace (để cụ thể hơn, cái này hoạt động một lần trên máy mac và không phải cái kia). Trong trường hợp của tôi, tìm thấy vấn đề liên quan đến đổi tên dự án và sau đó sao chép nó sang một máy tính khác , các lib không được sao chép sang vị trí mới. so sánh: /Users/[USERNAME]/Library/Developer/Xcode/DerivedData/[OLDPROJECTNAME]-[LONGRNDCHARS]/Build/Productsvới:/Users/[USERNAME]/Library/Developer/Xcode/DerivedData/[NEWPROJECTNAME]-[LONGRNDCHARS]/Build/Products
Yatko

97

Có vấn đề này là tốt. Đã xảy ra lỗi với cài đặt CocoaPods của tôi. Không có nhóm nào khác ngoài KIF được cài đặt đúng cách. Tôi đã làm theo các ý kiến ​​về chủ đề này để được giúp đỡ.

Về cơ bản, tôi cần đảm bảo rằng Build Active Architectures Onlycác cài đặt cho cả dự án của tôi và dự án Pods đều bằng nhau.


7
Tôi phải đảm bảo nó cũng bằng nhau giữa các mục tiêu trong dự án của tôi và các mục tiêu của nhóm ...
Nimrod Shai

Điều này xảy ra với tôi 6 tháng một lần và tôi không bao giờ có thể nhớ được mình đã giải quyết như thế nào lần trước ... Chỉ xây dựng kiến ​​trúc hoạt động. . . Chúng ta có thể nhớ tất cả
Kanongata

51

Sau nhiều giờ nghiên cứu giải pháp này đã làm việc cho tôi:

(từ chối trách nhiệm: kết quả có thể thay đổi do hoàn cảnh)

các Library not found -lPods-(someCocoapod)lỗi là do nhiều mục trong:

Settings(Target) > Build Settings > Linking > 'Other Linker Flags'

Rất nhiều bài viết khác đã cho tôi xem ở đó và tôi sẽ thấy các thay đổi về lỗi khi tôi làm hỏng các mục, nhưng tôi vẫn nhận được một số biến thể trên cùng một lỗi.

Mất quá nhiều giờ ...

Cách khắc phục của tôi:

xóa các dòng -lPods- (someCocoaPod) trong danh sách 'Cờ liên kết khác' NHƯNG chỉ khi $ (được kế thừa) ở trên cùng. Lúc đầu, tôi không chắc chắn, nhưng dấu hiệu trấn an là tôi vẫn thấy các tài liệu tham khảo về cocoapods của mình khi tôi rời chế độ chỉnh sửa (được kế thừa). Tôi đã thử nghiệm trong gỡ lỗi và phát hành, cả hai đều cho tôi lỗi và vấn đề đã được giải quyết ngay lập tức.


Làm việc như một lá bùa, cảm ơn. Tôi chỉ gặp vấn đề này khi cập nhật lên Swift 2.0 trên El Capitan. Làm việc hoàn hảo trước đây.
Ovi

Tôi chỉ có $ (được thừa kế) và đồng thời tôi có những bản sao khó chịu này. Nơi tôi có thể chỉnh sửa giá trị ban đầu thành biến $ (được kế thừa)?
nickolay

Bạn đã cứu người đàn ông hàng ngày của tôi .... bị mắc kẹt trong vấn đề này trong khi ... nó xảy ra bởi vì tôi đã xóa toàn bộ dự án pod và thêm lại
Mihir Mehta

Đã sửa cho tôi. Không bao giờ có thể tự mình tìm ra điều này!
bmueller

Bạn đánh! Hoạt động như một bùa mê
Rob Sanders

31

Có vẻ như dự án đã được sử dụng cocoapods . và các tập tin bị thiếu trong dự án của bạn.

Bạn không thể tải nó từ git. Bạn cần cài đặt nó từ cocoapods.

để được trợ giúp thêm, bạn có thể làm theo Giới thiệu về Hướng dẫn về Cốc Cốc

Nếu dự án sử dụng hãy CocoaPodslưu ý để luôn mở .xcworkspacetệp thay vì .xcodeprojtệp


1
@RahulPatel Cách cài đặt tệp cụ thể, bạn có thể vui lòng chia sẻ lệnh
Ashok Londhe

Nếu bạn muốn sử dụng phiên bản beta mới, bạn có thể sử dụng:pod 'GoogleAds-IMA-iOS-SDK-For-AdMob', '3.0.beta.16'
Berendschot

27

Nếu bạn có nhiều mục tiêu trong dự án của mình, Cocoapods có thể chỉ tích hợp tốt với chỉ một trong số chúng.

Tôi đã phải liên kết thủ công libPods.atrong "Liên kết nhị phân với thư viện" cho mỗi mục tiêu bổ sung mà tôi có.

libPods.a trong danh sách khung của tôi


Tôi nghĩ cài đặt pod không được tích hợp tập tin libPods.a cho tất cả các mục tiêu, vì Rizwan không được kích hoạt tôi đã thêm và nó hoạt động ... Cảm ơn Rizwan Sattar
Wagh

Điều này làm việc cho tôi mặc dù nó không được hiển thị màu đỏ. Tôi đã chạy cài đặt pod sau đó và nó đã không thêm nó, mọi thứ dường như hoạt động.
Jules

2
Trên thực tế, những gì tôi cần làm là loại bỏ một thư viện .a tên dự án đã lỗi thời vì tôi đã đổi tên dự án trước đó và nó chỉ bị kẹt ở đó. Tôi đánh giá cao câu trả lời của bạn bởi vì nó cung cấp cho tôi một ý tưởng về vấn đề có thể xảy ra.
kalafun

Bạn là một người cứu rỗi cuộc sống!
Yuliwee

24

Sự cố của tôi đã được khắc phục bằng cấu hình sau:

Build Active Architecture Only: YES

Điều này làm việc cho tôi khi tôi gặp sự cố với SDWebImage .... cho những người đã tìm đường đến đây cho thành phần Cocoapod đó
Scott D

Điều này giải quyết vấn đề đó cho tôi, nhưng gây ra một vấn đề khác. Tôi cần xây dựng cho tất cả các kiến ​​trúc, không chỉ là hoạt động.
HotFudgeSunday

Trong một mã cũ tôi đang tích hợp các nhóm. Tôi đang phải đối mặt với vấn đề tương tự. Trên câu trả lời đã giúp.
Shashank Kulshrestha

15

Nếu bất cứ ai đến đây để khắc phục lỗi react-native-fbsdksau khi cài đặt bằng cách sử dụng Cocoapods, hãy nhớ rằng bạn phải xóa tất cả các tệp .a khác trong các giai đoạn xây dựng Dự án của bạn và chỉ giữ .a khỏi cocoapods được gọi libPods-WhateverAppName.a.

Chỉ còn lại ở đây

Điều này thường được gây ra từ việc chạy rnpm link và cách thức hoạt động của rnpm.

Sau khi tôi xóa tệp facebook .a khỏi các giai đoạn xây dựng, dự án của tôi đã hoạt động trở lại.


11

Vấn đề này liên quan đến lPods có thể được khắc phục bằng cách làm theo các bước dưới đây

  • Chọn mục tiêu dự án của bạn.
  • Tới "Build Phases"năm "Link Binary With Libraries".
  • Bây giờ loại bỏ ".a"tập tin của thư viện đó đang tạo ra vấn đề.
  • Làm sạch và xây dựng.

Điều này sẽ làm việc.


Trong trường hợp của tôi loại bỏ libstdc++.6.dylibgiải quyết vấn đề!
Igor de Lorenzi

Làm thế nào và ở đâu bạn đã xóa "libstdc ++. 6.dylib", vì tôi cần xóa "-lstdc ++. 6". Tôi nhận được "thư viện không tìm thấy cho -lstdc ++. 6"
Hari Narayanan

10

Không có câu trả lời nào ở trên đã sửa nó cho tôi.

Những gì tôi đã làm thay vào đó là chạy pod installvới một podlệnh bên ngoài targetphần. Ví dụ:

#WRONG
pod 'SOMEPOD'

target "My Target" do
    pod 'OTHERPODS'
end

Tôi nhanh chóng sửa nó và đưa pod sai lầm trở lại targetphần mà nó thuộc về và chạy pod installlại:

# CORRECT
target "My Target" do
    pod 'SOMEPOD'
    pod 'OTHERPODS'
end

Nhưng điều xảy ra trong thời gian đó là lib -libPods.ađã được thêm vào các thư viện được liên kết của tôi, nó không còn tồn tại nữa và không nên vì đã có sẵn -libPods-My Target.atrong đó.

Vì vậy, giải pháp là đi vào cài đặt Chung của Target của tôi và đi đến Thư viện và Khung được liên kết và chỉ cần xóa -libPods.akhỏi danh sách.


Tôi đã cài đặt cocoapods đúng cách cho dự án của mình, nhưng gặp lỗi tương tự như OP. Xóa -libPods.a đã giải quyết nó cho tôi. Xin cảm ơn, thưa ngài.
NKorotkov

Tôi đang cập nhật một dự án cũ, và loại bỏ Podfile cũ và chạy pod initđể thiết lập một dự án mới, và phát hiện ra tệp cũ giống như # WRONGcách của bạn , và tệp mới cũng như vậy # CORRECT. Cảm ơn bạn!
BJ Miller

8

Các bước của tôi:

  1. Xóa thư mục nhóm và tệp 'Pods'.
  2. Nhập "cài đặt pod" vào Terminal.
  3. Nhập "pod update" vào Terminal.

Ngoài việc đảm bảo "Build Active Architectures" được đặt thành CÓ như đã đề cập trong các câu trả lời trước, đây là điều đã làm cho tôi.


+1 Trong trường hợp của tôi, nếu đó là -lHelpshifthoặc tên cụ thể của nhóm. Sau đó, tôi chỉ loại bỏ thư mục cụ thể như vậy Pods/Helpshift. Sau đó làm pod installlại. Không cần cập nhật. Nó hoạt dộng bây giờ.
haxpor

1
Xóa tất cả các nhóm và sau đó cài đặt lại giúp.
Sanad Liaquat

7

Có một vấn đề tương tự sau khi nâng cấp Deployment targettừ 7.0lên 8.0và cho phépuse_frameworks!

cocoapodskhông xóa các PodName.atập tin được tạo trước đó từFrameworks phần dự án của tôi.

Vì vậy, tôi đã phải xóa chúng bằng tay, vì chúng gây ra linker error


4

Xóa tất cả các tệp / thư mục tương ứng của nguồn cocoapods đã nhập ngoại trừ podfile.

install cocoapod một lần nữa. Điều này sẽ xóa bất kỳ kéo dư thừa từ nguồn ban đầu.


3

Khi bạn sao chép dự án từ một nơi nào đó sử dụng Cocoapods, bạn cần cài đặt chúng vào dự án của mình.

Ở đây từng bước những gì bạn cần làm:

  • 1) sao chép mã nguồn vào máy cục bộ;
  • 2) đóng dự án xcode (nếu mở);
  • 3) cài đặt ứng dụng cocoapods trên máy Mac của bạn bằng cách chạy lệnh này trong terminal: " gem install cocoapods ", thêm " sudo " vào đầu nếu không hoạt động;
  • 4) đi đến thư mục gốc của dự án xcode của bạn bằng cách sử dụng lệnh " cd " trong terminal;
  • 5) bạn nên có Podfile trong thư mục này; nếu bạn muốn kiểm tra kỹ nó bằng lệnh: " cat Podfile ", nó sẽ hiển thị nội dung của tệp này với các Thư viện sẽ phải được cài đặt cho dự án của bạn;
  • 6) sau đó sử dụng lệnh " pod install " để tải xuống và cài đặt Thư viện cho dự án của bạn; các Podfile.lock sẽ được tạo và {tên dự án của bạn} .xcworkspace tập tin;
  • 7) kể từ bây giờ, bạn phải sử dụng {Tên dự án của bạn} .xcworkspace để mở nó trong xcode;

Chúc may mắn!


3

Đây là vấn đề của tôi khi cố gắng tích hợp Firebase vào dự án Xcode của mình bằng cocoapods

library not found for -lGoogleToolboxForMac
linker command failed with exit code 1 (use -v to see invocation)

Sau nhiều giờ tìm kiếm và thử các bản sửa lỗi khác nhau được liệt kê trong stackoverflow, vấn đề của tôi cuối cùng đã được khắc phục bằng các bước sau

  1. Đi đến Build Settings, tìm kiếm Other Linker Flags, loại bỏ tất cả các giá trị mong đợi$(inherited) Hình ảnh

Làm điều này cho tất cả các mục tiêu.

  1. Xóa thư mục nhóm. (ios/Pods )
  2. Làm pod update

Voila! Tất cả các lỗi liên kết sẽ biến mất.


Điều này cần phải xảy ra với tôi là tốt. Tuy nhiên, trong trường hợp của tôi, đó là một ứng dụng gốc phản ứng đã thêm Firebase Analytics. Kể từ tháng 7 năm 2018, tất cả các ứng dụng phải được xây dựng với iOS 11 trên mỗi Apple: developer.apple.com/ios/submit/ Sau khi tôi chuyển đến tab Chung của mình và cuộn xuống Thông tin triển khai / Mục tiêu triển khai và thay đổi từ 10.x là những gì tôi đã nhắm mục tiêu, đến 11.x - ứng dụng được xây dựng / lưu trữ và tôi đã có thể gửi.
bo_

2

Đối với tôi, sau đây đã làm việc.

  1. Chuyển đến "Mục tiêu dự án -> Cài đặt bản dựng -> Tiền xử lý -> Macro tiền xử lý". Đặt "COCOAPODS = 1" trong tất cả Gỡ lỗi, Tích hợp, Phát hành trong "Macro tiền xử lý"
  2. Thêm phần sau vào "Cờ liên kết khác" trong "Mục tiêu dự án"
    1. $ được thừa kế
    2. -OjjC
    3. -lc ++
    4. -all_load

Làm sạch và chạy dự án. Nếu vẫn nhận được lỗi tương tự thì hãy thử bằng cách đặt "Mục tiêu dự án -> Cài đặt bản dựng -> Chỉ xây dựng kiến ​​trúc hoạt động", đặt "Gỡ lỗi" thành "CÓ" và đặt "Tích hợp và phát hành" thành "Không". Sau đó Lặp lại cùng một cài đặt "Chỉ xây dựng kiến ​​trúc hoạt động" cho tất cả "Mục tiêu Pods"

Làm sạch và chạy dự án. Nếu bạn nhận được lỗi sau

 No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch=x86_64, VALID_ARCHS=i386).

Sau đó thử trả lời ông Mike trong liên kết này

Xcode 5.1 - Không có kiến ​​trúc nào để biên dịch cho (ONLY_ACTIVE_ARCH = YES, active arch = x86_64, VALID_ARCHS = i386)

Hy vọng nó giúp!


2

Trong một dự án có nhiều mục tiêu, tôi gặp vấn đề tương tự sau khi thay đổi tên Scheme và App và cố gắng cập nhật các nhóm. Sự cố được gây ra do có nhiều mục trong Giai đoạn xây dựng -> Liên kết nhị phân với Thư viện trong đó cả thư viện .a trước đó và thư viện hiện tại đã được liệt kê, trong khi mục trước không còn tồn tại nữa. Loại bỏ thư viện từ đó xóa vấn đề.


1

Cách của tôi

  1. tạo dự án mới và cài đặt pod nó sẽ có thể chạy mà không gặp lỗi.

  2. Sao chép văn bản trong "Cờ liên kết khác" trong dự án mới sang dự án cũ. Làm dự án cũ để cùng dự án mới.

  3. Kiểm tra "Đường dẫn tìm kiếm tiêu đề" quá.


1

Đối với tôi điều này là làm việc. Tôi đã thay đổi tên ứng dụng của mình từ someApp thành otherApp. Và tôi đang sử dụng vỏ ca cao để tích hợp nhiều dịch vụ của bên thứ ba. Vì vậy, vì đã thêm 2 tệp libPod (Vì tôi đã thay đổi tên và mục tiêu của ứng dụng). Cuối cùng tôi phải xóa một libPod. Va no đa hoạt động.

mục tiêu-> Xây dựng các giai đoạn-> Liên kết nhị phân với các thư viện


1

Tôi đã nhận được cùng một lỗi.

Vấn đề : Tôi đã tạo một Workspace riêng và thêm dự án hiện tại của mình vào đó. Tôi đã gặp lỗi khi tôi làm việc trên Workspace đó.

Cách khắc phục : Sau này tôi thấy rằng Workspace được tạo tự động bên trong dự án hiện tại khi các phụ thuộc được thêm vào. Và phải làm việc trên không gian làm việc đó.


Câu trả lời này không nêu rõ cách khắc phục câu hỏi đã được hỏi
Đánh dấu

1

Giải pháp dưới đây làm việc cho tôi cho phiên bản cốt truyện cốt truyện 2.3. Thực hiện các thay đổi dưới đây trong phần cờ liên kết khác.

1.Thêm $ (được kế thừa) và kéo mục này lên vị trí hàng đầu 2.Remove "Pods-" tiền tố từ -l "Pods-fmemopen, l" Pods-NSAttributionStringMarkdownParser Nott và -l "Pods-MagicalRecord.

nếu vẫn xảy ra sự cố, Cuối cùng hãy xem PODS_ROOT có được đặt hay không. Bạn có thể kiểm tra nó dưới phần do người dùng xác định.


1

Tôi đã từng gặp vấn đề tương tự

cài đặt pod và cập nhật pod trên dòng lệnh giải quyết vấn đề của tôi


1

Nếu dự án sử dụng CocoaPods, hãy lưu ý luôn mở tệp .xcworkspace thay vì tệp .xcodeproj. nếu bạn đang sử dụng .xcworkspace, vui lòng cài đặt lại tệp pod bằng cách xóa các nhóm và một lần nữa chèn các nhóm và cài đặt nó !!! cái này làm việc cho tôi

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.