Cocoapods + ไม่สามารถโหลดโมดูลพื้นฐานสำหรับ 'x'


91

ฉันใช้ XCode 7, Swift 2.0, iOS 9

ฉันต้องการติดตั้ง Alamofire ในโปรเจ็กต์ของฉันโดยใช้ Cocoapods ฉันได้ทำสิ่งต่อไปนี้แล้ว:

gem install cocoapods

pod setup

pod init

อัปเดต Podfile เป็น:

# Uncomment this line to define a global platform for your project
# platform :ios, '9.0'
use_frameworks!

target 'JSONeg' do

  pod 'Alamofire', :branch => 'swift-2'

end

จากนั้นฉันติดตั้งพ็อด:

pod install

และฉันเพิ่มสิ่งต่อไปนี้ใน ViewController.swift

import Alamofire

สิ่งนี้ทำให้เกิดข้อผิดพลาดต่อไปนี้:

Cannot load underlying module for 'Alamofire'

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


ตรวจสอบว่าคุณได้นำเข้าเฟรมเวิร์กที่จำเป็นแล้ว
user3722523

คำตอบ:


213

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


4
ฉันเกือบจะมาที่นี่ในช่วงเริ่มต้นของโครงการใด ๆ ... ขอบคุณเพื่อน
SoliQuiD

2
วิธีแก้ปัญหาเบื้องต้นยังคงใช้งานได้ .. XCode ควรเป็นแบบโอเพนซอร์ส
Siddharth


14

สิ่งนี้ใช้ได้ผลสำหรับฉัน:

  1. ปิดโครงการของคุณ
  2. ในเทอร์มินัลไปที่ไดเรกทอรีโครงการของคุณ
  3. เพิ่มคำสั่งนี้: อัปเดตพ็อด
  4. หลังจากนั้นพ็อดทั้งหมดของคุณจะได้รับการอัปเดต เพียงแค่เรียกใช้โครงการของคุณ

9

ไม่สามารถโหลดโมดูลพื้นฐานสำหรับ 'x'for SWIFT:

วิธีแก้ไขปัญหา:

ขั้นตอน: 1สร้างโครงการใหม่และสร้างและรันสำเร็จโดยไม่ต้องติดตั้งพ็อด

ขั้นตอน: 2หลังจากสร้างและรันโปรเจ็กต์สำเร็จตอนนี้ให้ลองติดตั้งพ็อดจากนั้นลองอิมพอร์ตเรียลม์อลาโมไฟร์ชาร์ตและอื่น ๆมันจะทำงานได้อย่างมีเสน่ห์

กรณีความล้มเหลว -> โครงการใหม่ -> เพิ่ม (ขอบเขตอลาโมไฟร์แผนภูมิ ฯลฯ ) ผ่าน cocoapods โดยไม่ต้องสร้างก่อน -> เปิดพื้นที่ทำงาน Xcode -> สร้างและเรียกใช้

กรณีความสำเร็จ -> โครงการใหม่ -> สร้างและเรียกใช้ -> เพิ่ม (อาณาจักรอลาโมไฟร์แผนภูมิ ฯลฯ ) ผ่าน cocoapods -> เปิดพื้นที่ทำงาน Xcode -> สร้างและเรียกใช้อีกครั้ง = ความสำเร็จ


คุณไม่สามารถพิจารณา "เริ่มโครงการใหม่" ทุกครั้งที่คุณเห็นข้อผิดพลาดนี้เมื่อ 99% ของเวลาที่เกิดขึ้นในโครงการที่มีอยู่ สิ่งที่เกี่ยวกับการลอง 'การอัปเดตพ็อด'
Renexandro

9

เมื่อคุณติดตั้ง Alamofire pod แล้ว

ขั้นตอนที่ 1 คุณควรเปิดโครงการของคุณโดยดับเบิลคลิกที่ไฟล์ your_project_name.xcworkspace

ขั้นตอนที่ 2 ไปที่การตั้งค่าโปรเจ็กต์ -> สร้างเฟส -> เชื่อมโยงไบนารีกับไลบรารี -> เพิ่มเฟรมเวิร์ก "Alamofire.framework"

แค่นั้นแหละ!!

ตอนนี้คุณสามารถนำเข้าโมดูล


8

สิ่งที่ช่วยในกรณีของฉัน:

1) ปิดโครงการและ XCode

2) ในคำสั่งทำซ้ำเทอร์มินัล

> pod install

3) เปิดโครงการ

(หากไม่ได้ผลให้ลองลบ Pod / โฟลเดอร์ก่อนทำการติดตั้งใหม่)


1
ลบPod/โฟลเดอร์ก่อนที่จะติดตั้งใหม่
nikans

