Không tìm thấy thư viện lỗi vì đã tìm thấy ứng dụng sau khi đưa ứng dụng vào AdMob


150

Tôi gặp lỗi sau khi đặt ứng dụng của mình vào AdMob. Các ứng dụng đã làm việc cho đến ngày hôm nay. Lỗi là như sau:

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

Làm thế nào tôi có thể sửa lỗi này? Cảm ơn bạn.


Hãy thử điều này: stackoverflow.com/questions/1471968/
hàn


Đôi khi: Rút phích cắm thiết bị của bạn và đầu tiên xây dựng dự án. Nó sẽ tạo các thư viện và sau đó bạn sẽ có thể chạy trong thiết bị.
TheTiger

Câu trả lời:


114

Đôi khi bạn chỉ cần xóa tham chiếu của thư viện và thêm tham chiếu lại.

Ngoài việc thêm SDK Google Mobile Ads và các thư viện khác một lần nữa, tôi khuyên bạn nên kiểm tra Đường dẫn tìm kiếm thư viện . Có những trường hợp khi bạn sao chép hoặc sao chép mục tiêu, Xcode quyết định rằng nó cần phải thoát bất kỳ dấu ngoặc kép nào "bằng '\'. Hãy đảm bảo bạn xóa tất cả \ 's - nó sẽ giống như thế này -

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

Tôi đã có thể nhân đôi lỗi, bằng cách thực hiện tiền tố đường dẫn của tôi với nhiều '\'.


tốt, sau khi cài đặt pod, một trong những thư viện đã không được liệt kê ở đó. Tôi không biết tại sao nhưng thêm đường dẫn thư viện làm cho nó hoạt động.
Warewolf

Vâng, điều này đã khắc phục vấn đề của tôi "Thư viện không tìm thấy cho -lART" và nó thực sự không thể tin được! Cảm ơn bạn !
ZedTuX

Cũng xem xét "Đường dẫn tìm kiếm tiêu đề".
Luat Vu Dinh

@raurora Làm thế nào để bạn truy cập đường dẫn tìm kiếm thư viện?
Massimo Frittelli

1
Dự án @MassimoFrittelli> Xây dựng tab Cài đặt> Đường dẫn tìm kiếm. Bạn có thể gõ vào tùy chọn tìm kiếm quá.
raurora

315

Tôi đã có một vấn đề "thư viện không tìm thấy" tương tự. Tuy nhiên đó là do tôi vô tình sử dụng .xcodeprojtệp thay vì .xcworkspacetệp.


4
Ai đó có thể vui lòng giải thích mục đích của .xcodeproj và .xcworkspace không?
EFreak

11
Những thứ như thế này khiến tôi yêu thích hệ sinh thái Javascript
Đánh dấu

Làm thế nào tôi có thể thay đổi điều đó ..?
Braya Loayza

8
xcworkspace là khi bạn sử dụng Cocoapods. Đó không phải là vấn đề Xcode, mà là người dùng.
Azam

1
.xcworkspace là khi bạn có nhiều hơn 1 "dự án" bên trong giải pháp của mình. Ví dụ, bạn có thể có các thư viện bên ngoài (cocoapods) hoặc thư viện của riêng bạn mà bạn sử dụng trong nhiều dự án.
Daniel Benedykt

86

Chọn mục tiêu của bạn, đi đến "Build Phases"trong tệp "Link Binary With Libraries"xóa ".a"của thư viện đó. Làm sạch và xây dựng.


3
Phải, thật kỳ lạ khi Xcode không đánh dấu nó bị thiếu bằng cách tô màu đỏ
brainray

Thực sự tốt đẹp !! vấn đề của tôi là khi tôi thêm khung người dùng vào dự án cũ. Hủy bỏ coreplot.a và hoạt động tốt !!!!
Jose Pose S

66

Nếu lỗi liên quan đến Cocoapods như sau:

library not found for -lPod-...

Bạn cần kiểm tra các Cờ liên kết khác và xóa nó khỏi đó.

Thông tin thêm: Nếu bạn có một dự án cũ sử dụng cocoapods. Và gần đây bạn cần thêm use_frameworks! để podfile của bạn. cocoapods sẽ không thêm các thư viện vào Cờ liên kết khác của bạn nữa vì nó được kế thừa. Do đó, bạn có thể cần xóa chúng theo cách thủ công khỏi các cờ liên kết khác mà chúng đã được thêm trước khi sử dụng use_frameworks!


1
Tôi có nhiều cờ ở đây, tôi nên xóa tất cả hay chỉ một cái cho Pod?
Mayur Deshmukh

