高德开发者论坛

标题: 一键配置高德API(使用CocoaPods添加高德API) [打印本页]

作者: chenjie_1986    时间: 2014-9-26 10:41
标题: 一键配置高德API(使用CocoaPods添加高德API)
本帖最后由 chenjie_1986 于 2014-11-4 15:14 编辑

对于经熟悉CocoaPods的同学,使用如下命令:
pod 'AMap2DMap' #2D地图SDK
pod 'AMap3DMap' #3D地图SDK(2D地图和3D地图不能同时使用)
pod 'AMapSearch' #搜索服务SDK

对初次使用CocoaPods的同学:
1>安装CocoaPods(已安装请跳过)
    在终端输入
    sudo gem install cocoapods
    如果安装成功,会有一个提示
    Successfully installed cocoaPods
    若很久没反应,则是因为安装被墙阻拦
    解决方法1:打开vpn下载
    解决方法2:请看详细指南 http://code4app.com/article/cocoapods-install-usage

2>搜索高德API库
    2D地图SDK  pod search AMap2DMap
    3D地图SDK  pod search AMap3DMap
    搜索服务SDK  pod search AMapSearch


    若无返回结果,则先运行
    pod repo update
    而后再进行搜索


3>新建一个xcode工程


4>使用cocoapod
    在当前工程文件(.xcodeproj)所在文件夹下,打开terminal
    创建Podfile:
    touch Podfile
    编辑Podfile内容如下:       

    source  'https://github.com/CocoaPods/Specs.git'
    platform :ios, '7.0'
    pod 'AMap2DMap'  #2D地图SDK
    #pod 'AMap3DMap' #3D地图SDK (2D和3D不能同时使⽤用)
    pod 'AMapSearch' #搜索服务SDK


    在PodFile所在的文件夹下输入命令:
    pod install
    若已经install过,使用命令:
     pod update
     来更新版本。

     成功以后,会出现如下记录:
     localhost:yourWorkDir yourUserName$ pod install
     Analyzing dependencies
     Downloading dependencies
     Installing AMap2DMap(2.3.0)
     Installing AMapSearch (2.3.0)
     Generating Pods project
     Integrating client project !
     [!] From now on use `yourProj.xcworkspace`.


    打开workspace,接下来的使用可以跳过官网上配置工程这一步,直接用。但是使用前别忘了申请key,申请地址:http://lbs.amap.com/console

更多cocoapod相关设置,请见官方文档
http://guides.cocoapods.org/

附注
在iOS 8上使⽤用定位服务,需要额外设置info plist,请参考以下帖子
http://lbsbbs.amap.com/forum.php?mod=viewthread&tid=265&extra=page%3D1








作者: hitbin    时间: 2014-10-2 14:45
不错,又做了个demo 非常好
作者: meizhouliu    时间: 2014-10-11 10:58
编译失败。
作者: chenjie_1986    时间: 2014-10-11 17:27
meizhouliu 发表于 2014-10-11 10:58
编译失败。

您好!在哪里失败了?
作者: meizhouliu    时间: 2014-10-11 18:34
chenjie_1986 发表于 2014-10-11 17:27
您好!在哪里失败了?

楼主你好,情况是这样的

我在armv7 和 armv7s下手动编译可以编译成功,但是如果使用cocoapods自动部署的方法无法编译成功 cocoapods 提示如下:
[!] Found multiple values (`armv7`, `armv7s`) for the architectures (`ARCHS`) build setting for the `Pods` target definition. Using the first.

编译报错如下:
_OBJC_CLASS_$_MAMapServices", referenced from: objc-class-ref in AppDeleg
谢谢~
作者: mickel    时间: 2014-10-16 19:26
meizhouliu 发表于 2014-10-11 18:34
楼主你好,情况是这样的

我在armv7 和 armv7s下手动编译可以编译成功,但是如果使用cocoapods自动部署的 ...

