iOS 和 Swift xctest 上的 Google SDK 1.9.1 麻烦

Posted

技术标签:

【中文标题】iOS 和 Swift xctest 上的 Google SDK 1.9.1 麻烦【英文标题】:Google SDK 1.9.1 on iOS & Swift xctest trouble 【发布时间】:2015-01-15 18:34:46 【问题描述】:

提前感谢您为我提供的帮助。我是 ios 新手,正在开发一个使用谷歌地图的应用程序。我添加了谷歌在他的文档 (https://developers.google.com/maps/documentation/ios/start) 中所说的必要框架和资源。问题是当我尝试使用 XCTest 编译应用程序时,它返回此错误:

我在没有单元测试的情况下使用这个 SDK 在 Swift 中制作了一个类似教程的项目,它工作正常。

如果您能提供任何帮助,我将不胜感激。谢谢。

【问题讨论】:

【参考方案1】:

可能是您没有将所有必需的框架添加到项目中,或者您没有正确复制框架或捆绑包。

你可以尝试去this Google Maps in Swift tutorial,下载它的项目代码,看看它是否和你的XCode一起运行。

【讨论】:

我创建了另一个没有 XCTest 的项目,它工作正常。当我添加这一行时问题就来了:GMSServices.provideAPIKey() on AppDelegate. 您添加了Bridge-Header 文件吗? 是的。当我尝试编译 TestTarget 并且它不支持 arm64 架构师时,问题就出现了。 -> 架构 arm64 的未定义符号:“_OBJC_CLASS_$_GMSServices”,引用自: 我解决了。刚刚将 GoogleMaps.Framework 和其他框架添加到 TestTarget -> Build Phases -> Link Binary With Library。

以上是关于iOS 和 Swift xctest 上的 Google SDK 1.9.1 麻烦的主要内容,如果未能解决你的问题,请参考以下文章

Swift (iOS) 代码覆盖率和 XCTest (mock)

xcrun 来自 iOS 上的 XCTest

如何使用 XCTest for iOS 14 取消通话

iOS:使用 XCTest 对 UIViewController 组件进行单元测试

如何在 Swift/XCTest 中写入本地文件?

XCTest |词法或预处理器问题:未找到 MyProject-Swift.h