我目前在Swift编码,我有一个错误:

没有这样的模块

但我不明白,因为这个模块在我的项目中,在“链接框架和库”和“嵌入式二进制文件”中声明。

框架是在Objective-C中,所以我为它写了一个桥标头。

请问,如何让Xcode识别框架?


当前回答

对我来说,问题在于项目文件缺少这个文件“coursesX.xcworkspace”

当我添加它并重新打开项目时,一切都工作得很好

其他回答

我发现构建设置中的导入路径是错误的自定义(MySQL)模块。把它指向正确的方向后,信息就消失了。

No such module编译错误

这是编译时错误。你可以在很多情况下得到它:

打开的是.xcodeproj而不是。xcworkspace 模块。modulemap or .swiftmodule[关于]

Objective-C库/框架目标

确保生成的二进制文件包含模块。modulemap文件和它的头文件位于Build Phases -> headers部分

框架搜索路径

Consumer ->框架

如果你试图在没有设置框架搜索路径(消费者)的情况下构建应用程序。在设置框架搜索路径指向框架资源后,Xcode将成功构建项目。然而,当你在模拟器中运行应用程序时,有一个崩溃的原因:Image not foundabout

它可以是一个绝对路径或相对路径,如$(SRCROOT)或$(SRCROOT)/..对于工作空间

导入路径

Swift消费者-> Swift静态库

导入路径(消费者)应该指向.swiftmodule

寻找隐式依赖关系

当您有一个隐式依赖项,但“查找隐式依赖项”已关闭时

CocoaPods

检查目标中是否存在此依赖项

pod deintegrate
pod install

CocoaPods UI测试包

对于应用程序目标,使用额外的依赖CocoaPods。要解决它使用继承![关于]在Podfile

(递归路径)

我的问题(这一次)是我在Podfile中使用了一个过时的库版本。

我使用:

pod 'LBTAComponents', '~> 0.1.9'

这并没有起作用,但当我把它改成:

pod 'LBTAComponents', '~> 1.0.2'

它工作。

我的解决办法是。在目标->构建设置->框架搜索路径和添加$(继承)。然而,如果它是一个cocoapods,你的答案可能在输出终端内。

我得到了相同的错误

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添加到任何适当的占位符。