iOS - บิลด์ล้มเหลวด้วย CocoaPods ไม่พบไฟล์ส่วนหัว


190

ฉันมีโครงการ iOS ที่ใช้ CocoaPods ทุกอย่างทำงานได้อย่างราบรื่นจนกระทั่งผู้พัฒนารายอื่นเริ่มทำงานในโครงการเดียวกัน เขาทำการเปลี่ยนแปลงบางอย่าง (เฉพาะโค้ดเท่าที่ฉันรู้) และสร้างสาขาใหม่ใน repo ฉันตรวจสอบสาขาของเขาและพยายามสร้างมันขึ้นมา แต่ฉันได้รับข้อผิดพลาด: ไม่พบไฟล์ ASLogger / ASLogger.h

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


3
แทนการใช้รูปแบบราคาคู่, #import "ASLogger.h" ฉันพยายามนี้ #import <ASLogger.h> และมันทำงานให้ฉัน :)
Baig

2
FYI: คำตอบง่ายๆของ Baigs แก้ไขปัญหาของฉันโดยไม่ค้นหาส่วนหัว
Pedroinpeace

คำตอบ:


205

ปรับปรุง

ตรวจสอบให้แน่ใจว่าการPodfileรวมlink_withไว้ในเป้าหมายไม่มีไฟล์กำหนดค่า Cocoapods ตั้งค่าเป้าหมายแรกเป็นค่าเริ่มต้นเท่านั้นมิฉะนั้น เช่น

platform :osx, '10.7'
pod 'JSONKit',       '~> 1.4'

link_with 'Pomo', 'Pomo Dev', 'Pomo Tests'

------ สิ้นสุดการอัพเดท


หมายเหตุ: โปรดทราบว่าคุณจะต้องมองหาโครงการ -> ข้อมูล -> การกำหนดค่าสำหรับขั้นตอนด้านล่าง


ฉันมีอาการคล้ายกันและพบว่าpods.xcconfigไฟล์ดังกล่าวไม่ได้ถูกรวมไว้ในไฟล์เฉพาะที่targetฉันพยายามสร้าง โซลูชันที่แนะนำอื่น ๆ บางอย่างใช้ได้ผลสำหรับฉัน แต่วิธีนี้ดูเหมือนจะเป็นส่วนหนึ่งของปัญหาพื้นฐาน

Pods.xcconfig ไม่ทำงาน

วิธีแก้ไขง่ายๆคือเปลี่ยนชุดไฟล์กำหนดค่าสำหรับเป้าหมายที่ไม่มีหนึ่งชุด

Pods.xcconfig ทำงาน


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

1
วิธีแก้ปัญหาสุดท้าย: พ็อดถูกเพิ่มเข้ากับเป้าหมายแรกเท่านั้นไม่ใช่ไปยังเป้าหมายการทดสอบทดสอบต่าง ๆ (อัลฟ่า, เบต้า, ตัวเลือกการปลดปล่อย)! ขอบคุณมาก ๆ !
JOM

ใช้link_withเพื่อระบุเป้าหมายอื่นของฉันที่ทำงานให้ฉัน ขอบคุณมาก. ฉันเพิ่งใช้เวลาหลายชั่วโมงในการนี้
Dylan Hand

สิ่งนี้ได้ผลสำหรับฉัน! ฉันโคลนโครงการที่มีอยู่แล้วปรับปรุงพ็อด ดังนั้นฉันคาดเดาการอัปเดตพ็อดพลิกการตั้งค่าบางอย่างหรือไฟล์เพลง dev ใช้ xcode 5 หรือบางอย่าง (ฉันอยู่บน xcode 6) ขอบคุณ !!!
เรือนกระจก

4
link_withไม่ได้รับการสนับสนุนใน Cocoapods 1.0 หรือสูงกว่า
Vive

90

ปรับปรุง

ฉันได้อัปเดตสิ่งนี้ตั้งแต่คำตอบดั้งเดิมของฉันนั่นคือ downvote ดังนั้นฉันหวังว่านี่จะช่วยได้ และถ้าเป็นเช่นนั้นหวังว่าจะได้รับการโหวตกลับของฉัน

