Xcode:没有这样的模块'Alamofire'

时间:2017-08-09 16:51:03

标签: ios swift xcode xctest

我一直收到错误

  

没有这样的模块'Alamofire'

使用import Alamofire时,在我的Xcode项目swift文件中;该文件位于项目中的单独模块中。

我尝试了以下方法;

  • 构建并运行Alamofire目标
  • 注释掉导入Alamofire并运行项目,然后取消注释并再次构建
  • 确保我使用<MyProject>.xcworkspace而不是.xcodeproj
  • 在项目中使用$(inherited)&gt;构建设置&gt;构建选项&gt; ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES

  • 更新Cocoapods,删除并重新安装依赖项

但是,当我打开swift文件的检查器窗口时,Target Membership会同时选中主应用程序和模块框。

enter image description here

当我取消文件所在的模块时,在我的seperateModuleTests文件中,我无法使用swift文件中使用的类,因为我得到错误;

  

使用未声明的类型

&安培;&安培;

  

使用未解析的标识符'ClassName'

当我取消选中用于测试的类的swift文件的目标成员资格时,seperateModuleTests无法识别swift文件中的类。但是当我检查swift文件的目标成员资格是否是单独模块的一部分时,我得到原始错误。

有人可以帮我解释为什么会这样,以及我如何解决?

2 个答案:

答案 0 :(得分:2)

我认为您缺少在测试目标中添加Alamofire

# Uncomment the next line to define a global platform for your project
platform :ios, '9.0'

target 'AppName' do
  # Comment the next line if you're not using Swift and don't want to use dynamic frameworks
  use_frameworks!

  # Pods for AppName
  pod 'SwiftyJSON'
  pod 'Alamofire', '4.4.0'

  target 'AppNameTests' do
    inherit! :search_paths
    pod 'Alamofire', '4.4.0'
  end

  target 'AppNameUITests' do
    inherit! :search_paths
     pod 'Alamofire', '4.4.0'
  end

end

更好的是

您还可以使用作为目标公共空间的所有广告连播进行配置

# Uncomment this line to define a global platform for your project
platform :ios, '8.2'
# Uncomment this line if you're using Swift
use_frameworks!

# Define main pods.
def main_pods
    #Your common pods here
    pod 'Alamofire', '4.4.0'
end

target 'AppName' do
    main_pods
    #add here other pods specific for this target
end


target 'AppNameTests' do
    main_pods
    #add here other pods specific for this target
end

target 'AppNameUITests' do
    main_pods
    #add here other pods specific for this target
end

希望这有帮助

答案 1 :(得分:0)

运行清洁:产品&gt;然后清理Build。

如果这不起作用。这是怎么用的?是您自己的代码,还是需要您拥有AlamoFire的另一个模块?