เกิดข้อผิดพลาด“ ไม่พบไลบรารี่” หลังจากใส่แอปพลิเคชันใน AdMob


150

ฉันได้รับข้อผิดพลาดหลังจากใส่ใบสมัครของฉันใน AdMob แอปพลิเคชันทำงานมาจนถึงทุกวันนี้ ข้อผิดพลาดดังต่อไปนี้:

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

ฉันจะแก้ไขสิ่งนี้ได้อย่างไร ขอบคุณ.


ลองทำดังนี้: stackoverflow.com/questions/1471968/…
nmh


บางครั้ง: ถอดปลั๊กอุปกรณ์ของคุณและสร้างโครงการก่อน มันจะสร้างไลบรารีจากนั้นคุณจะสามารถเรียกใช้ในอุปกรณ์
TheTiger

คำตอบ:


114

บางครั้งคุณเพิ่งลบการอ้างอิงของไลบรารีและเพิ่มการอ้างอิงอีกครั้ง

นอกเหนือจากการเพิ่มโฆษณา Google Mobile SDK และห้องสมุดอื่น ๆ อีกครั้งจากรอยขีดข่วนผมจะแนะนำให้คุณตรวจสอบห้องสมุดค้นหาเส้นทาง มีหลายครั้งที่คุณคัดลอกหรือทำซ้ำเป้าหมาย Xcode ตัดสินใจว่ามันจำเป็นต้องหลีกเลี่ยงอัญประกาศใด ๆ "ด้วย '\' ตรวจสอบให้แน่ใจว่าคุณได้ลบเครื่องหมาย \ 'ทั้งหมดออกแล้ว - ควรมีลักษณะเช่นนี้ -

ป้อนคำอธิบายรูปภาพที่นี่

ฉันสามารถทำซ้ำข้อผิดพลาดได้โดยทำ prefixing path ด้วย '\' หลายอัน


สิ่งที่ดีหลังจากติดตั้งพ็อดแล้วห้องสมุดแห่งหนึ่งไม่อยู่ในรายการ ฉันไม่รู้ว่าทำไม แต่การเพิ่มเส้นทางไลบรารีทำให้ใช้งานได้
Warewolf

อย่างนี้แก้ไขปัญหาของฉัน "ไม่พบห้องสมุดสำหรับ --lart" และมันไม่น่าเชื่อจริงๆ! ขอบคุณ !
ZedTuX

พิจารณา "เส้นทางการค้นหาส่วนหัว" ด้วย
Luat Vu Dinh

@raurora คุณเข้าถึงเส้นทางการค้นหาของห้องสมุดได้อย่างไร
Massimo Frittelli

1
@MassimoFrittelli Project> แท็บสร้างการตั้งค่า> เส้นทางการค้นหา คุณสามารถพิมพ์บนตัวเลือกการค้นหาได้เช่นกัน
raurora

315

ฉันมีปัญหา "ห้องสมุดไม่พบ" ที่คล้ายกัน อย่างไรก็ตามเป็นเพราะฉันบังเอิญใช้.xcodeprojไฟล์แทน.xcworkspaceไฟล์


4
ใครช่วยอธิบายวัตถุประสงค์ของ. xcodeproj และ. xcworkspace ได้ไหม
EFreak

11
สิ่งนี้ทำให้ฉันรักระบบนิเวศ Javascript
Mark

ฉันจะเปลี่ยนสิ่งนั้นได้อย่างไร .. ?
Brayan Loayza

8
xcworkspace คือเมื่อคุณใช้ Cocoapods มันไม่ใช่ปัญหา Xcode แต่เป็นผู้ใช้
Azam

1
.xcworkspace คือเมื่อคุณมี "โครงการ" มากกว่า 1 รายการในโซลูชันของคุณ ตัวอย่างเช่นคุณสามารถมีห้องสมุดภายนอก (cocoapods) หรือห้องสมุดของคุณเองที่คุณใช้ในหลายโครงการ
Daniel Benedykt

86

เลือกเป้าหมายของคุณไปที่"Build Phases"ในการ"Link Binary With Libraries"ลบ".a"ไฟล์ของไลบรารีนั้น ทำความสะอาดและสร้าง


3
ใช่แปลกมากที่ Xcode ไม่ได้ทำเครื่องหมายว่าหายไปด้วยการระบายสีมันเป็นสีแดง
ระดมสมอง

