2015-05-01 186 views
42

我遇到了這個問題,一個全新的項目。 RestKit和Facebook SDK都會發生此問題。奇怪的是,SwiftyJSON工作得很好。我創建了一個全新的快捷項目,並與Podfile:與cocoapods和swift沒有這樣的模塊'RestKit'

source 'https://github.com/CocoaPods/Specs.git' 

use_frameworks! 

target 'test-fb-swift4' do 
    pod "FBSDKCoreKit" 
    pod 'SwiftyJSON', '~> 2.1' 
    pod 'RestKit', :inhibit_warnings => true 
end 

target 'test-fb-swift4Tests' do 

end 

創建文件我跑吊艙安裝和測試-FB-swift4.xcworkspace文件重新打開的Xcode後。

現在在我的控制器中,我把一個導入RestKit,我得到錯誤沒有這樣的模塊'RestKit'。我已經嘗試了許多不同的方式向Podfile格式化甚至下降到非常簡單的版本,如:

source 'https://github.com/CocoaPods/Specs.git' 

pod 'RestKit' 

我曾嘗試添加和刪除use_frameworks,有和沒有目標。有和沒有:inhibit_warnings。

我正在運行CocoaPods 0.36.4並嘗試了最新的rc build,同樣的交易。另一個項目的Objective-C版本運行良好。這是我第一個使用Swift的項目,我在這個問題上陷入困境。

+0

顯示您如何導入。 – Wain

回答

31

我有一個類似的問題。不是特別使用RestKit,而是最初使用HockeySDK。我嘗試了一切,包括刪除和重新安裝豆莢,更新cocoapods本身和更新豆莢,刪除派生數據,清理項目等。

然後我發現每個豆莢對我來說都是個問題。繼續就相關主題搜索後,我終於發現,在:

•目標>構建階段>鏈接二進制與圖書館

我有一個錯位的吊艙框架(可能從先前莢安裝或安裝嘗試)。

Target > Build Phases > Link Binary With Libraries

取出後,問題消失。我注意到,人們似乎經歷下類似的問題:

•項目>資訊>配置

還有,那裏的莢框架被正確映射。所以,如果第一個不適合你,你可能還想檢查第二個。

+1

關於構建配置的第二個建議是對我造成的。我將應用程序項目中的「Debug」構建配置重命名,但在Pods項目上,這創建了一個新配置,而不是重命名「Debug」。從Pods項目中刪除「Debug」配置,使配置與應用項目中的配置相匹配,解決了這個問題。 –

26

第二個選項適合我。在我的項目>資訊>配置,我有我的項目2個目標:常規one(QUIZZ)和測試一個(QuizzTests): enter image description here

對於經常一個,配置上鑲嵌着「Pods.debug 「或」Pods.release「,但QuizzTests沒有。只要我填寫QuizzTests的配置,一切都爲我工作。

+0

不適合我... – bashan

+0

感謝您的回答。這對我有用! –

+0

GG,就是這樣! –

81

我有同樣的問題。我的解決方案是使用.xcworkspace而不是.xcodeproj來打開該項目。 .xcodeproj只包含主項目; .xcworkspace包括一切,包括Restkit。

+0

我不得不「保存爲工作區」來獲得新項目的工作區 – hanzolo

+1

很高興我在搜索超過1小時後找到了答案。 OP應該將這標記爲已接受。 –

+0

非常醜陋的解決方案。更好的方法是解決該問題:在目標>構建階段>鏈接二進制文件與庫之間移除並添加Pods.framework。 – Dmitry

12

你可以很容易地解決這個問題的一件事是確保XCode在安裝pod時完全關閉。每當我遇到這個問題,我都會回過頭來看看,即使我關閉了這個項目,XCode仍然是開放的。希望有所幫助!

+0

非常有幫助,我嘗試了除此步驟之外的所有內容。 – Zee

9

我發現的另一個可能的解決方案是將use_frameworks!添加到您的Podfile中(如果您尚未運行),然後再次運行pod install。 當我僅添加該吊艙時,這是Firebase的問題。

+0

也爲我工作。似乎我刪除了use_frameworks!從我的Podfile,因爲我有一個混合的Swift/Objective-C項目,Swift部分需要包含框架。 – AndyDunn

-3

您的Xcode沒有更新爲由庫/框架

5

此問題的另一個原因可能是在目標的構建設置錯誤的值和預期版本 - 只有建立有源體系。像在圖片中的設置適用於我。 Correct settings

+0

有趣的,也爲我固定。以前我改變過這個設置,但是做另一個'pod install'重置這個值。 –

4

在我來說,我只需要檢查下一個選項在Xcode 查找隱含依賴條件 enter image description here

我不知道爲什麼,但這已經足夠對我,對你的希望太: )。

7

對我來說,解體和重新安裝豆莢解決了這個問題。

首先

pod deintegrate 

然後

pod install 
+0

這是一個非常簡單的解決方案,由於某種原因,這裏列出的其他人不適合我。可能無關緊要,但確保Xcode在分解時關閉。 –

1

我加入面料到我的項目時,也有類似的問題。我有多個目標(發佈和開發)。它會爲import Fabric投擲No Such Module。對我來說有效的是去Project> Build Phases> Link Binary with Libraries,並簡單地將pod框架的狀態標記爲可選enter image description here

-1

問題可能是真的沒有這樣的模塊。特別是如果pod名稱包含破折號和其他有爭議的字符。

在我的情況下,我試圖使用Dip-UI庫。該示例項目使用了Carthage,我想用CocoaPods替換它。迦太基的模塊名是DipUI,而CocoaPods的模塊名是Dip_UI,這意味着我得到「沒有這樣的模塊」,直到我改變了名字。

0

當我編輯和刪除一個目錄我沒有項目需要 - 構建設置(旁邊信息),它是在我的應用程序消滅兩個框架搜索路徑條目目標構建設置。確保所有的四行從波德自動填充條目下面的圖片中安裝,如圖所示: Framework Search Paths in Build Settings for your Target App調試發佈複製條目下面的行,一次選擇一列,然後點擊刪除其應該從上面的行復制。 一旦我這樣做了,工作空間就會建好。

0

如果您使用多個訪問同一類的目標(例如消息擴展應用程序),並且該類已添加到兩個目標中,則必須爲PodFile中的兩個目標添加Pod。

2

對我而言,「查找隱式依賴關係」未被選中。這是問題。 一勞永逸我checked吧。

路徑:Edit Scheme > Build > Find implicit Dependencies

enter image description here

1

在我的情況下,首先我只有一個在Xcode目標。我執行pod install。 幾個月後,我不得不製造另一個目標,所以我有多個目標。

在這種情況下,如果我做pod install並構建xcode,我得到一個「沒有這樣的模塊」的錯誤。

所以我刪除pod文件,然後pod init

Podfile格式已被更改爲多個目標

它的工作原理!

看看這個!

1

事情我想:

  • 刪除並重新添加鏈接吊艙框架
  • 清潔
  • 刪除導出數據
  • 莢再次安裝

唯一的解決辦法我只好這個問題是暴露方案選擇器(運行/停止按鈕旁邊)的Pods-(yourapp)目標並手動建立臨時t Pods-在構建並再次運行我的主要應用目標之前的目標。我希望這可以節省10分鐘的人!

1

經過數小時的嘗試,我發現了原因。我的主要應用程序目標有4個構建配置(調試,發佈,內部,外部)。然而,我的框架(子項目)沒有內部的,外部的,因爲它們是自定義添加的。一旦我添加內部/外部到我的框架項目,所有歸檔罰款。

相關問題