分开编译,然后将各自编译好的libpod.a文件用lipo命令把两个libpod.a文件合成一个,再手动替换掉原先的那个libpod.a文件
作者: cysmap    时间: 2014-10-21 12:12
已经更新到2.4.0
作者: baoee753    时间: 2015-2-5 12:05
求教你们是怎么发布这个cocoapods的,可以不指定git上的source,可以给一份spec看下嘛
作者: chenjie_1986    时间: 2015-2-5 13:46
baoee753 发表于 2015-2-5 12:05
求教你们是怎么发布这个cocoapods的,可以不指定git上的source,可以给一份spec看下嘛 ...

我们用的是模板,你可以网上学习~
作者: yhl714387953    时间: 2015-3-6 14:42
2015年3月份之后高德地图不支持cocoaPods了,gitHub没有更新!链接都是错的了!
作者: chenjie_1986    时间: 2015-3-6 17:49
yhl714387953 发表于 2015-3-6 14:42
2015年3月份之后高德地图不支持cocoaPods了,gitHub没有更新!链接都是错的了! ...

不会啊~我昨天才更新了,你再试试!
作者: yhl714387953    时间: 2015-3-9 10:47
chenjie_1986 发表于 2015-3-6 17:49
不会啊~我昨天才更新了,你再试试!

http://lbs.amap.com/wp-content/u ... DMap_Lib_V2.4.2.zip  这个是pod search出来的资源地址,以前是能直接在浏览器打开下载的,现在无法找到地址
作者: chenjie_1986    时间: 2015-3-9 16:39
yhl714387953 发表于 2015-3-9 10:47
http://lbs.amap.com/wp-content/uploads/2014/06/AMap_iOS_API_3DMap_Lib_V2.4.2.zip  这个是pod search ...

你好~现在可以了!你试试~官网可能有点不太稳定
作者: pharen    时间: 2015-3-10 11:17
本帖最后由 pharen 于 2015-3-10 11:18 编辑

今天突然又可以了
作者: chenjie_1986    时间: 2015-3-10 11:36
pharen 发表于 2015-3-10 11:17
今天突然又可以了

恩,可能官网在更新!不行就多试试,总有一次是好的,嘻嘻~
作者: FairyOfTail    时间: 2015-3-25 15:18
楼主,这是怎么回事啊???能帮忙解决下不

屏幕快照 2015-03-25 下午3.15.03.png (50.92 KB, 下载次数: 55)

屏幕快照 2015-03-25 下午3.15.03.png

作者: chenjie_1986    时间: 2015-3-25 16:38
FairyOfTail 发表于 2015-3-25 15:18
楼主,这是怎么回事啊???能帮忙解决下不

你安装了pod了吗?请参考:http://lbs.amap.com/api/ios-sdk/guide/deploy/
作者: FairyOfTail    时间: 2015-3-25 21:35
安装了,,我跟着来的,到最后还是错的
作者: chenjie_1986    时间: 2015-3-27 11:17
FairyOfTail 发表于 2015-3-25 21:35
安装了,,我跟着来的,到最后还是错的

是安装pod出错?还是sdk?
作者: FairyOfTail    时间: 2015-3-29 18:27
是安装pod出错,老是要管理员密码。而且等了很久都没有反应
作者: chenjie_1986    时间: 2015-3-30 14:01
FairyOfTail 发表于 2015-3-29 18:27
是安装pod出错,老是要管理员密码。而且等了很久都没有反应

http://code4app.com/article/cocoapods-install-usage,这里有详细的方法,你可以用淘宝的镜像去做。
作者: FairyOfTail    时间: 2015-3-31 10:51
chenjie_1986 发表于 2015-3-30 14:01
http://code4app.com/article/cocoapods-install-usage,这里有详细的方法,你可以用淘宝的镜像去做。 ...

谢谢!我在去试试
作者: weilei168    时间: 2015-4-23 15:47
自动配置在哪里填写key?
作者: chenjie_1986    时间: 2015-4-24 11:14
weilei168 发表于 2015-4-23 15:47
自动配置在哪里填写key?

