2016-10-11 73 views
7

我遇到了一個Xcode(使用Swift)的問題,讓我完全難住。我意識到這個問題已經被提出並回答了,但是沒有一個答案對我有用,而且我的情況似乎與其他問題有所不同,因爲我的所有豆莢都失敗了(不僅僅是一個特定的問題)。他們一週前都工作得很好。我使用一些更常見的Swift框架(例如Alamofire,Eureka,Kingfisher,SwiftyJSON等)的Cocoapods。它們在Xcode 7中都工作正常。但是,其中一個(自動)更新碰撞了我的Xcode版本,之後它成爲必須在podfile中指定您的目標。我做到了這一點,並運行pod安裝。豆莢仍然在那裏,但現在每一個涉及這些框架的進口聲明都失敗了。沒有這樣的模塊...在Xcode

起初我以爲這是一個Alamofire問題,因爲這是第一個失敗的「沒有這樣的模塊Alamofire」錯誤。我試着盡我所能與Alamofire,包括以下內容:

  • 清潔和重建
  • 乾淨生成文件夾
  • 重新啓動的Xcode
  • 重新啓動計算機
  • 刪除所有數據導出
  • 添加框架鏈接到「鏈接的框架和庫」
  • 添加框架「鏈接二進制文件庫」
  • 已驗證我打開工作空間而不是項目
  • 重新安裝的CocoaPods
  • 重新安裝的Xcode 7.3.1版本

沒有什麼能去掉「沒有這樣的模塊...」錯誤。最後,我從吊艙中取出Alamofire,並將Alamofire項目拖入我的項目。這使我可以刪除Alamofire的進口報表。但令我沮喪的是,現在下一個框架導致「沒有這樣的模塊」。我將接下來的三個框架移到我的項目中,看起來它會繼續下去。顯然,我的Pods框架都沒有被識別出來。我安裝了Xcode 8並且使用Swift 2.3進行了試驗,但是我得到了「沒有這樣的模塊」錯誤。

我真的更喜歡使用Cocoapods,因爲它使升級更容易,以及其他獎金。我猜我有一些設置錯誤,這是搞砸了我所有的豆莢,但一直沒有找到它的運氣。這是一場災難,因爲它已經關閉了幾天的開發,沒有任何修復的跡象。如果有任何事情可以幫助我找到解決辦法,請告訴我。如果任何人都可以提供任何可能的解決方案或甚至是可以嘗試的東西,那將不勝感激。我目前正在使用Xcode版本7.3.1。

我莢文件看起來是這樣的:

source 'https://github.com/CocoaPods/Specs.git' 
platform :ios, '8.0' 

target 'Y2GOsp' do 
    use_frameworks! 

    # Pods for Y2GOsp 
    pod 'Alamofire', '~> 3.0' 
    pod 'AlecrimCoreData', '~> 4.0' 
    pod 'Kingfisher', '~> 2.4' 
    pod 'Eureka', '~> 1.6' 
    pod 'SwiftyJSON', :git => 'https://github.com/SwiftyJSON/SwiftyJSON.git', :branch => 'xcode7' 
    pod 'PhoneNumberKit', '~> 0.1' 
    pod 'PKHUD' 
    pod 'Dollar' 
end 

post_install do |installer| 
    installer.pods_project.targets.each do |target| 
     target.build_configurations.each do |config| 
      config.build_settings['SWIFT_VERSION'] = '2.2' 
     end 
    end 
end 
+0

您是否嘗試過重新安裝或更新CocoaPods? –

+0

@ l'L'l,是的,我已經重新安裝了幾次。我甚至嘗試過--pre版本。我重新安裝了Xcode,因爲我的原始安裝已升級到版本8.我跟蹤了一個7.3版本的安裝程序並重新安裝了它,但仍然出現錯誤。 – Lastmboy

+1

當您嘗試將框架添加到項目中時,爲「構建設置>框架搜索路徑」設置了什麼? –

回答

14

來自@ l'L'l的評論讓我接觸到了解決方案。我去

build settings > frameworks search path 

並將其設置爲以下幾點:

$(inherited) (non-recursive) 
$(PROJECT_DIR)/build/Debug-iphoneos (non-recursive) 
$(SRCROOT) (recursive) 

它現在正確地找到吊艙框架。

0

設法讓你的SDK版本爲早期版本

pod 'Alamofire', '~> 3.0' 
pod 'AlecrimCoreData', '~> 4.0' 
pod 'Kingfisher', '~> 2.4' 
pod 'Eureka', '~> 1.6' 
pod 'SwiftyJSON', :git => 'https://github.com/SwiftyJSON/SwiftyJSON.git', :branch => 'xcode7' 
pod 'PhoneNumberKit', '~> 0.1' 
pod 'PKHUD' 
pod 'Dollar' 

例如改變3.0對以前的版本,它曾一度當我面臨同樣的問題時,我。

pod 'Alamofire', '~> 2.4' #I am assuming prev available version is 2.4 

但它並不一定是「Alamofire版」結果「沒有這樣的模塊」,您可以嘗試每一個你在羣文件列表。

+0

看起來這可能會起作用。無論如何,我已經過去了阿拉莫菲爾。我現在得到了尤里卡的錯誤。我會在早上更多地與它鬥爭,並會讓你知道我的結果。謝謝。好名字,我的名字也是謝爾登:) – Lastmboy

+0

嗨謝爾頓。如果你覺得它是正確的,請選擇正確的答案。 –

+0

不好運氣:(我以爲它工作了一秒,但後來意識到我已經刪除了導入語句,所以它只是移動到下一個,最終在編譯後會失敗。當我把導入語句回來,然後它開始失敗再次。 – Lastmboy

0

在波德文件下的線

取消註釋來定義一個全球平臺,爲您的項目

平臺:IOS,'10 0.0'

use_frameworks!

現在在Xcode

一)清理項目

二)確保您所有的「豆莢」>「生成設置」>「建設活動體系結構只」設置爲「 NO」

c)現在,建設項目

0

確保您在Xcode打開.xcworkspace文件,而不僅僅是.xcodeproj文件。

相關問題