ios - tutorial - xcode swift教學




使用Xcode遇到錯誤“沒有這樣的模塊”,但是框架在那裡 (20)

我目前正在使用Swift進行編碼,但出現錯誤:

沒有這樣的模塊社交

但是我不明白,因為該模塊在我的項目中,在“鏈接的框架和庫”和“嵌入式二進製文件”中聲明。

這些框架位於Objective-C中,因此我為此編寫了一個橋頭。

請,如何使Xcode識別框架?


以下步驟對我有用。

  1. 退出xcode
  2. 在終端中運行 "pod update"
  3. 打開 .xcworkspace 並重新生成。

假設Framework確實存在並且在路徑中,等等,...刪除〜/ Library / Developer / Xcode / DerivedData / ModuleCache目錄(並清理項目並刪除項目特定的派生數據,以備不時之需)。

當您執行標準清理時,不會重建ModuleCache目錄。


在General => Linked Frameworks and Libraries中,我添加了 ./Pods/Pods.xcodeproj ,它成功了


在Xcode 10.1中,我的解決方案是在“文件”菜單中的“ 工作區設置” 上更改 構建系統 。 默認情況下,將其設置為 New Build System ,將其更改為 Legacy Build System ,並且成功了。


好的,對我來說,解決同一問題的方法是設置相對於工作區目錄的派生數據位置,而不是將其保留為默認值。 轉到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安裝
  • 轉到項目構建設置:

    • 在Swift編譯器-代碼生成下找到Objective-c橋接標頭(如果您在此處找不到Swift編譯器,則可能將新的Swift文件添加到項目中)
    • 將庫頭文件從左側拖放到橋接頭(請參見下圖)
  • 創建一個新的橋接頭文件:例如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 處於啟用狀態!


確保子項目中的配置命名與“父”項目的命名匹配。 如果配置命名不完全匹配(區分大小寫),則Xcode將中止存檔過程並顯示錯誤“ No such module ...”。

也就是說,如果您的“父”項目的配置名為“ AppStore”,則必須確保 所有 子項目也都具有此配置名稱。

查看我所附的屏幕截圖。





swift