ดีจริงๆ!! ปัญหาของฉันคือเมื่อฉันเพิ่มกรอบผู้ใช้ในโครงการเก่า ลบ coreplot.a และใช้งานได้ดี !!!!
Jose Pose S

66

หากข้อผิดพลาดเกี่ยวข้องกับ Cocoapods ดังต่อไปนี้:

library not found for -lPod-...

คุณต้องตรวจสอบOther Linker Flagsและนำออกจากที่นั่น

ข้อมูลเพิ่มเติม:หากคุณมีโครงการเก่าที่ใช้ cocoapods และเมื่อเร็ว ๆ นี้คุณต้องเพิ่มuse_frameworks! ไปที่ podfile ของคุณ cocoapods จะไม่เพิ่มห้องสมุดใน Other Linker Flags ของคุณอีกต่อไปทำให้เกิดการสืบทอด ดังนั้นคุณอาจจำเป็นต้องลบสิ่งเหล่านั้นออกจากธงตัวเชื่อมโยงอื่น ๆ ที่ถูกเพิ่มเข้าไปก่อนที่จะใช้ use_frameworks!


1
ฉันมีธงจำนวนมากที่นี่ฉันควรลบทั้งหมดหรือเพียงแค่หนึ่งสำหรับ Pod?
Mayur Deshmukh

หากธงเหล่านั้นทำให้เกิดปัญหา คุณควรลบออกหรือเก็บไว้และเพิ่มห้องสมุดหากคุณยังต้องการใช้
hasan

1
ฉันเดาว่าจะเกิดขึ้นเมื่อคุณพยายามลบห้องสมุดที่เพิ่มโดยฝักโกโก้ด้วยตนเอง วิธีที่ถูกต้องคือการลบไลบรารีออกจาก podfile ของคุณ จากนั้นคุณเรียกใช้การติดตั้งพ็อดอีกครั้ง
Hasan

1
ขอบคุณ !! นี่เป็นเบาะแสสำหรับฉัน :) ในกรณีของฉันเป้าหมายที่ซ้ำกันได้แบ่งทุก -l "framework" ในสองบรรทัด "-l" และ "framework" !!
Eva Madrazo

1
@IanSteffy เพียงรวมเข้าด้วยกัน
Eva Madrazo

57

สำหรับกรณีของฉันXcode 7ยังทำงานในXcode 9.1

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

กำหนดBuild Active architecture Onlyเป็นYes

ป้อนคำอธิบายรูปภาพที่นี่


2
เมื่อไรที่เราจำเป็นต้องสร้างบิลด์การผลิตสำหรับ App Store ฉันหมายความว่ามันควรจะไม่ใช่สำหรับการสร้างการผลิต
Jabbar

เห็นด้วยควรจะไม่มีการผลิต
Ted

2
สิ่งนี้จะไม่มีผลกระทบกับการติดตั้งการผลิตสร้างหรือไม่
Jabbar

1
ทำงานให้ฉันในขณะที่ผสานรวม Pinterest SDK บน XCode 9.2 และ iOS 11
Aakash Aggarwal

21

สิ่งนี้จะเกิดขึ้นหากคุณใช้ cocoapod ให้ใช้.xcworkspaceไฟล์แทน.xcodeprojไฟล์เริ่มต้น


15

หากข้อผิดพลาดเป็นดังนี้

ld: ไม่พบไลบรารีสำหรับ -lpods

ฉันพบว่าไฟล์ "libPods.a" ซึ่งเป็นสีแดง (เช่นไฟล์ที่หายไป) ถูกสร้างขึ้นอย่างใดในกลุ่ม Framework ของโครงการ ฉันเพิ่งลบไฟล์นั้นและทุกอย่างก็ดี

แก้ไข: โซลูชันอื่น

โซลูชันอื่นที่ฉันตอบไปแล้วในคำถามที่คล้ายกันคือในลิงค์นี้


12

goto Build Phases -> เชื่อมโยงไบนารี่กับไลบรารี่และลบไลบรารี่ที่แสดงข้อผิดพลาดเนื่องจากไลบรารี่นั้นไม่พร้อมใช้งานในโฟลเดอร์โครงการ