自动配置只是帮你配置环境,配置key是做地图显示的步骤,请参考:http://lbs.amap.com/api/ios-sdk/guide/mapview/#addkey
作者: weilei168    时间: 2015-4-24 16:06
解决了。。谢谢。。
作者: xiaowp    时间: 2015-5-8 19:33
请问我在一个机器上做了一个单独的地图定位DEMO,也做了自动配置,可是我把这个DEMO弄到另一台机器上加整合到一个大的项目中,它出现错误:'MAMapKit/MAMapKit.h' file not found.  这是为什么呢?
作者: joui003    时间: 2015-5-15 17:20
使用cocoapods后  出现的这个错误怎样解决:Undefined symbols for architecture arm64:
  "_OBJC_CLASS_$_AMapPlaceSearchRequest", referenced from:
      objc-class-ref in AddressManageViewController.o
  "_OBJC_CLASS_$_AMapSearchAPI", referenced from:
      objc-class-ref in AddressManageViewController.o
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
作者: chenjie_1986    时间: 2015-5-18 14:01
joui003 发表于 2015-5-15 17:20
使用cocoapods后  出现的这个错误怎样解决:Undefined symbols for architecture arm64:
  "_OBJC_CLASS_$_ ...

导航sdk未适配模拟器,重新发布修复版本V1.2.1,升级即可。
作者: chenjie_1986    时间: 2015-5-18 14:02
joui003 发表于 2015-5-15 17:20
使用cocoapods后  出现的这个错误怎样解决:Undefined symbols for architecture arm64:
  "_OBJC_CLASS_$_ ...

你用的sdk的版本是多少?2.4.0以后版本支持arm64
作者: bestsdk    时间: 2015-5-18 16:39
这个教程不错啊 可以减少很多弊端bestsdk
作者: weizt    时间: 2015-6-18 16:12

platform :ios, '7.0'
pod "AFNetworking", "~> 2.0"
pod 'FMDB'
pod 'UIView+AutoLayout'
platform :ios, '7.0'
pod 'SDWebImage', '~>3.7'
pod 'UMengAnalytics'#标准SDK,含IDFA
source  'https://github.com/CocoaPods/Specs.git'
platform :ios, '7.0'
pod 'AMap2DMap'  #2D地图SDK
#pod 'AMap3DMap' #3D地图SDK (2D和3D不能同时使⽤用)
pod 'AMapSearch' #搜索服务SDK

我有一系列的在里面  pod install后没看到高德的 咋回事
作者: chenjie_1986    时间: 2015-6-23 11:21
weizt 发表于 2015-6-18 16:12
platform :ios, '7.0'
pod "AFNetworking", "~> 2.0"
pod 'FMDB'

先search一下,看看有 没有找到AMap2DMap
作者: linlishu8    时间: 2015-7-29 15:59
为啥用cocoapods加了高德地图后更新库 就会报

――― MARKDOWN TEMPLATE ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――

### Command

```
/usr/bin/pod update
```

### Report

* What did you do?

* What did you expect to happen?

* What happened instead?


### Stack

```
   CocoaPods : 0.38.2
        Ruby : ruby 2.0.0p481 (2014-05-08 revision 45883) [universal.x86_64-darwin14]
    RubyGems : 2.0.14
        Host : Mac OS X 10.10.4 (14E46)
       Xcode : 6.4 (6E35b)
         Git : git version 2.3.2 (Apple Git-55)
Ruby lib dir : /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib
Repositories : master - https://github.com/CocoaPods/Specs.git @ e7fcdde70b77d2cbb68f58f03a1c02320b823724
```

### Plugins

```
cocoapods-plugins : 0.4.2
cocoapods-stats   : 0.5.3
cocoapods-trunk   : 0.6.1
cocoapods-try     : 0.4.5
```

### Podfile

```ruby
source 'https://github.com/CocoaPods/Specs.git'

pod 'MarqueeLabel'
```

### Error

