我有一个新项目,我正在使用XCode 7 beta 3和
Swift 2.0,使用通过cocoapods导入的GoogleMaps.这是一个WatchKit 2.0应用程序,所以我有一个主要目标iPhone(目的地),Apple Watch(Destinations WatchKitApp和目的地WatchKitExtension)的目标和内部框架(DestinationsKit),它与GoogleMaps进行交互繁重除其他事项外.
我可以成功将GoogleMaps导入主目标(Destinations)并成功显示地图.
import UIKit
import DestinationsKit
import GoogleMaps
class DestinationDetailsViewController : UIViewController
{
// our selected destination
var destination: Destination!
// our map view
var mapView : GMSMapView!
// ... code to display a map centering on the destination ...
}
上面的代码导入了我的内部框架DestinationsKit,并成功使用了GoogleMaps.
但是,我现在正在编写计算两点之间路由的代码,并将该代码添加到内部框架(DestinationsKit).每当我尝试导入GoogleMaps时,我都会得到一个’没有这样的模块’GoogleMaps”.
import Foundation
import CoreLocation
import GoogleMaps // Error 'No such module 'GoogleMaps''
public class UserTrip {
}
我做了以下没有成功:
>’在构建阶段’ – > ‘Link Binary With Libraries’,我添加了Pods.Framework(这是我在主要目标中取得的成功)
>将“允许框架模块中的非模块化包含”设置为“是”
>在“构建设置”中将“打包” – >“定义模块”设置为“是”
我的Pods文件如下:
source 'https://github.com/CocoaPods/Specs.git'
use_frameworks!
pod 'GoogleMaps'
我确保Pods.Framework包含在两个目标中.所以,我无法弄清楚为什么主要目标可以找到GoogleMaps,但我的内部框架却找不到.
提前致谢!
最佳答案 当然,一旦我发布问题,我就找出原因.
即使我手动将Pods.framework添加到构建阶段,我还需要更新我的Pods文件以将框架作为目标包含在内,然后再次运行“pod install”.因此,更新的Pods文件是:
source 'https://github.com/CocoaPods/Specs.git'
# We need to link with all targets. If target is added, this must be updated
use_frameworks!
pod 'GoogleMaps'
link_with 'Destinations', 'DestinationsKit'
target 'Destinations' do
end
target 'DestinationsKit' do
end
不确定“目标”行是否必要,但是包含这些行是很好的,因此特定于目标的依赖项具有主页.