นี่เป็นการแก้ไขปัญหาเฉพาะของฉัน ฉันมีไลบรารี่ที่คล้ายกันสองชื่อหนึ่งชื่อlibPods-Foo BarTests.aและอีกชื่อหนึ่งชื่อ libPods-FooBarTests.a
edenwaith

9

สิ่งนี้สามารถเกิดขึ้นได้หากคุณเปิดไฟล์โครงการแทนเวิร์กสเปซ ฉันเสียวันนี้เอง


1
ยอดเยี่ยมฉันยังได้อัปเดตพ็อดในขณะที่ปิดพื้นที่ทำงานจากนั้นเปิดขึ้นหลังจากอัปเดตพ็อดเสร็จแล้ว
Badr

5

มาสายสำหรับคำตอบ แต่นี่คือรายการสิ่งที่ฉันพยายามดังนั้นมันจะอยู่ในที่เดียวถ้าใครต้องการลองแก้ไขปัญหา

  1. สถาปัตยกรรมที่ถูกต้อง = armv7 armv7s
  2. สร้างสถาปัตยกรรมที่ใช้งานอยู่เท่านั้น = ไม่
  3. เป้าหมาย -> การตั้งค่าการสร้าง -> ค่าสถานะตัวเชื่อมโยงอื่น ๆ = $ (สืบทอดมา)
  4. เป้าหมาย -> การตั้งค่าการสร้าง -> เส้นทางการค้นหาห้องสมุด = $ (สืบทอดมา)
  5. ผลิตภัณฑ์ทำความสะอาด
  6. Pod Update ในเทอร์มินัล

2

ในกรณีของฉันมีปัญหาการตั้งชื่อ ห้องสมุดของฉันถูกเรียกios-admob-mm-adapter.aแต่ Xcode คาดหวังว่าชื่อที่ควรเริ่มต้นด้วยคำนำหน้าlib ฉันเพิ่งเปลี่ยนชื่อ lib เป็นlibios-admob-mm-adapter.aและแก้ไขปัญหา

ฉันใช้ Cocoapods และมันเชื่อมโยงไลบรารีกับตัวเลือกอื่น ๆ ตัวเชื่อมโยงธงในการสร้างการตั้งค่าเป้าหมายของฉัน ธงดูเหมือนว่า-l"ios-admob-mm-adapter"

หวังว่ามันจะช่วยคนอื่น


2

เพียงแค่GoogleAdMobAds.aขาดหายไปในเป้าหมายของโครงการ สำหรับฉันมันเป็นlibAdIdAccessLibrary.aกรุณาตรวจสอบภาพหน้าจอที่แนบมา

ป้อนคำอธิบายรูปภาพที่นี่


2

สำหรับฉันปัญหานี้เกิดขึ้นเพราะฉันติดตั้งไลบรารีวัสดุสำหรับ IOS เพื่อแก้ไขปัญหานี้

1: ไปที่การตั้งค่า Buildของแอปเป้าหมายของคุณ

2: ค้นหาธงลิงเกอร์อื่น ๆ

3: เปิดแฟล็กเกอร์ลิงก์อื่นและตรวจสอบไลบรารี่ที่กล่าวถึงในข้อผิดพลาด

4: ลบแฟล็กนั้น

5: ทำความสะอาดและสร้าง

ฉันหวังว่านี่จะแก้ไขปัญหาของคุณ


2

ในกรณีที่ld: library not found for -{LIBRARY_NAME}เกิดขึ้นเพราะไฟล์ไลบรารีไม่มีอยู่

ตรวจสอบเส้นทางของห้องสมุดในแท็บ "เส้นทางการสร้าง" ของห้องสมุดเป้าหมาย

เส้นทางไฟล์ห้องสมุดจะต้องเป็นไปตามเส้นทางจริงเช่นหากไฟล์ของคุณในรากของโครงการคุณต้องตั้งค่าเส้นทางเช่น $(PROJECT_DIR)


1

ฉันรู้ว่ามันค่อนข้างเก่า แต่ฉันเพิ่งพบปัญหาที่คล้ายกันและเรียกใช้ 'การอัปเดตพ็อด' แก้ไขปัญหานี้ให้ฉัน ห้องสมุดของฉันมีข้อผิดพลาดกับ AFNetworking ...

เพียงใช้ความระมัดระวังในการอัปเดตพ็อดหากคุณไม่ใช้เวอร์ชันที่ชัดเจนในไฟล์พ็อด