Nếu những lá cờ gây ra một vấn đề. bạn nên loại bỏ chúng hoặc giữ chúng và thêm thư viện nếu bạn vẫn muốn sử dụng nó.
hasan

1
Tôi đoán điều đó xảy ra khi bạn cố gắng loại bỏ thư viện được thêm bằng vỏ ca cao bằng tay. Cách chính xác là xóa thư viện khỏi podfile của bạn. sau đó bạn chạy lại cài đặt pod
hasan

1
Cảm ơn!! Đây là một đầu mối cho tôi :). Trong trường hợp của tôi, mục tiêu trùng lặp đã chia mỗi -l "khung" thành hai dòng "-l" và "khung" !!
Eva Madrazo

1
@IanSteffy chỉ cần kết hợp nó
Eva Madrazo

57

Đối với trường hợp của tôi Xcode 7 , cũng hoạt động trong Xcode 9.1

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

đặt Build Active architecture OnlythànhYes

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


2
Còn khi chúng ta cần tạo bản dựng Sản xuất cho App Store thì sao? Ý tôi là nó KHÔNG nên cho Build Build.
Jabbar

đồng ý rằng nó KHÔNG nên được sản xuất
Ted

2
Điều này sẽ KHÔNG ảnh hưởng đến Cài đặt Xây dựng Sản xuất?
Jabbar

1
Làm việc cho tôi khi tích hợp SDK Pinterest trên XCode 9.2 và iOS 11.
Aakash Aggarwal

21

Điều này xảy ra nếu bạn đang sử dụng cocoapods, sử dụng .xcworkspacetệp thay vì .xcodeprojtệp mặc định .


15

Nếu lỗi như sau

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

Tôi thấy rằng một tệp "libPods.a" có màu đỏ (giống như các tệp bị thiếu) đã được tạo ra bằng cách nào đó trong nhóm Khung của dự án. Tôi chỉ cần xóa tập tin đó và mọi thứ đều ổn.

EDIT: Một giải pháp khác

Một giải pháp khác mà tôi đã trả lời trong câu hỏi tương tự là trong liên kết này


12

goto Build Ph Phase -> Liên kết nhị phân với thư viện và xóa thư viện hiển thị lỗi vì thư viện đó không có sẵn trong thư mục dự án


Điều này đã khắc phục vấn đề cụ thể của tôi. Tôi có hai thư viện có tên tương tự, một tên libPods-Foo BarTests.avà một tên khác libPods-FooBarTests.a.
edenwaith 16/03/18

9

Điều này cũng có thể xảy ra nếu bạn mở tệp dự án thay vì không gian làm việc. Tôi đã lãng phí như một ngày theo cách này.


1
thật tuyệt vời, tôi cũng đã thực hiện cập nhật pod trong khi đóng không gian làm việc sau đó mở nó sau khi cập nhật pod kết thúc
Badr

5

Trả lời muộn nhưng đây là danh sách những điều tôi đã thử. Vì vậy, nó sẽ ở một nơi nếu có ai muốn thử khắc phục sự cố.

  1. Kiến trúc hợp lệ = armv7 armv7s
  2. Chỉ xây dựng kiến ​​trúc hoạt động = KHÔNG
  3. Mục tiêu -> Cài đặt bản dựng -> Cờ liên kết khác = $ (được kế thừa)
  4. Mục tiêu -> Xây dựng cài đặt -> Đường dẫn tìm kiếm thư viện = $ (được kế thừa)
  5. Sản phẩm sạch
  6. Cập nhật Pod trong thiết bị đầu cuối

2

Trong trường hợp của tôi đã có một vấn đề đặt tên. Thư viện của tôi đã được gọi ios-admob-mm-adapter.a, nhưng Xcode dự kiến, tên đó sẽ bắt đầu bằng lib tiền tố . Tôi vừa đổi tên lib của mình thành libios-admob-mm-adapter.avà sửa lỗi.

Tôi sử dụng Cocoapods và nó liên kết các thư viện với tùy chọn cờ liên kết khác trong cài đặt xây dựng mục tiêu của tôi. Lá cờ trông như-l"ios-admob-mm-adapter"

Hy vọng nó sẽ giúp người khác


2

Đơn giản, GoogleAdMobAds.alà thiếu trong mục tiêu dự án. Đối với tôi đó là libAdIdAccessLibrary.aVui lòng kiểm tra ảnh chụp màn hình đính kèm

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


2

Đối với tôi vấn đề này xảy ra vì tôi đã cài đặt Thư viện vật liệu cho iOS. để giải quyết vấn đề này

1: Chuyển đến Cài đặt bản dựng của ứng dụng mục tiêu của bạn.

