xcode 无此模块

7fyelxc5  于 2022-12-14  发布在  其他
关注(0)|答案(9)|浏览(170)

我已经学习swift三天了。我计划在swift中培养我的技能,特别是在iOS开发中。我的同事是一名iOS开发人员,他建议我在我们的应用程序中编写测试时学习swift--这对公司和我自己都有好处,对我来说很有意义。现在,我正在尝试按照这个教程https://medium.com/@ynzc/getting-started-with-tdd-in-swift-2fab3e07204b进行操作
按照教程在一个名为Quick的框架中重写测试,这个框架与Rspec非常相似。我安装了CocoaPod,然后安装了Quick框架。使用.xcworkspaces代替.xcodeproj。但我仍然得到No such module 'Quick'的错误。
我已经做了研究,并删除豆荚,但仍然得到错误。

platform :ios, '9.2'

target 'FizzBuzz' do
  use_frameworks!

  def test_pods
    pod 'Quick', '~> 0.9.0'
    pod 'Nimble', '~> 3.2.0'
  end

  target 'FizzBuzzTests' do
    inherit! :search_paths
    test_pods
  end

  target 'FizzBuzzUITests' do
    inherit! :search_paths
    test_pods
  end

end

项目文件夹的屏幕截图:

z9ju0rcb

z9ju0rcb1#

我最近遇到了这个问题,目前的答案都没有为我解决这个问题。
我得到这个错误的原因是我创建的Test/Spec文件(NetworkSpec.swift)有一个主应用程序目标的目标成员,而不是测试目标。
为了更新这个,我在xcode中打开了这个项目,在项目浏览器中选择了这个文件,然后在右边的属性窗口中,然后在目标成员区域中,我有两个选择。

  • 项目名称
  • 项目名称测试

我取消选中ProjectName(不是应用的真实的名称)旁边的复选框,然后选中ProjectNameTests旁边的复选框,并重新运行测试。

0aydgbwb

0aydgbwb2#

我遇到了同样的问题。我不需要在我的podfile中嵌套测试目标。

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

use_frameworks!

target 'MyAppName' do
    pod 'RealmSwift'
    pod 'GoogleMaps'
end

target 'MyAppNameTests' do
    inherit! :search_paths
    pod 'Quick'
    pod 'Nimble'
end

target 'MyAppNameUITests' do
    inherit! :search_paths
    pod 'Quick'
    pod 'Nimble'
end

post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      config.build_settings['SWIFT_VERSION'] = '3.0' # or '3.0'
    end
  end
end

我使用的是Xcode 8.1。请单击当前选定的方案。
选择“管理方案”。
Selected scheme.
在测试方案和快速旁边打勾。
再次点击你的app scheme。选择每个scheme并转到Product〉Build。最后再次选择你的主app scheme。现在尝试在你的一个测试类中添加“import Quick”。
Schemes

yqyhoc1h

yqyhoc1h3#

问题已解决

我也遇到了同样问题测试文件夹中文件没有看到Nimble和Quick Pod,尽管我Podfile配置正确,并且我测试文件目标成员身份也设置正确我无法导入这两个Pod
通过CLI在Project文件夹上运行以下命令为我解决了问题。

$ pod update Quick
$ pod update Nimble

我的Podfile两个pod的实现供参考:

def include_test_pods
  pod 'Quick'
  pod 'Nimble'
end
dnph8jn4

dnph8jn44#

试试这个。椰子可能需要重建。
1.退出XCode。转到终端并通过cd进入您的项目。
1.运行分离舱。
1.运行pod安装。
1.打开Xcode,清理并构建.xcworkspaces项目。

72qzrwbm

72qzrwbm5#

我有这个问题,持续通过构建清理。我注意到它只发生在一个文件和文件没有这个问题有import foundation。在导入基础的前一行,然后它的工作。我想可能是简单地修改了文件,所以我删除了基础导入和错误回来了。所以尝试添加该导入,如果你没有它。

yks3o0rb

yks3o0rb6#

首先,您只需要在目标项目中使用pod,这样它就可以共享给您的测试目标

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

target 'TestNetWorkLayer' do
  use_frameworks!
  pod 'SwiftyJSON'
  pod 'Quick'
  pod 'Mockingjay'
  pod 'Nimble'
  pod 'Alamofire', '~> 5.0.0-rc.3'

  target 'TestNetWorkLayerTests' do
    inherit! :search_paths
      end
end

之后,您可以将其导入到项目中

import Quick
import Nimble
class NativeApiClientSpec{

}
7gs2gvoe

7gs2gvoe7#

在我的Podfile中,我这样使用smth:

target 'Specs' do
  pod 'Quick'
  pod 'Nimble'
  shared_pods
end

此外,重新打开项目或使用以下命令:Product -> Clean and build folder

tp5buhyn

tp5buhyn8#

我也遇到了同样的问题。经过大量的试验和错误,我在这里找到了修复:https://github.com/Quick/Quick/issues/402#issuecomment-149459840。我不得不删除派生数据并重新生成项目以获取Quick作为构建方案

pod7payv

pod7payv9#

试试这个;
1.关闭xcode项目
1.运行$ pod deintegrate
1.删除Podfile.lock
1.运行$ pod install
然后重新构建!

相关问题