【发布时间】:2014-08-11 16:48:02
【问题描述】:
我正在尝试使用 cocoapods (0.33.1) 添加 Google-Maps-iOS-SDK (1.8.1)。
部署目标版本:iOS 7.0
我已经添加了这个 pod:pod 'Google-Maps-iOS-SDK', '~> 1.8'
已正确下载并安装 sdk。
我开始从here 添加头文件和示例地图视图加载代码。
我已正确添加 API 密钥。在一个视图控制器的- (void)viewDidLoad,
我添加了以下代码:
// Create a GMSCameraPosition that tells the map to display the
// coordinate -33.86,151.20 at zoom level 6.
GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.86
longitude:151.20
zoom:6];
GMSMapView *mapView_ = [GMSMapView mapWithFrame:CGRectZero camera:camera];
mapView_.myLocationEnabled = YES;
self.view = mapView_;
// Creates a marker in the center of the map.
GMSMarker *marker = [[GMSMarker alloc] init];
marker.position = CLLocationCoordinate2DMake(-33.86, 151.20);
marker.title = @"Sydney";
marker.snippet = @"Australia";
marker.map = mapView_;
我在为 iPhone 构建时遇到此错误(不在模拟器中)
架构 armv7 的未定义符号:
“_OBJC_CLASS_$_GMSMarker”,引用自: DealDetailsViewController.o "_OBJC_CLASS_$_GMSMapView" 中的objc-class-ref,引用自: DealDetailsViewController.o "_OBJC_CLASS_$_GMSCameraPosition" 中的objc-class-ref,引用自: DealDetailsViewController.o "_OBJC_CLASS_$_GMSServices" 中的 objc-class-ref,引用自: AppDelegate.o ld 中的 objc-class-ref:未找到架构 armv7 clang 的符号:错误:链接器命令失败并出现退出代码 1(使用 -v 查看调用)
我也尝试过使用 google map iOS sdk 手动安装(没有 cocoapods)。我还添加了链接器标志:-ObjC。它构建良好,但在运行时崩溃,显示选择器未找到错误,如下所示:
抛出一个带有描述的 NSException - -[GMSMapView animateToCameraPosition:]: 无法识别的选择器发送到实例。
我只需要通过 cocoapod 或手动安装来使用 google map iOS SDK。
我在这里遗漏了什么吗?
编辑
如果有任何与 Pods.xcconfig 相关的内容,那么这里是该文件的内容:
FRAMEWORK_SEARCH_PATHS = "$(PODS_ROOT)/Google-Maps-iOS-SDK" "$(PODS_ROOT)/Parse-iOS-SDK"
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers" "${PODS_ROOT}/Headers/Bolts" "${PODS_ROOT}/Headers/Facebook-iOS-SDK" "${PODS_ROOT}/Headers/Facebook-iOS-SDK/FacebookSDK" "${PODS_ROOT}/Headers/Google-Maps-iOS-SDK" "${PODS_ROOT}/Headers/Google-Maps-iOS-SDK/GoogleMaps" "${PODS_ROOT}/Headers/MBProgressHUD" "${PODS_ROOT}/Headers/Parse-iOS-SDK" "${PODS_ROOT}/Headers/Reachability" "${PODS_ROOT}/Headers/WYPopoverController"
OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers" -isystem "${PODS_ROOT}/Headers/Bolts" -isystem "${PODS_ROOT}/Headers/Facebook-iOS-SDK" -isystem "${PODS_ROOT}/Headers/Facebook-iOS-SDK/FacebookSDK" -isystem "${PODS_ROOT}/Headers/Google-
Maps-iOS-SDK" -isystem "${PODS_ROOT}/Headers/Google-Maps-iOS-SDK/GoogleMaps" -isystem "${PODS_ROOT}/Headers/MBProgressHUD" -isystem "${PODS_ROOT}/Headers/Parse-iOS-SDK" -isystem "${PODS_ROOT}/Headers/Reachability" -isystem "${PODS_ROOT}/Headers/WYPopoverController"
OTHER_LDFLAGS = -ObjC -lc++ -licucore -lsqlite3 -lz -framework AVFoundation -framework AudioToolbox -framework CFNetwork -framework CoreData -framework CoreGraphics -framework CoreLocation -framework CoreText -framework GLKit -framework GoogleMaps -framework ImageIO -framework MobileCoreServices -framework OpenGLES -framework Parse -framework QuartzCore -framework Security -framework StoreKit -framework SystemConfiguration -framework UIKit -weak_framework Accounts -weak_framework AdSupport -weak_framework Security -weak_framework Social
PODS_ROOT = ${SRCROOT}/Pods
【问题讨论】:
-
检查包含的架构切片以防万一
xcrun -sdk iphoneos lipo -info XXX.a -
是否有诸如“忽略文件 GoogleMaps.framework .....”之类的警告?
-
不,没有任何警告
标签: ios google-maps cocoapods google-maps-sdk-ios