无法在Xcode测试目标上使用GoogleMaps SDK(在应用目标上可以使用)

3

设置

我已经成功地使用CocoaPods将GoogleMaps SDK集成到我的Swift 2项目中。

我的设置基本上是根据Ray Wenderlich教程所建议的。

我唯一能找到的区别是,我必须在AppDelegate中添加这行代码:

import UIKit
import GoogleMaps // <- THIS LINE

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate
{
    ...

为了使用框架的类,教程建议导入以下内容:
#import <GoogleMaps/GoogleMaps.h>

将其添加到桥接头文件中即可。

应用程序可以正常工作。


问题:

当我尝试运行由Xcode自动生成的测试目标时,出现以下错误:

找不到模块“GoogleMaps”

...指向上面AppDelegate.swift文件中的swift导入语句。

所以,我决定改为使用教程中的方法:在AppDelegate.swift中注释掉import GoogleMaps这一行,并在桥接头文件中添加一个Objective-C样式的导入语句。

然而,我无法正确地实现它:

  1. 如果我使用:#import <GoogleMaps/GoogleMaps.h>#import "GoogleMaps/GoogleMaps.h",则会在构建应用程序目标时在AppDelegate.swift处报错:

    未解决的标识符“GMServices”

  2. 如果我使用:#import "GoogleMaps.h",则会在桥接头文件中报错:

    无法找到文件“GoogleMaps.h”

我已经尝试了这个答案中的解决方案,但结果仍然相同(令人困惑)...


接下来,我检查了两个目标(应用程序和测试)的Build Settings / Search Paths / Framework Search Paths的值。应用程序目标具有以下条目:

"${PODS_ROOT}/GoogleMaps/Frameworks"

...而测试目标则没有,所以我添加了它,并恢复了swift样式的导入语句(至少在构建应用程序目标时是有效的),但我仍然遇到了问题:

import GoogleMaps   <! No such module 'GoogleMaps'

如何为我的应用程序运行测试?
1个回答

3

所以事实证明我只需要修复Podfile(并运行pod install),就像这个答案解释的那样。

我的旧的pod文件:

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.1'

def import_pods
    pod 'GoogleMaps'
end

workspace 'MyWorkspace'
xcodeproj 'MyApp/MyApp.xcodeproj'

target : MyApp do
    xcodeproj 'MyApp MyApp.xcodeproj'
    pod 'GoogleMaps'
end

我当前的 pod 文件:

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.1'

def import_pods
    pod 'GoogleMaps'
end

workspace 'MyWorkspace'
xcodeproj 'MyApp/MyApp.xcodeproj'

target 'MyApp', :exclusive => true do
    xcodeproj 'MyApp/MyApp.xcodeproj'
    import_pods
end

target 'MyAppTests', :exclusive => true do
    xcodeproj 'MyApp/MyApp.xcodeproj'
    import_pods
end

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接