1

ข้อผิดพลาดนี้แปลกมาก

ฉันมีข้อผิดพลาดนี้ด้วย -ldAfnetworking และฉันคัดลอกโครงการของฉันในเส้นทางและการทำงานอื่นเท่านั้น


1

ฉันพยายามเปลี่ยนชื่อกำหนดค่าการสร้างของฉันReleaseไปProductionแต่เห็นได้ชัดฝักโกโก้ไม่ชอบมัน ฉันเปลี่ยนชื่อใหม่อีกครั้งReleaseและทุกอย่างก็ใช้ได้


คุณสามารถเปลี่ยนชื่อเป้าหมายใน podfile ได้เช่นกัน
Romain TAILLANDIER

1

คำตอบของ @aura ชี้ให้ฉันในทิศทางที่ถูกต้อง ฉันรวมไลบรารีในเส้นทาง "watchkitapp Extension / lib" ของฉัน ในกรณีนี้เส้นทางการค้นหาของห้องสมุดจะต้องได้รับการยกเว้นด้วย '\' แต่ตัวเชื่อมโยงดูเหมือนจะไม่เข้าใจสิ่งนี้ ในการแก้ไข / แก้ไขปัญหาฉันย้ายพา ธ lib ขึ้นไปหนึ่งระดับดังนั้นจึงไม่อยู่ในไดเรกทอรีที่มีช่องว่างในชื่ออีกต่อไป


1

ฉันเพิ่งอัปเดตไฟล์พ็อด 'พ็อดอัปเดต' แล้วมันก็เริ่มทำงานให้ฉันตามปกติ


1

การเรียกใช้ 'การอัปเดตพ็อด' ในโครงการของฉันแก้ไขปัญหาด้วยข้อผิดพลาด 'ไม่พบไลบรารี่สำหรับ -lSTPopup'

คำตอบของ Trevor Panhorst:

"โปรดใช้ความระมัดระวังในการอัปเดตพ็อดหากคุณไม่ใช้เวอร์ชันที่ชัดเจนในไฟล์พ็อด"


1

ทางออกที่ง่าย นี่คือวิธีที่ฉันจะแก้ไขปัญหา:

  1. ไปที่ไดเรกทอรี platforms/ios
  2. จากนั้นดำเนินการคำสั่ง pod install

แค่นั้นแหละ. สิ่งนี้ควรติดตั้งไลบรารีที่หายไป



1

มันเป็นข้อผิดพลาดในการรวบรวมเวลาสำหรับStatic Libraryที่เกิดจากStatic Linker

ld: library not found for -l<Library_name>
  1. คุณสามารถได้รับข้อผิดพลาดLibrary not found forเมื่อคุณไม่ได้รวมเส้นทางห้องสมุดไปที่Library Search Paths

    ldหมายถึงStatic Linkerสิ่งที่ไม่สามารถหาที่ตั้งของห้องสมุด ในฐานะนักพัฒนาคุณควรช่วยลิงเกอร์และชี้นำLibrary Search Paths

    Build Settings -> Search Paths -> Library Search Paths 
  2. นอกจากนี้คุณจะได้รับข้อผิดพลาดนี้ถ้าคุณเป็นครั้งแรกเปิดโครงการใหม่ ( .xcodeproj) ด้วยการสนับสนุน Cocoapods pod updateวิ่ง หากต้องการแก้ไขเพียงแค่ปิดโครงการนี้และเปิดพื้นที่ทำงานที่สร้างขึ้นแทน ( .xcworkspace)


0

ฉันพบข้อบกพร่องที่คล้ายกันในห้องสมุดไม่พบ ในที่สุดนี่คือวิธีที่ฉันสามารถแก้ไขได้

  1. ก่อนที่จะเริ่มต้นด้วย Xcode Archive ใช้ flutter สร้าง iOS
  2. เปลี่ยน IOS Deployment Target เป็น iOS 11.2 ที่สูงขึ้น ก่อนหน้านี้ฉันมีบางอย่างเช่น 8.0 ซึ่งให้ข้อผิดพลาดด้านบนทั้งหมด
  3. ตรวจสอบให้แน่ใจว่าเป้าหมายการปรับใช้ IOS ใน Xcode เหมือนกันในโครงการเป้าหมายและพ็อด
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.