我试图使用cocoapods (0.33.1)添加Google iOS (1.8.1)。
部署目标版本:iOS 7.0
我添加了这个结束符:pod 'Google-Maps-iOS-SDK','~> 1.8‘下载并正确安装了sdk。
我开始从这里添加头文件和示例地图视图加载代码。
我正确地添加了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",引用于: objc-class-ref in DealDetailsViewController.o "_OBJC_CLASS_$_GMSMapView",引用于: objc-class-ref in DealDetailsViewController.o "_OBJC_CLASS_$_GMSCameraPosition",引用于: objc-class-ref in DealDetailsViewController.o "_OBJC_CLASS_$_GMSServices",引用于: objc-class-ref中的AppDelegate.o :符号(S)没有找到架构armv7 clang:错误:链接器命令与退出代码1失败(使用-v查看调用)
我还尝试使用google sdk手动安装(没有cocoapods)。我还添加了链接标志:-ObjC。它构建得很好,但在运行时显示选择器时崩溃,没有发现像这样的错误:
将抛出一个NSException,其中包含发送到实例的说明- -GMSMapView animateToCameraPosition::不可识别的选择器。
我只需要使用google SDK,无论是使用cocoapod还是手动安装。
我在这里有遗漏什么吗?
编辑
如果有任何与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发布于 2014-08-14 00:46:21
看起来链接器找不到sdk库。标头是存在的,但是sdk对象-文件没有链接到项目。
检查这一情况:
BuildSettings-> Linker >其他链接标记必须具有值$(继承)

发布于 2014-08-16 19:37:54
你遵循了下面提到的所有步骤吗?
GoogleMaps.framework包拖到项目的框架组中。当出现提示时,选择将项复制到目标组的文件夹中。GoogleMaps.framework,然后选择Show。GoogleMaps.bundle从参考资料文件夹拖到项目中。我们建议把它放在框架组中。当出现提示时,确保没有选择将项复制到目标组的文件夹中。选择项目,而不是特定目标,然后打开“生成设置”选项卡。在另一个链接器标志部分中,添加-ObjC。如果这些设置不可见,请将“生成设置”栏中的筛选器从“基本”更改为“全部”。最后,将API键添加到AppDelegate中。
#import <GoogleMaps/GoogleMaps.h>在application:didFinishLaunchingWithOptions:方法中添加以下内容,用API键替换API_KEY。
[GMSServices provideAPIKey:@"API_KEY"];来源:谷歌
发布于 2014-08-11 18:28:43
我经常和其他的语言犯同样的错误。我说不出确切的原因,但当我在树枝之间切换时,就会发生这种情况。
解决办法很简单:

对我来说总是管用的。
https://stackoverflow.com/questions/25248359
复制相似问题