HEADER_SEARCH_PATHSถ้าส่วนหัวจะไม่ถูกนำเข้าคุณอาจมีความขัดแย้งในส่วน ลองและเพิ่ม$(inherited)ไปยังเส้นทางการค้นหาส่วนหัวในการตั้งค่าการสร้างของคุณเพื่อให้แน่ใจว่ามันจะดึงในเส้นทางการค้นหาใด ๆ ที่รวมอยู่ในไฟล์. xcconfig จาก CocoaPods ของคุณ

สิ่งนี้จะช่วยในเรื่องความขัดแย้งและนำแหล่งที่มาของคุณมาอย่างถูกต้อง


2
ฉันประสบปัญหา: ไฟล์ Pod ไม่ถูกตรวจพบในแอปและ 'ปัญหาโฟลเดอร์ที่ถูกบล็อก' ที่เกิดขึ้นเมื่อคุณลบหรือย้ายไดเรกทอรีย่อย. svn: การแก้ไข: โดยทำตามขั้นตอนต่อไปนี้: ติดตั้ง CocoaPods จากแอพเท่านั้น มีไฟล์ xcodeproj อยู่แล้ว (อ้างถึง: stackoverflow.com/questions/16427421/ … ) 2. ติดตั้ง podfiles อีกครั้ง (เรียกว่า: raywenderlich.com/12139/introduction-to-cocoapods ) 3. $ (สืบทอดมา) เพิ่มธงในเป้าหมาย 'HEADER_SEARCH_PATHS' และอีกครั้ง 'OTHER_LDFLAGS' ของแอป
Alphonse R. Dsouza

1
คุณอาจต้องเพิ่ม $ (สืบทอดมา) ในการตั้งค่า FRAMEWORK_SEARCH_PATHS ของคุณ
จอร์จ

1
@ AlphonseR.Dsouza โซลูชันของคุณใช้งานได้สำหรับฉัน - เพิ่ม $ (สืบทอด) ไปยัง OTHER_LDFLAGS ขอบคุณหนึ่งล้าน!
Nika Kasradze

3
ควรเพิ่ม $ (สืบทอดมา) ในการตั้งค่าโครงการหรือการตั้งค่าเป้าหมายหรือไม่
skypirate

ฉันมีปัญหาที่คล้ายกันฉันไม่เคยมีประสบการณ์กับพ็อดมาก่อน ใน Podfile ฉันไม่ได้พูดถึง 2 เป้าหมาย ใช่ฉันมี 2 เป้าหมาย เมื่อฉันพูดถึงเป้าหมายที่ 2 และอัปเดตไฟล์ Pod แล้วเทอร์มินัลแจ้งเตือนคล้ายกับคำแนะนำของคุณเพื่อเพิ่ม $ ที่สืบทอดมา ฉันทำและทำงานได้อย่างสมบูรณ์
Jasmeet

78

1.Check

การตั้งค่าการสร้าง -> เส้นทางการค้นหา -> เส้นทางการค้นหาส่วนหัวของผู้ใช้ ->

  • "$ {PODS_ROOT} /" แบบเรียกซ้ำ

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

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

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

2. ตรวจสอบรูปแบบการนำเข้า (KEY POINT) หากคุณpodfileตั้งค่าไว้แล้ว

use_frameworks!

ในตัวคุณFile-Bridging-Header.hฟอร์แมตเตอร์ควรเป็นแบบนี้

#import "MBProgressHUD.h"

อื่นควรอยู่ด้านล่าง

#import <MBProgressHUD.h>

3. นั่นจะต้องทำงาน! เชื่อฉัน


1
ข้อผิดพลาดส่วนใหญ่จะหายไป อย่างไรก็ตามฉันต้องทำอย่างไรเมื่อการพึ่งพามีข้อความสั่งการนำเข้าเช่น: #import <EARestrictedScrollView / EARestrictedScrollView.h> จากนั้นคอมไพเลอร์บอกให้ฉันเขียน #import EARestrictedScrollView.h แทน แต่ฉันไม่สามารถแก้ไขพ็อดของฉันได้
productioncoder

