ios - tutorial - xcode swift教學
使用Xcode遇到錯誤“沒有這樣的模塊”,但是框架在那裡 (20)
我目前正在使用Swift進行編碼,但出現錯誤:
沒有這樣的模塊社交
但是我不明白,因為該模塊在我的項目中,在“鏈接的框架和庫”和“嵌入式二進製文件”中聲明。
這些框架位於Objective-C中,因此我為此編寫了一個橋頭。
請,如何使Xcode識別框架?
以下步驟對我有用。
- 退出xcode
-
在終端中運行
"pod update"
-
打開
.xcworkspace
並重新生成。
假設Framework確實存在並且在路徑中,等等,...刪除〜/ Library / Developer / Xcode / DerivedData / ModuleCache目錄(並清理項目並刪除項目特定的派生數據,以備不時之需)。
當您執行標準清理時,不會重建ModuleCache目錄。
在General => Linked Frameworks and Libraries中,我添加了
./Pods/Pods.xcodeproj
,它成功了
好的,對我來說,解決同一問題的方法是設置相對於工作區目錄的派生數據位置,而不是將其保留為默認值。 轉到xcode中的首選項。 轉到首選項中的“位置”選項卡,然後將“派生數據”設置為“相對”。 希望能幫助到你。
如果以上所有方法都不適合您,例如我的情況。 前一天沒有問題,但第二天早上我遇到了同樣的錯誤。 我只是通過刪除引用來刪除框架,然後再次添加它們。 我知道這聽起來很愚蠢,但是瞧瞧它奏效了。
如果是星期五下午或凌晨1點之後的任何時間:
打開
xcodeproj
而不是
xcworkspace
會導致這樣的錯誤...
如果要為tvOS之類的平台構建,請確保已選擇Apple TV(即匹配)模擬器。
使用選定的iOS模擬器構建tvOS應用確實給了我這個錯誤。 花了一個小時的大部分時間來尋找各種各樣的構建問題。
對於它的價值(我是Xcode 7.2 / Swift 2的新手),但我注意到,只要從項目目錄中的庫中獲取.swift文件,即可自動訪問該文件,並且不需要using語句。
示例:我正在使用SwiftyJSON,僅需要項目中包含SwiftyJSON.swift文件即可。
using
語句實際上給了我“ no such module”錯誤,並將其取出解決了該問題,並且工作正常。
對於我來說,對於所選配置, 僅 將“ 僅構建活動體系結構” 設置為“是”。 這達到了目的:
從左側的項目導航器中選擇“窗格”>選擇“構建設置”>僅將活動體系結構構建為 否
幾天前我也遇到了同樣的錯誤。 這是我解決問題的方法:
錯誤是“找不到模塊”
- 在根項目目錄中創建Podfile
- 安裝cocoapods(Swift和iOS項目的依賴管理器)
- 運行Pod安裝
-
轉到項目構建設置:
-
創建一個新的橋接頭文件:例如TestProject-Bridging-Header.h並將其放置在Swift Compiler→Objective-C生成的接口頭名稱下(請參見上圖)
- 在TestProject-Bridging-Header.h文件中,編寫#import“ Mixpanel / Mixpanel.h”
- 在您的Swift文件中,代碼應為:Import Mixpanel(即庫名)
就這樣。
我不太確定為什麼 馬丁·R 在問題評論中的回答如此被忽略:
確保已嘗試僅 跳過框架的導入,因為該框架已與橋接頭一起添加 。
希望這可以幫助
我也遇到了這個問題。 對我來說,解決方法是兩個項目之間的存檔方案不匹配。 我有一個帶有框架項目和應用程序項目的xcworkspace。 問題在於,在我的應用程序的“存檔”方案中,我使用的構建配置與框架在其“存檔”方案中使用的配置不同。 我將兩個“構建配置”都設置為“發布”,從而解決了該問題。
我剛剛刪除了我的cocoapod。 然後,我安裝了一個pod來刪除它。 然後,我將其重新添加到podfile中並重新安裝。 這使它起作用。 不知道為什麼。
我在使用Cocoapods和 Swift時 遇到了同樣的問題。 我在Podfile中沒有註意到以下幾行:
# Uncomment this line if you're using Swift
# use_frameworks!
因此,我要做的就是將其更改為:
# Uncomment this line if you're using Swift
use_frameworks!
... aa,它起作用了:)
我在加載FacebookSDK時遇到了類似的問題,在 Build設置中的 框架搜索路徑 中添加了 〜/ Documents / FacebookSDK (在您的框架所在的位置進行 搜索 ),之後便能夠導入FBSDKShareKit模塊
我收到了同樣的錯誤
import Firebase
但是然後注意到我沒有將pod添加到主要目標部分,而只是添加到Podfile中的Test和TestUI目標。
用命令
pod init
對於xcode swift項目,將生成以下Podfile
# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'
target 'MyApp' do
# Comment the next line if you're not using Swift and don't want to use dynamic frameworks
use_frameworks!
# Pods for MyApp
target 'MyAppTests' do
inherit! :search_paths
# Pods for testing
end
target 'MyAppUITests' do
inherit! :search_paths
# Pods for testing
end
end
因此,需要確保將Pod添加到任何適當的佔位符。
我用這個解決了
目標->常規->鏈接的框架和庫
添加應位於
Workspace
文件夾頂部的框架。
痛苦中。
確保在Scheme中的“在構建選項中
Find implicit Dependencies
處於啟用狀態!