7

ฉันลองใช้วิธีแก้ปัญหาเหล่านี้ทั้งหมด: การสร้างใหม่การทำความสะอาดการติดตั้งพ็อดใหม่ ฯลฯ แต่ในกรณีของฉันมันเป็นปัญหาในการเปลี่ยนการตั้งค่า 'Build Active Architecture Only' เป็น 'No' เนื่องจาก AR ห้องสมุดที่ฉันใช้ เปลี่ยนกลับเป็น 'ใช่' และได้รับการแก้ไขแล้ว หวังว่านี่จะช่วยใครสักคน


จริงอยู่นั่นเป็นปัญหาหลักคุณต้องทำความสะอาดด้วย command-shift-K
Hola Soy Edu Feliz Navidad

ฉันต้องตั้งค่าจาก YES เป็น NO แปลก.
Mundi

7

ฉันต้องทำ Product> (Opt Click) Clean Build Folder ... จากนั้นเรียกใช้อีกครั้งและปัญหาก็หายไป


5

ฉันใช้ Xcode เวอร์ชัน 8.3.1 (8E1000a) ปัญหานี้เกิดขึ้นเมื่อฉันต้องการติดตั้งโมดูล SwiftCloudant อาจเป็นไปได้ว่าฉันไม่ได้ปิด Xcode ของฉันเมื่อฉันเรียกใช้การติดตั้งพ็อด

ฉันแก้ไขสิ่งนี้ด้วยตนเองโดยเพิ่ม SwiftCloudant.framework ในแท็บเป้าหมาย> ทั่วไป

เป้าหมาย> ทั่วไป> กรอบงานและไลบรารีที่เชื่อมโยง


หลังจากทุกอย่างล้มเหลวสิ่งนี้ได้ผลจริง ขอบคุณมาก.
AmirZ

4

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


3

คุณตรวจสอบว่าคุณมี Cocoapods เวอร์ชันล่าสุดหรือไม่? คุณสามารถอัปเดตได้โดยการอัปเดตอัญมณีทั้งหมดของคุณ:

sudo gem update

หรือเพียงแค่ติดตั้ง Cocoapods ใหม่:

 [sudo] gem install cocoapods

หากไม่ได้ผลลองดูที่: CocoaPods - สร้างสำหรับ iOS 9 / Swift 2 พร้อม Xcode-beta

ที่แสดงวิธีเปลี่ยนเวอร์ชันเครื่องมือบรรทัดคำสั่งได้อย่างง่ายดายในแท็บ Xcode Preferences "Locations" และเปลี่ยน "Command Line Tools" เป็น Xcode 7.0


ใช่มันเป็นงานสร้างล่าสุด ฉันเพิ่งพบปัญหาแล้ว ฉันสร้างโครงการและทันใดนั้นมันก็ได้ผล

ได้โปรดตอบคำถามของคุณเองด้วยวิธีแก้ปัญหาที่คุณคิดขึ้นเพื่อให้คนอื่นสามารถแก้ไขปัญหานั้นได้เมื่อพวกเขาพบ
Glenn

3

ทำตามขั้นตอน:

1. ติดตั้งพ็อด 2. เปิดพื้นที่ทำงาน 3. เรียกใช้ / สร้างแอปพลิเคชันของคุณ 4. จากนั้นคุณสามารถนำเข้ากรอบงาน


2

ไม่สามารถโหลดโมดูลพื้นฐาน

  1. ตรวจสอบเส้นทางกรอบ: Build Settings -> Framework Search Paths.
  2. ตรวจสอบให้แน่ใจว่าเส้นทางไปยังกรอบงานไม่มีช่องว่าง
  3. หากเส้นทางมีตัวแปรให้ค้นหาค่าของตัวแปรโดยค้นหาชื่อตัวแปรในBuild Settingsไฟล์.
  4. ตรวจสอบให้แน่ใจว่าค่าของตัวแปรไม่มีช่องว่าง
  5. หากเส้นทางมีช่องว่างให้เปลี่ยนชื่อไดเร็กทอรีเหล่านั้นที่มีช่องว่าง
  6. ทำความสะอาดและสร้างโครงการ

โดยสรุปตรวจสอบให้แน่ใจว่า<Project Root>เส้นทางของคุณไม่มีช่องว่าง มิฉะนั้นให้เปลี่ยนชื่อdirที่มีช่องว่างจากนั้นล้างและสร้างโครงการของคุณ

เช่นถ้านี่คือรูทโปรเจ็กต์ของคุณ: /Users/handsomeboy/ios app/Fancy App/ให้เปลี่ยนชื่อโฟลเดอร์ที่มีช่องว่าง วิธีหนึ่งในการกำจัดพื้นที่: เปลี่ยน'ios app'เป็น'ios_app'