62

ไฟล์ส่วนหัวคุณจะตายฉัน ...

ในที่สุดก็ให้มันทำงานโดยการเพิ่ม (รวมถึงคำพูด)

"${PODS_ROOT}/BuildHeaders"

ไปที่รายการพา ธ การค้นหาส่วนหัวของผู้ใช้และทำเครื่องหมาย 'เรียกซ้ำ'


6
โปรดทราบว่าคำพูดมีความสำคัญมากที่นี่ หากไม่มีพวกเขาฉันก็ไม่สามารถทำงานได้
DiscDev

5
+1 ฉันมีอยู่แล้ว$(inherited)(ไม่ได้ใช้งาน) แต่เพิ่มสิ่งนี้ให้กับฉันแล้ว
iwasrobbed

ไม่ได้สิ่งที่คุณพยายามจะพูด : / คุณช่วยอธิบายได้ไหม?
rohan-patel

อีกหนึ่งเคล็ดลับที่มีประโยชน์คือการทำให้เวิร์กสเปซและพ็อดไดเรกทอรีและพ็อดติดตั้งหายไป โดยทั่วไปนี่เป็นวิธีการแก้ปัญหาที่สมบูรณ์มากขึ้น
averydev

1
ในที่สุดก็ช่วยให้ AppCode ค้นหาการนำเข้าไฟล์ส่วนหัวทั้งหมดได้อย่างถูกต้อง หากปราศจากสิ่งนี้มันจะทำงานใน xCode แต่ไม่ใช่ใน AppCode ขอบคุณ!
sarsonj

52

ฉันพบว่า${PODS_HEADERS_SEARCH_PATHS}มันขาดหายไปและไม่ได้นิยามไว้ในสาขาพัฒนาคอมไพล์ของฉันดังนั้นฉันจึงเพิ่ม "$(SRCROOT)/Pods/Headers/"เส้นทางการค้นหาส่วนหัวด้วยการเรียกซ้ำ

ไม่เป็นไรสำหรับฉัน


นี่คือคำตอบสำหรับฉันฉันอัปเดต cocoapods และฉันคิดว่านั่นทำให้ PODS_HEADERS_SEARCH_PATHS หายไป โซลูชันของฉันคล้ายกับสิ่งนี้ แต่ฉันใช้ "$ (PODS_ROOT) / ส่วนหัว"
Andrew Aitken

คำตอบอื่น ๆ ใช้ไม่ได้สำหรับฉัน แต่อันนี้ใช้ได้ ฉันจะทราบว่าฉันไม่ได้รวม "ดังนั้นเส้นทางการค้นหาส่วนหัวของฉันมีลักษณะเช่นนี้$(SRCROOT)/Pods/Headers
Blakedallen

@ สวัสดีฉันต้องเพิ่ม $ (SRCROOT) / พ็อด / ส่วนหัว / ที่ไหน ชื่นชมมัน
VAAA

1
@VAAA เป้าหมาย> สร้างการตั้งค่า> เส้นทางการค้นหาส่วนหัว
Hlung

ฉันคิดว่านี่เป็นคำตอบที่ถูกต้องว่าควรยอมรับอะไรคุณคิดว่า @Filip Majernik
Ratul Sharker

35

คำตอบอื่น ๆ ทั้งสองไม่ได้ช่วยที่นี่ ฉันพบปัญหาอื่นอีก 2 ข้อที่อาจแก้ไขได้:

แก้ไข คุณสามารถตรวจสอบ symlink ด้วยวิธีนี้: สร้างไฟล์ข้อความที่ชื่อว่า 'ตรวจสอบ' โดยไม่มีนามสกุล คัดลอกบรรทัดเหล่านี้ลงไป:

file=/Users/youUserName/XcodeProjectName/Pods/BuildHeaders/SVProgressHUD/SVProgressHUD.h
if [[ ! -e $file &&  -L $file ]]; then
  echo "$file symlink is  broken!"
else
  echo "symlink works"
fi