```
Errno::ENOENT - No such file or directory - /Users/apple/Pods/AMapSearch/AMapSearchKit.framework/Resources
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/fileutils.rb:905:in `stat'
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/fileutils.rb:905:in `symbolic_modes_to_i'
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/fileutils.rb:926:in `fu_mode'
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/fileutils.rb:1000:in `block (2 levels) in chmod_R'
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/fileutils.rb:1460:in `preorder_traverse'
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/fileutils.rb:998:in `block in chmod_R'
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/fileutils.rb:997:in `each'
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/fileutils.rb:997:in `chmod_R'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.38.2/lib/cocoapods/installer.rb:117:in `block in prepare'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.38.2/lib/cocoapods/user_interface.rb:140:in `message'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.38.2/lib/cocoapods/installer.rb:116:in `prepare'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.38.2/lib/cocoapods/installer.rb:103:in `install!'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.38.2/lib/cocoapods/command/project.rb:71:in `run_install_with_update'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.38.2/lib/cocoapods/command/project.rb:156:in `run'
/Library/Ruby/Gems/2.0.0/gems/claide-0.9.1/lib/claide/command.rb:312:in `run'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.38.2/lib/cocoapods/command.rb:48:in `run'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.38.2/bin/pod:44:in `<top (required)>'
/usr/bin/pod:23:in `load'
/usr/bin/pod:23:in `<main>'
```

――― TEMPLATE END ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
作者: amap_1501922163    时间: 2015-8-6 15:51
本帖最后由 amap_1501922163 于 2015-8-6 16:24 编辑

Swift下使用CocoaPod出错,无法查找到AMap的相关framework.
import MAMapKit
import AMapCloudMap
import AMapCloudKit
import AMap3DMap
No such module '*'
还是乖乖导入相关的framework更省心.
下面给出Swift下使用CocoaPod的解决方案:
1.创建"项目名-Bridging-Header.h"桥接文件
2.#import <MAMapKit/MAMapKit.h> ,#import <AMapCloudKit/AMapCloudAPI.h>等文件.请注意framework前面的文件名.
3.在Objective-C Bridging Header 里面设置查找的文件头.一般是"项目名/项目名-Bridging-Header.h"
3.直接使用,不需要import

作者: amap_1821740002    时间: 2015-8-11 14:57
Installing AMap2DMap (2.6.0)

[!] Error installing AMap2DMap
[!] /usr/bin/curl -f -L -o /var/folders/9k/5j8r8gf93ms9x39tfb1_w2yh0000gn/T/d20150811-32267-gn1ut2/file.zip http://cache.amap.com/lbs/sdk/AMap_iOS_API_2DMap_Lib_V2.6.0.zip --create-dirs

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  4 2047k    4 89663    0     0   1163      0  0:30:02  0:01:17  0:28:45 21522
curl: (18) transfer closed with 2006626 bytes remaining to read
使用Cocopods报上面这个错
platform :ios, '7.0'
pod 'AMap2DMap'
pod 'AMapSearch'
上面是Podfile
作者: chenjie_1986    时间: 2015-8-11 17:20
amap_1821740002 发表于 2015-8-11 14:57
Installing AMap2DMap (2.6.0)

[!] Error installing AMap2DMap

你在什么网络下用的cocoapod?
作者: amap_1821740002    时间: 2015-8-11 20:35
chenjie_1986 发表于 2015-8-11 17:20
你在什么网络下用的cocoapod?

额,用的VPN翻墙在,日本服务器,你是怎么看出来的?
作者: amap_1821740002    时间: 2015-8-12 14:23
Undefined symbols for architecture x86_64:
  "_OBJC_CLASS_$_MAMapServices", referenced from:
      objc-class-ref in AppDelegate.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Cocopods自动导入又一个问题。。。
作者: amap_1821740002    时间: 2015-8-12 14:24
amap_1821740002 发表于 2015-8-12 14:23
Undefined symbols for architecture x86_64:
  "_OBJC_CLASS_$_MAMapServices", referenced from:
      o ...

我实在是找不到解决方案,stackoverflow,谷歌都查了。。。
作者: amap_1821740002    时间: 2015-8-12 14:25
meizhouliu 发表于 2014-10-11 18:34
楼主你好,情况是这样的