2

การตั้งค่าGCC_SYMBOLS_PRIVATE_EXTERN(แสดงเป็น "สัญลักษณ์ที่ซ่อนโดยค่าเริ่มต้น" ในการตั้งค่าเป้าหมาย) ไปยังYESในกรอบที่เชื่อมโยงช่วยให้ฉันกำจัดข้อผิดพลาดนี้ได้ ฉันใช้เวลา 2 วันเพื่อค้นหาสิ่งนี้หวังว่ามันจะช่วยใครสักคน :)


2

ที่ URL นี้: https://github.com/Alamofire/Alamofire/issues/441

ผู้ใช้คนหนึ่งเขียนสิ่งนี้:

Clean ไม่ทำงานการติดตั้งใหม่จากพ็อดไม่ทำงานการติดตั้งจากคาร์เธจไม่ทำงานการติดตั้งด้วยตนเองไม่ทำงาน ในที่สุดฉันก็สามารถใช้งานได้หลังจากสร้างเพื่อการทดสอบ

ฉันจึงลองสิ่งนี้ (xcode เวอร์ชัน 9.2 (9C40b)):

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

มันได้ผลสำหรับฉัน เกิดข้อผิดพลาดในขณะนี้

หมายเหตุ: พ็อดของฉันไม่ใช่ Alamofire ดังนั้นฉันเดาว่ามันจะใช้ได้กับทุก Pod


2

สถานการณ์ที่เป็นไปได้อื่น: ตรวจสอบให้แน่ใจว่าเป้าหมายการทดสอบถูกกำหนดไว้ภายในขอบเขตของเป้าหมายหลัก (ไม่ใช่ภายนอก)

เช่น

target 'MyApp' do
  pod 'GoogleAnalytics', '~> 3.1'

  target 'MyAppTests' do
    inherit! :search_paths
    pod 'OCMock', '~> 2.0.1'
  end
end

หากดูเหมือนว่า:

target 'MyApp' do
  pod 'GoogleAnalytics', '~> 3.1'
end

target 'MyAppTests' do
  inherit! :search_paths
  pod 'OCMock', '~> 2.0.1'
end

จากนั้นคุณจะได้รับข้อผิดพลาดนี้ด้วย


1

ปัญหาเดียวกันสำหรับฉัน ฉันแก้ไขโดยการลบเวอร์ชัน Alamofire ในไฟล์พ็อด

Pod เป็นไฟล์

# Uncomment this line to define a global platform for your project
platform :ios, "8.0"

# Uncomment this line if you're using Swift
use_frameworks!

target 'GettingSwift' do
 pod 'Alamofire'
end

target 'GettingSwiftTests' do
end

1

ในกรณีของฉัน:

1. บรรทัดแสดงความคิดเห็นของ//import Pod_Module

2. ไปที่โครงการ -> ล้างหรือใช้ปุ่มทางลัด (Command + Shift + K)

2. ปิดโครงการของคุณ

3. ในเทอร์มินัลไปที่ไดเรกทอรีโครงการของคุณ

4. เรียกใช้> pod install

5. เปิด.xcworkspaceไฟล์และ สร้างมัน!

6. บรรทัด Uncomment ของimport Pod_Module


0

เมื่อติดตั้ง CocoaPods อย่าลืมระบุ ios 9.0 โดยการลบ # ดังนั้น# platform :ios, '9.0'ควรเป็นplatform :ios, '9.0'จากนั้นหากข้อผิดพลาดปรากฏขึ้นอีกครั้งเพียงแค่สร้างและเรียกใช้ หลังจากที่คุณสร้างและรันข้อผิดพลาดไม่ควรส่งคืน

นอกจากนี้อาจเกิดขึ้นได้หากคุณติดตั้ง Xcode มากกว่าหนึ่งเวอร์ชันในคอมพิวเตอร์ของคุณ ออก (ไม่ใช่แค่ปิด) Xcode ทุกเวอร์ชันก่อน



0

หากคุณตรวจสอบแล้วว่าติดตั้งพ็อดของคุณสำเร็จข้อผิดพลาดอาจเกี่ยวข้องกับข้อมูลที่ได้รับของคุณที่เหลืออยู่ก่อนที่คุณจะติดตั้งพ็อด File -> Workspace Settings... -> Derived Dataคุณสามารถล้างข้อมูลของคุณได้โดยไปที่ การลบโฟลเดอร์ข้อมูลที่ได้รับที่เชื่อมโยงกับแอพของคุณและการล้างบิลด์ของคุณควรแก้ปัญหา

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