จากนั้นไปที่เทอร์มินัลเปลี่ยนเป็นโฟลเดอร์ที่ไฟล์เช็คของคุณอยู่และพิมพ์

bash check

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

ฉันไม่เห็น 'พ็อด' ในส่วนกำหนดค่า .. นี่หมายความว่า symlink ของฉันเสียหรือไม่
Adamski

35

นี่คือสิ่งที่ทำงานสำหรับฉัน:

ไปที่เป้าหมาย> แท็บ "สร้างการตั้งค่า" และค้นหาการตั้งค่า "เส้นทางการค้นหาส่วนหัวของผู้ใช้"

ตั้งค่านี้เป็น "$ (BUILT_PRODUCTS_DIR)" และทำเครื่องหมายที่ช่องทำเครื่องหมาย "เรียกซ้ำ"

ตอนนี้เป้าหมายที่สร้างขึ้นจะค้นหาไดเร็กทอรีการสร้างที่แบ่งใช้ของเวิร์กสเปซเพื่อค้นหาไฟล์ส่วนหัวที่ลิงก์ได้

====

UPDATE

ฉันมีปัญหาที่คล้ายกัน (แม้ว่าจะแตกต่างกันเล็กน้อย) เมื่อเร็ว ๆ นี้ ปรากฎว่า Xcode ไม่พบ Pods เพราะฉันเปิด.xcodeprojไฟล์แทน.xcworkspaceไฟล์ อาจช่วยคนอื่นในอนาคต


1
สิ่งนี้ใช้ได้สำหรับฉัน แต่หลังจากออกจาก Xcode แล้วทำงานpod installและเปิดใหม่
Ken M. Haggerty

@nowcrash เป้าหมายอะไร เป้าหมาย pod หรือเป้าหมายหลักของโครงการคืออะไร
VAAA

19

หากคุณไม่พบข้อผิดพลาดใด ๆ ข้างต้นและคุณพบข้อผิดพลาดนี้เนื่องจากคุณเพิ่งเปลี่ยนไปใช้use_frameworks!ใน Podfile ของคุณอ่านได้ที่:

ฉันลองวิธีแก้ปัญหาทั้งหมดข้างต้นและอีกมากมายก่อนที่จะเรียนรู้ว่ามันไม่เกี่ยวกับเส้นทางของส่วนหัวการค้นหาเลยในกรณีของฉันโดยเฉพาะ เมื่อคุณเปลี่ยนไปใช้use_frameworks!ใน Podfile คุณไม่จำเป็นต้องรวมเฟรมเวิร์กในส่วนหัวการเชื่อมต่อของคุณอีกต่อไปและในความเป็นจริง Xcode จะทำให้เกิดข้อผิดพลาด "ไม่สามารถหาส่วนหัว" ที่ไม่ช่วยเหลือได้

สิ่งที่คุณต้องทำคือลบการนำเข้าทั้งหมดออกจากไฟล์ส่วนหัวบริดจ์ของคุณและใช้ Swift แทนimport Moduleในไฟล์ Swift แต่ละไฟล์ตามต้องการเช่นเดียวกับที่คุณทำกับกรอบงาน Swift

และถ้าคุณกำลังใช้ใด ๆ ของส่วนหัวกรอบในชั้นเรียนของคุณ Obj-C (ในกรณีของฉันเรามีระดับความสะดวกสบายที่ใช้ FBSDK) ที่คุณต้องการที่จะเปลี่ยนจากท้องถิ่นเพื่อนำเข้าทั่วโลก (ที่นี้หมายถึงการเปลี่ยนแปลง#import "Module.h"ไป#import <Module/Module.h>ซึ่งควรเติมข้อความอัตโนมัติ สำหรับคุณเมื่อคุณเริ่มพิมพ์ชื่อเฟรมเวิร์กในกรณีของฉัน<AFNetworking/AFHTTPRequestOperationManager.h> )

แก้ไข: ฉันได้เรียนรู้ว่าการ@import Moduleใช้ไฟล์ร่มซึ่งปลอดภัยกว่า


16

คุณลองนำเข้าสไตล์ Cocoapods หรือไม่

#import <ASLogger.h>

ข้อมูลในเว็บไซต์ไม่ชัดเจนจริง ๆ ฉันส่งคำขอดึง:

https://github.com/CocoaPods/cocoapods.org/pull/34

อัปเดต:พวกเขาดึงคำขอของฉัน :)


