รวดเร็ว ไม่สามารถสร้างโมดูล objective-c "Alamofire"


117

การติดตั้งโมดูลย่อยวานิลลาสดของ Alamofire โดยใช้ XCode6 และทำตามคำแนะนำไปยัง T. มีบางอย่างที่นี่ไม่เหมาะสม ข้อผิดพลาดที่ฉันได้รับคือ "ไม่สามารถสร้างโมดูลวัตถุประสงค์ -c" alamofire "ในการนำเข้า alamofire นี่คือภาพหน้าจอของข้อผิดพลาดที่ฉันได้รับ:

ใส่คำอธิบายภาพที่นี่ และการกำหนดค่าของฉัน:

ใส่คำอธิบายภาพที่นี่



ฉันคิดว่าคุณต้องติดตั้ง alamofire ตามคำแนะนำที่ให้ไว้ที่นี่ github.com/Alamofire/Alamofire
Saurabh Prajapati

คุณทำให้มันใช้งานได้หรือไม่? มันใช้งานได้สำหรับฉันและหลังจากนั้น "สร้างและรัน" อีกครั้งมันก็หยุดและฉันได้รับข้อความแสดงข้อผิดพลาดเดียวกัน ... :(
เฟรด

2
เพื่อนร่วมงานเพิ่งมีข้อความแสดงข้อผิดพลาดเดียวกัน แต่สาเหตุก็คือเขายังคงใช้ Xcode 6.1 อยู่ (เป็นยุค 6.3 ที่เรากำลังเขียนอยู่นี้) พูดแบบนี้เพื่อเป็นบันทึกคนอื่นควรต่อสู้กับสิ่งเดียวกันหรือไม่
villapossu

คำตอบ:


103

เมื่อเกิดเหตุการณ์นี้ให้สร้างเฟรมเวิร์กแยกกันก่อน ในกรณีของคุณ:

  • เปลี่ยนโครงร่างเป็น Alamofire
  • สร้าง ( ⌘B )
  • เปลี่ยนกลับเป็นโครงการของคุณ
  • วิ่ง

3
คำตอบที่ดี; ฉันลืมที่จะเปลี่ยนรูปแบบการสร้างเพื่อแก้ไขข้อผิดพลาดประเภทนี้!
tehprofessor

1
ขอบคุณสำหรับความช่วยเหลือ
Tidane

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

ฉันโหวตสิ่งนี้เนื่องจากมันใช้งานได้ใน Xcode น่าเสียดายที่มันใช้ไม่ได้หากสร้างจากบรรทัดคำสั่งหรือสร้างสำหรับ Release
Eneko Alonso

สิ่งนี้แก้ไขปัญหาที่ฉันพบกับ GoogleApiClient / Drive การสร้างจะประสบความสำเร็จ แต่ทันทีที่มีการเปลี่ยนแปลงใด ๆ กับไฟล์ Xcode จะบ่นเกี่ยวกับการนำเข้า
Nick Alexander

53

ไปที่ Developer / Xcode / DerivedData และลบโฟลเดอร์สำหรับกรอบงานของคุณ (หรือแค่ลบ DerivedData เอง)

หากคุณมีแอปที่สร้างขึ้นในโปรแกรมจำลองการทำงานคุณจะต้องลบแอปที่นั่น

จากนั้นทำความสะอาดและสร้าง


นี้ทำงานสำหรับเรา แต่แล้วฉันพบการผลิตคำสั่งหลายลิงค์นี้จะช่วยให้: stackoverflow.com/questions/50718018/...
Bhimbim

32

สิ่งนี้ใช้ได้กับฉันเสมอ:

  1. ออกจาก Xcode
  2. ลบ ~/Library/Developer/Xcode/DerivedData
  3. เปลี่ยนเป็นโครงร่างของกรอบและสร้าง⌘B
  4. เปลี่ยนเป็นแบบแผนของแอปของคุณและสร้าง⌘B

22

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


15

ลองทำตามลำดับต่อไปนี้และขั้นตอนใดขั้นตอนหนึ่งน่าจะใช้ได้ผล

  1. Cmd+ B- สร้างพื้นที่ทำงานและควรสร้างเป้าหมายหรือโมดูลที่เราต้องการ

  2. Cmd+ Kแล้วCmd+ B- ทำความสะอาดแล้วสร้าง

  3. Cmd+ Shift+ Option+ KและCmd+ B- ล้างโฟลเดอร์สร้าง

  4. ออกจาก Xcode ลบข้อมูลที่ได้รับเปิด Xcode และCmd+ Shift+ Option+ Kแล้วCmd+B

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


สำหรับผู้ที่ใช้ iCloud ซิงค์ (ตัวอย่างเช่นมีโครงการในเอกสารโฟลเดอร์ดังนั้นมันจะได้อย่างง่ายดายซิงค์หลายแม็ค) XXX 2.swiftการตรวจสอบไฟล์ที่มีชื่อ: pod installค้นหาและลบทั้งหมดของพวกเขาแล้วเรียกใช้
John Pang

12

หากคุณได้รับข้อผิดพลาดนี้ขณะพยายามนำเข้าเฟรมเวิร์กแบบไดนามิกตรวจสอบให้แน่ใจว่าเฟรมเวิร์กนั้นรวมอยู่ในการอ้างอิงเป้าหมายของเป้าหมาย

Project > "Target" > Build Phases > Target Dependencies


นอกจากนี้หากคุณกำลังทำงานกับเฟรมเวิร์กอื่นที่พัฒนาในพื้นที่ทำงานเดียวกันอย่าลืมเพิ่มโปรเจ็กต์เป็นไลบรารีที่เชื่อมโยงแทนไฟล์เฟรมเวิร์กมิฉะนั้นเฟรมเวิร์กจะไม่สามารถมองเห็นได้เป็นการพึ่งพาเป้าหมาย
DávidPásztor

11

สร้างความสะอาดให้กับฉัน

  1. สร้างความสะอาดให้กับ Alamo
  2. สร้าง Clean สำหรับ HTTPDemo

6

แสดงความคิดเห็นเกี่ยวกับการนำเข้าและรหัสทั้งหมดที่ใช้สร้างเรียกใช้แล้วไม่ใส่ข้อคิดเห็น มันได้ผลสำหรับฉัน ...


1

ฉันแก้ไขปัญหานี้ในโปรเจ็กต์ไฮบริด Objective-C / Swift ของฉัน

ในไฟล์ Objective-C bridging ของคุณให้เพิ่มบรรทัดต่อไปนี้:

#import <Alamofire/Alamofire.h>


0

พ็อดใด ๆ ที่สร้างไม่สำเร็จอาจทำให้เกิดข้อผิดพลาดนี้เช่นกัน (ในกรณีของฉันพ็อดเก่าที่ใช้ไวยากรณ์ที่ล้าสมัยไม่สามารถสร้างได้)

คุณอาจลองpod updateอัปเดตพ็อดของคุณเป็นเวอร์ชันล่าสุดและดูว่าจะเป็นอย่างไร


สำหรับผู้ที่ใช้ iCloud ซิงค์ (ตัวอย่างเช่นมีโครงการในเอกสารโฟลเดอร์ดังนั้นมันจะได้อย่างง่ายดายซิงค์หลายแม็ค) XXX 2.swiftการตรวจสอบไฟล์ที่มีชื่อ: pod installค้นหาและลบทั้งหมดของพวกเขาแล้วเรียกใช้
John Pang

0

แก้ไขปัญหานี้อย่างบ้าคลั่ง - โซลูชันที่ใช้งานได้สำหรับฉันเท่านั้น

สร้างโครงร่างใหม่และเพิ่มกรอบงานที่แสดงข้อผิดพลาด ในกรณีนี้คือ "Alamofire" เรียกใช้โครงร่างเหล่านั้นทั้งหมด

เมื่อคุณรวบรวมโครงร่างทั้งหมดเป้าหมายโครงการของคุณก็จะทำงานได้ดีเช่นกัน

อาจดูเหมือนเป็นการแก้ไขที่บ้าคลั่ง แต่ใช้ได้ผลสำหรับฉันเท่านั้น


0

หากสถาปัตยกรรมที่ถูกต้องของโครงการ Alamofire ไม่มีสถาปัตยกรรมที่ถูกต้องของโครงการของคุณจะเกิดข้อผิดพลาด "ไม่สามารถสร้างโมดูลวัตถุประสงค์ -c .. "

เพิ่มสถาปัตยกรรมเหล่านี้i386 x86_64 arm64 arm64e armv7 armv7s armv6 armv64ลงใน ' Valid Architectures ' ของโครงการ Alamofire ใน ' Build Settings '

สร้างอุปกรณ์เป้าหมายเดียวกันสำหรับทั้งสองโครงการ ตัวอย่างเช่นในตอนแรกสร้างโครงการ Alamofire สำหรับ iPhone 8 (13.2) จากนั้นสร้างโครงการของคุณสำหรับเครื่องจำลองเดียวกัน

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

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