我在armv7 和 armv7s下手动编译可以编译成功,但是如果使用cocoapods自动部署的 ...

遇到同样的报错。。。。
作者: amap_1582350173    时间: 2015-11-9 10:03
弱弱的问一句。cocoapods的版本咋还是2.6.。
我用cocoapods导入amapsearch。不知道为啥找不到import。
作者: amap_1582350173    时间: 2015-11-9 10:33
Mr_橙子 发表于 2015-11-9 10:03
弱弱的问一句。cocoapods的版本咋还是2.6.。
我用cocoapods导入amapsearch。不知道为啥找不到import。 ...

已解决。谢谢。。
作者: amaprq4VnKCm    时间: 2016-5-10 15:46
duplicate symbol _main in:
    /Users/jiayubin/Library/Developer/Xcode/DerivedData/微球-darpnjhiodrkrpdesxzwyigewufh/Build/Intermediates/微球.build/Debug-iphonesimulator/微球.build/Objects-normal/x86_64/main.o
    /Users/jiayubin/Desktop/weiqiuNEW/Pods/AMap3DMap/MAMapKit.framework/MAMapKit(pngtest.o)
duplicate symbol _gbk_2_unicode in:
    /Users/jiayubin/Desktop/weiqiuNEW/Pods/AMap3DMap/MAMapKit.framework/MAMapKit(amapbase_string.o)
    /Users/jiayubin/Desktop/weiqiuNEW/Pods/AMap3DMap/MAMapKit.framework/MAMapKit(amapbase_gbkunicodetable.o)
duplicate symbol _unicode_2_gbk in:
    /Users/jiayubin/Desktop/weiqiuNEW/Pods/AMap3DMap/MAMapKit.framework/MAMapKit(amapbase_string.o)
    /Users/jiayubin/Desktop/weiqiuNEW/Pods/AMap3DMap/MAMapKit.framework/MAMapKit(amapbase_gbkunicodetable.o)
ld: 3 duplicate symbols for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)  老是出错

作者: amap_1596533702    时间: 2016-5-27 13:32
本帖最后由  于 2016-5-27 13:34 编辑

您好  我用cocoa pods导入2D地图  现在换成3D 模拟器直接报错  是怎么回事啊
作者: amaprplScMvg    时间: 2016-10-19 17:17
你好我用cocopods添加完后,找不到#import <AMapFoundationKit/AMapFoundationKit.h>,在cocopods里面也没有这个这个库!
作者: amap_1829778645    时间: 2016-12-2 13:13
楼主 您好,我使用cocopods导入的SDK,导入后不报错,使用文件后,编译报错.
如下 :
用的coocpods集成的高德定位的SDK,有个问题,当我在AppDelegate 导入头文件的时候,系统不报错,但是当我是用高德代码: [AMapLocationServices sharedServices].apiKey = @"xxxxxxxxxx"; 这句话的时候,也不报错。但是编译的时候报错。  


错误为:Undefined symbols for architecture x86_64:
  "_OBJC_CLASS_$_AMapServices", referenced from:
      objc-class-ref in AppDelegate.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
请问怎么回事呢?
作者: amap_1829778645    时间: 2016-12-2 14:11
用的coocpods集成的高德定位的SDK,有个问题,当我在AppDelegate 导入头文件的时候,系统不报错,但是当我是用高德代码: [AMapLocationServices sharedServices].apiKey = @"xxxxxxxxxx"; 这句话的时候,也不报错。但是编译的时候报错。  


错误为:Undefined symbols for architecture x86_64:
  "_OBJC_CLASS_$_AMapServices", referenced from:
      objc-class-ref in AppDelegate.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)


作者: twinmask    时间: 2016-12-22 14:09
amap_1829778645 发表于 2016-12-2 14:11
用的coocpods集成的高德定位的SDK,有个问题,当我在AppDelegate 导入头文件的时候,系统不报错,但是当我 ...

JavaScriptCore.framework 这个导入试试




欢迎光临 高德开发者论坛 (https://lbsbbs.amap.com/) Powered by Discuz! X3.2