4

我对 Kiwi 和 Cocoapods 都是新手。我已经启动并运行了 Cocoapods,但是即使在我开始玩 Kiwi 之前,我的测试目标也会失败,并出现如下错误:

Undefined symbols for architecture i386:
  "_CGRectZero", referenced from:
  -[EGOImageButton initWithPlaceholderImage:delegate:] in libPods.a(EGOImageButton.o)

这是我的 Podfile:

platform :ios
dependency 'RestKit/Network', '~>0.10.0'
dependency 'RestKit/UI', '~>0.10.0'
dependency 'RestKit/ObjectMapping', '~>0.10.0'
dependency 'RestKit/ObjectMapping/XML', '~>0.10.0'
dependency 'RestKit/ObjectMapping/JSON', '~>0.10.0'
dependency 'RestKit/ObjectMapping/CoreData', '~>0.10.0'
dependency 'SVProgressHUD'
dependency 'EGOImageLoading'
dependency 'OHAttributedLabel'
dependency 'SFHFKeychainUtils'

target :test, :exclusive => true do
    dependency 'Kiwi'
end
4

2 回答 2

3

您的测试是否依赖于您的其他 Cocoapods 依赖项?在您的 Podfile 中,尝试删除:exclusive => true测试目标中的 。这将允许您的其他依赖项包含在您的测试目标中,但会将 Kiwi 限制为仅在您的测试目标中。

于 2012-05-24T21:08:20.600 回答
3

您必须进行一些基本设置,类似于 Kiwi Wiki 上关于从头安装 Kiwi 的说明(https://github.com/allending/Kiwi/wiki/Guide:-Up-and-Running-with-Kiwi )

  1. 在 Xcode 中,将名为“test”的单元测试目标添加到应用程序项目(添加目标/Cocoa Touch 单元测试包)
  2. 添加对 PodFile 的 Kiwi 引用(如上所示)
  3. 运行 pod 安装。
  4. 编辑主要目标的架构,将单元测试目标添加到“测试”选项卡(这样您就可以执行 cmd-U)
  5. 将 Main Target 的可执行文件的路径添加到 Unit Test Target 中的 BundleLoader 构建设置中:例如。$(BUILT_PRODUCTS_DIR)/Foo.app/Foo
  6. 将 Kiwi 测试添加到测试目标
于 2012-08-09T18:09:34.227 回答