แทนการใช้รูปแบบราคาคู่, #import "ASLogger.h" ฉันพยายามนี้ #import <ASLogger.h> และมันทำงานให้ฉัน :)
Baig

ฉันเคยลองวิธีนี้มาก่อนและใช้งานได้สำหรับฉัน แต่บางครั้งก็มีปัญหาที่แตกต่างเกิดขึ้นเมื่อมันไม่ทำงาน คุณสามารถใช้รูปแบบ <Podname / Filename.h> ในบางสถานการณ์เป็นอย่างน้อย
funroll

ใช่มันใช้ได้กับฉันด้วย! ไม่มีการทำความสะอาดและการลบข้อมูลที่ได้รับมา แต่ก็ใช้งานได้
PostCodeism

10

วิกิพีเดียให้คำแนะนำเกี่ยวกับวิธีการที่จะแก้ปัญหานี้:

หาก Xcode ไม่พบส่วนหัวของการขึ้นต่อกัน:

ตรวจสอบว่าไฟล์ส่วนหัวของพ็อดมีการเชื่อมโยงอย่างถูกต้องในพ็อด / ส่วนหัวหรือไม่และคุณไม่ได้เอาชนะ HEADER_SEARCH_PATHS (ดู # 1) หาก Xcode ยังไม่พบพวกเขาเป็นทางเลือกสุดท้ายคุณสามารถเพิ่มการนำเข้าของคุณล่วงหน้าได้เช่น #import "Pods / SSZipArchive.h"


14
มีคนอธิบายรายละเอียดเกี่ยวกับวิธีการ "ตรวจสอบว่าไฟล์ส่วนหัวของพ็อดเชื่อมโยงอย่างถูกต้องในพ็อด / ส่วนหัว" หรือไม่
Dave Collins

โปรดดูคำตอบของฉันข้างต้นสำหรับวิธีการตรวจสอบ symlink
brainray

โปรดดูคำตอบของผู้ใช้งานเกี่ยวกับการกำหนดค่าก่อนที่คุณจะคล้ำงบการนำเข้าของคุณ
Rog

ใช่บางฝักกำลังเชื่อมโยงไปยังไดเรกทอรีที่ไม่ถูกต้องเช่น$(PROJECT_DIR)/Pods/Headers/Public/xxx/ios/xxx.hมีiosโฟลเดอร์เพิ่มเติม ...
Dong Ma

9

ฉันเป็นนักพัฒนาเพียงคนเดียวในทีมที่ประสบปัญหาเดียวกันนี้มันทำงานได้อย่างสมบูรณ์แบบสำหรับทุกคนดังนั้นฉันจึงตระหนักว่าต้องเป็นสภาพแวดล้อมของฉัน ฉันพยายามgit cloneโครงการเดียวกันในไดเรกทอรีอื่นและรวบรวมอย่างสมบูรณ์จากนั้นฉันก็รู้ว่ามันต้องเป็นสิ่งที่แคชสำหรับ Xcode สำหรับเส้นทางโครงการของฉันที่ไหนสักแห่งว่า "ที่ไหนสักแห่ง" เป็นโฟลเดอร์ DerivedData เพียงแค่ลบมันออกและทำความสะอาดโครงสร้างของคุณ โครงการมันใช้งานได้สำหรับฉัน

คุณสามารถหาพา ธ และเปิดโฟลเดอร์ในตัวค้นหาได้โดยไปที่:

Xcode -> การตั้งค่า -> ที่ตั้ง -> ** DerivedData


1
ในกรณีปัญหาของฉันปรากฏขึ้นหลังจากอัปเดตพ็อดดังนั้นฉันคิดว่าใน cocoapods ควรค้นหาปัญหา ฉันได้ลองใช้วิธีแก้ปัญหาทั้งหมดที่นี่โดยไม่มีโชคและสุดท้ายก็ล้างข้อมูล DerivedData - และมันช่วยได้! ขอบคุณ
Varrry

3

ฉันจะอัปเดตสิ่งต่าง ๆ ด้านล่างในการตั้งค่า Build ของฉันและฉันไม่ได้รับข้อผิดพลาดใด ๆ เพื่อตรวจสอบสิ่งเหล่านี้เป็นสิ่งที่ในขณะที่การปรับปรุง cocoapods ของคุณ

การตั้งค่าการสร้าง

เปิดใช้งานรหัสบิต - ใช่ (หากคุณใช้บิตโค้ด)

ตัวประมวลผลล่วงหน้าของแมโคร - $ (สืบทอดมา)

ตัวเชื่อมโยงอื่น ๆ ตั้งค่าสถานะ - objc, -lc ++, $ (สืบทอด)

สร้างสถาปัตยกรรมเท่านั้น

แก้ไขข้อผิดพลาด - ใช่

Relese - ไม่

เส้นทางการค้นหา

กรอบการค้นหาเส้นทาง - $ (สืบทอดมา) $ (PROJECT_DIR)

เส้นทางการค้นหาไลบรารี - $ (สืบทอดมา)

เส้นทางการค้นหาส่วนหัว - $ (สืบทอดมา)


2

หากคุณมีข้อผิดพลาดในการสร้างหลังจาก " พ็อดติดตั้ง " หรือ " อัปเดตพ็อด " อาจเป็นไปได้ว่าหนึ่งในพ็อดของคุณถูกสร้างด้วยXCode 6.3ในขณะที่คุณยังคงใช้เวอร์ชันก่อนหน้าอยู่

ในกรณีของฉันฉันต้องอัปเดต OSX จาก mavericks เป็น Yosemite เพื่อใช้ Xcode 6.3 และแก้ปัญหา


สวัสดี @omaty นี่เป็นทางออกเดียวหรือไม่ ฉันกำลังใช้งาน Mavericks กับ Xcode 6.2
goelv

1
สวัสดี @goelv ในกรณีของฉันมันเป็นทางออกเดียวที่ฉันพบ ฉันเป็นเหมือนคุณภายใต้ Mavericks และ Xcode 6.2
Omaty

ฉันคิดว่าฉันมีปัญหาเดียวกัน เพื่อนร่วมทีมของฉันมี Xcode 6.3 ใน Yosemite และทำงานได้ดีสำหรับเขาในขณะที่ฉันกำลังพยายามกำจัดส่วนหัวไม่พบปัญหาใน Mavericks ใน Xcode 6.2
Sagar S. Kadookkunnan

1
ติดตามผล: ฉันอัพเกรดเครื่องเป็น Yosemite และ Xcode 6.3.1 ฉันสามารถสร้างได้โดยไม่มีปัญหาใด ๆ ในขณะนี้
Sagar S. Kadookkunnan

1

สำหรับฉันปัญหาอยู่ในค่าอื่น ๆ ธงเชื่อมโยง -l"xml2" -l"Pods-MBProgressHUD"ด้วยเหตุผลบางอย่างผมก็มีคำพูดที่ไม่มีในธงเช่น


ฉันมีปัญหากับ Cocoapod ของ Localytics ภายใต้Other Linker Flagsผมพบว่าสองรายการ: และ-|Localytics |-PodsLocalyticsฉันลบสิ่งเหล่านั้นแล้วก็สามารถคอมไพล์ได้
Chris

1

ฉันต้องดาวน์โหลด zip จาก git hub และลากไฟล์ที่หายไปลงใน Finder ที่ path ที่ตรงกันใน Pod / ...


1

สิ่งที่ใช้ได้ผลสำหรับฉันคือการเลือกโครงการ Pod การค้นหาและเลือกกรอบงานเป้าหมายด้วยส่วนหัวที่ขาดหายไปในไดเรกทอรีเป้าหมายของโครงการ Pod และตั้งค่า "สร้างสถาปัตยกรรมที่ใช้งานอยู่เท่านั้น" เป็น "ไม่" ภายใต้ "สถาปัตยกรรม" ในการตั้งค่าการสร้างเป้าหมาย


1

ฉันมีปัญหาเดียวกัน แต่วิธีแก้ไขด้านบนไม่สามารถใช้งานได้ ฉันได้แก้ไขโดยทำสิ่งนี้:

  1. ลบโครงการทั้งหมด
  2. รัน git โคลนโปรเจ็กต์และรันการติดตั้ง exec ฝักแบบกลุ่ม
  3. cd the peoject และรัน remote add upstream-your-remote-rep-add
  4. git ดึงข้อมูลต้นน้ำ
  5. git หลักการชำระเงิน
  6. คอมไพล์ผสานต้นน้ำ / ต้นแบบ

แล้วมันก็ใช้งานได้


1

สำหรับฉันสิ่งที่แก้ไขคือเป้าหมายการปรับใช้ iOS สำหรับโครงการ Pod ของฉันต่ำกว่าโครงการของฉัน เมื่อฉันทำมันเหมือนกับโครงการของฉันมันก็สามารถค้นหาไฟล์ส่วนหัว


พี่ชาย! คุณสมควรได้รับ 1,000 upvotes ฉันติดอยู่กับสิ่งนี้เป็นเวลา 4 ชั่วโมงและทางออกของคุณช่วยฉันออกไป ขอบคุณมากครับขอบคุณมาก!
warzone_fz

0

ฉันอยู่ในสายพันธุ์ GM ของ Xcode 5.0 และฉันไม่สามารถรับคำตอบเหล่านี้ได้ ฉันลองทุกคำตอบเดียวกับ SO ในคำถามที่แตกต่างกันเกี่ยวกับการนำเข้าส่วนหัวที่มี cocoapod

ในที่สุดฉันก็พบทางออกที่เหมาะกับฉัน : ฉันอัปเกรดเป็น Xcode 5.0 ผ่าน Mac AppStore (ติดตั้งที่ด้านบนของเมล็ดพันธุ์ GM) และตอนนี้การนำเข้าส่วนหัวทำงานได้ตามที่คาดไว้

ฉันยังมี Xcode 5 รุ่นเบต้าอยู่ในระบบของฉันและฉันก็ลบมันเช่นกัน อาจจะเป็นการรวมกันของสองสิ่ง แต่หวังว่าจะช่วยคนอื่นได้


0

นี่คือคำตอบสำหรับฉันฉันอัปเดต cocoapods และฉันคิดว่านั่นทำให้ PODS_HEADERS_SEARCH_PATHS หายไป โซลูชันของฉันคล้ายกับสิ่งนี้ แต่ฉันใช้ "$ (PODS_ROOT) / ส่วนหัว" - Andrew Aitken

ขอบคุณมากสำหรับคำตอบนี้ ฉันมีปัญหาในการค้นหาวิธีการแก้ไขปัญหาของฉัน ขอบคุณมาก.


0

ไม่มีคำตอบใดที่ช่วยฉัน (ฉันได้พ็อดของฉันเชื่อมโยงกับเป้าหมายทั้งหมดสร้างการตั้งค่าการกำหนดค่าอย่างถูกต้องตั้งค่าเส้นทางการค้นหาชุด "$ (สืบทอดมา)", ฯลฯ ... )

ปัญหาหายไปด้วยตัวเองหลังจากที่ฉันอัพเดท cocoapods เป็นเวอร์ชั่นใหม่ล่าสุด, debug โดยใช้คำสั่ง install / update มาตรฐาน:

   gem install cocoapods --pre

หรือ:

   sudo gem install cocoapods --pre

(ถ้าใช้ sudo ระหว่างการติดตั้ง)

มันจะต้องเป็นข้อผิดพลาด cocoapods


0

วิธีแก้ปัญหาอย่างหนึ่งอย่างง่าย ๆ คือ: 1. ลบโฟลเดอร์ Pods และไฟล์ Podfile.lock แต่อย่าลบ Podfile 2 รันคำสั่งต่อไปนี้ในโฟลเดอร์รูทโปรเจคของคุณ:

pod install

ฉันแก้ไขปัญหาด้วยวิธีนี้
dobiho

0

นี่เป็นอีกเหตุผล: เส้นทางส่วนหัวทั้งหมดดูดี แต่เรายังคงมีข้อผิดพลาดในไฟล์ precompiled (.pch) ที่พยายามอ่านส่วนหัวของพ็อด

(เช่น #import <CocoaLumberjack / CocoaLumberjack.h>)

เมื่อดูที่ผลลัพธ์การสร้างแบบดิบในที่สุดฉันก็สังเกตเห็นว่าข้อผิดพลาดทำลายเป้าหมายส่วนขยาย Watch OS ของเราไม่ใช่เป้าหมายหลักที่เรากำลังสร้างเพราะเรากำลังนำเข้าไฟล์ส่วนหัวที่คอมไพล์แล้ว. pch ลงในเป้าหมาย Watch OS และล้มเหลว ที่นั่น ตรวจสอบให้แน่ใจว่าการตั้งค่าเป้าหมาย Watch OS ของคุณไม่ได้พยายามนำเข้าไฟล์. pch (โดยเฉพาะถ้าคุณตั้งค่าการนำเข้านั้นจากการตั้งค่าเป้าหมายหลักอย่างที่ฉันทำ!)


0

ฉันพบว่าการรวมไลบรารีเป็นพ็อดติดตั้งจะช่วยไลบรารีแบบไดนามิกโดยตรง ตัวอย่างเช่นสำหรับ Firebase:

pod 'RNFirebase', :path => 'path/to/node_modules/react-native-firebase/ios'

หรือสำหรับ ASLogger:

pod 'ASLogger', :path => 'path/to/node_modules/aslogger/ios' // path to header files

การเปลี่ยนหรือการเข้ารหัสHEADER_SEARCH_PATHSไม่ได้ช่วยฉัน หากข้อผิดพลาดเกิดขึ้นอีกไม่จำเป็นrm -rf node_modulesหรือไม่ต้องลบไฟล์พ็อด ฯลฯ ฉันพบว่ามีประโยชน์ในการล้างแคช

สำหรับการตอบสนองพื้นเมืองฉันทำงาน

    rm -rf $TMPDIR/react-native-packager-cache-*
    rm -rf $TMPDIR/metro-bundler-cache-*
    rm -rf $TMPDIR/metro-* 
    rm -rf $TMPDIR/react-* 
    rm -rf $TMPDIR/haste-*
    rm -rf "$(getconf DARWIN_USER_CACHE_DIR)/org.llvm.clang/ModuleCache"
    npm start -- --reset-cache

สำหรับ Xcode ฉันลบโฟลเดอร์ ~/Library/Developer/Xcode/DerivedData


0

ฉันคิดว่าทางออกที่ดีที่สุดคือไปBuild settings -> Search Path -> User Header Search Pathsหาเส้นทางห้องสมุดของคุณและผ่านมันไปใน Finder ตรวจสอบให้แน่ใจว่ามีเส้นทางทั้งหมดรวมถึงเส้นทางการนำเข้าของคุณ

สำหรับฉันเส้นทางของฉันสั้นกว่าในการสอน ในการกวดวิชามันเป็นสิ่งที่ชอบ#import <SDK/path/to/sdk/File.h>แต่ปรากฎว่ามันเป็นเพียง#import <SDK/File.h>



-2

ลองแสดงความคิดเห็นบรรทัดนี้สำหรับเป้าหมายของคุณ

#  use_frameworks!

หรือคุณสามารถอ้างถึงคำตอบอื่น ๆ ที่ เพิ่มหน่วยการทดสอบเป้าหมายไปยัง xcode - ไม่สามารถนำเข้าส่วนหัวการเชื่อมโยงจะไม่หายไป


-2

ฉันแก้ไขปัญหานี้สำหรับ Xcode 8.2.1 โดยการลากและวางเฟรมเวิร์กที่ฉันต้องการใช้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.