2: Tìm kiếm các cờ liên kết khác

3: Mở các cờ liên kết khác và kiểm tra thư viện được đề cập trong lỗi.

4: xóa cờ đó.

5: Làm sạch và xây dựng.

Tôi hy vọng điều này khắc phục vấn đề của bạn.


2

Trong trường hợp ld: library not found for -{LIBRARY_NAME}xảy ra vì (các) tệp thư viện không tồn tại.

Kiểm tra đường dẫn thư viện trên tab Đường dẫn tìm kiếm thư viện của mục tiêu ứng dụng của bạn.

Đường dẫn (các) tệp thư viện phải theo đường dẫn thực, ví dụ nếu (các) tệp của bạn trong thư mục gốc của dự án, bạn phải đặt đường dẫn như $(PROJECT_DIR)


1

Tôi biết điều này hơi cũ, nhưng tôi vừa gặp một vấn đề tương tự và chạy 'pod update' đã sửa lỗi này cho tôi. Lỗi thư viện của tôi là do AFNetworking ...

Chỉ cần cẩn thận thực hiện cập nhật pod nếu bạn không sử dụng các phiên bản rõ ràng trong tệp pod của bạn.


1

Lỗi này rất kỳ lạ.

Tôi đã gặp lỗi này với -ldAfnetworking và tôi chỉ sao chép dự án của mình trong đường dẫn và công việc khác.


1

Tôi đã thử đổi tên cấu hình xây dựng của mình Releasethành Production, nhưng hình như vỏ ca cao không thích nó. Tôi đã đổi tên nó một lần nữa Releasevà mọi thứ đều ổn.


bạn cũng có thể đổi tên mục tiêu trong podfile.
Romain TAILLANDIER

1

Câu trả lời của @ raurora chỉ cho tôi đi đúng hướng. Tôi đã bao gồm các thư viện trong đường dẫn "watchkitapp Extension / lib". Trong trường hợp này, Đường dẫn tìm kiếm thư viện cần được thoát bằng '\', nhưng trình liên kết dường như không hiểu điều này. Để khắc phục / khắc phục sự cố, tôi đã di chuyển đường dẫn lib của mình lên một cấp để nó không còn trong thư mục chứa khoảng trắng trong tên.


1

Tôi chỉ cập nhật tệp pod 'pod update' và nó bắt đầu hoạt động bình thường với tôi.


1

Chạy 'pod update' trong dự án của tôi đã khắc phục sự cố của tôi với lỗi 'thư viện không tìm thấy vì lỗi -lSTPopup'.

Nhận xét câu trả lời của Trevor Panhorst:

"Hãy cẩn thận thực hiện cập nhật pod nếu bạn không sử dụng các phiên bản rõ ràng trong tệp pod của mình."


1

Giải pháp dễ dàng. Đây là cách tôi khắc phục sự cố:

  1. Vào thư mục platforms/ios
  2. Sau đó, thực hiện lệnh pod install

Đó là nó. Điều này sẽ cài đặt thư viện bị thiếu.


1
  1. Làm sạch thư mục xây dựng
  2. Đã khởi động lại XCode

Đã đi ...


1

Đó là lỗi thời gian biên dịch cho một Static Librarynguyên nhân gây ra bởiStatic Linker

ld: library not found for -l<Library_name>
  1. Bạn có thể gặp lỗi Library not found forkhi bạn không bao gồm đường dẫn thư viện tớiLibrary Search Paths

    ldcó nghĩa là Static Linkerkhông thể tìm thấy một vị trí của thư viện. Là một nhà phát triển, bạn nên giúp đỡ người liên kết và chỉ raLibrary Search Paths

    Build Settings -> Search Paths -> Library Search Paths 
  2. Ngoài ra, bạn có thể gặp lỗi này nếu lần đầu tiên mở một dự án mới ( .xcodeproj) với sự hỗ trợ của Cocoapods, hãy chạy pod update. Để khắc phục, chỉ cần đóng dự án này và mở một không gian làm việc thay thế ( .xcworkspace)


0

Tôi đã nhận được lỗi tương tự trên thư viện không tìm thấy. Cuối cùng, đây là cách tôi có thể giải quyết nó

  1. Trước khi bắt đầu với Xcode Archive, sử dụng flutter build iOS
  2. Đã thay đổi Mục tiêu triển khai IOS thành mục tiêu cao hơn iOS 11.2. Trước đó tôi có một cái gì đó giống như 8.0 đã đưa ra tất cả các lỗi trên.
  3. Đảm bảo rằng các mục tiêu triển khai IOS trong Xcode giống nhau trong Project, Target và Pods
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.