示例中心
功能在线体验
menu Created with Sketch. closed Created with Sketch.
您现在的位置: 开发 > iOS 导航SDK > 开发指南 > 创建工程 > 手动部署 >

高德 开发 iOS 导航SDK 开发指南 创建工程 手动部署

更新时间:2020年01月16日

如果您是第一次接入导航SDK

首先您需要创建一个 Single View Application 的项目,然后按照以下步骤手动配置您的项目。

第 1 步,添加依赖的库

导航依赖 3D 地图,同时为了能让导航工程正常使用,还需要通过基础库配置 Key,因此所依赖的库列举如下:

引入高于 V1.6.1 版本的基础 SDK ,涉及到提交AppStore成功与否,请点我查看基础 SDK 的介绍

以导航开发包为例,将解压后的 AMapNaviKit.framework 文件copy拖拽到工程文件夹中,左侧目录选中工程名,在 TARGETS->Build Phases-> Link Binary With Libaries 中点击“+”按钮,在弹出的窗口中点击“Add Other”按钮,选择工程目录下的 AMapNaviKit.framework文件添加到工程中。

用同样的方法添加 AMapFoundationKit.framework。


配置如下图所示:


备注:
1、SystemConfiguration.framework、CoreTelephonySecurity.framework、Security.framework 是为了统计app信息使用。

2、引入系统库的操作如下:

左侧目录中选中工程名,在TARGETS->Build  Phases-> Link Binary With Libaries中点击“+”按钮,在弹出的窗口中查找并选择所需的库(见下表),单击“Add”按钮,将库文件添加到工程中。

3、xcode10后取消了ibstdc++.6.0.9.tbd, 如果您是从已有工程升级到xcode10,手动移除此依赖即可。

第 2 步,需要引入的资源文件

需要引入的资源文件包括:AMapNavi.bundle 和 AMap.bundle,其中:AMapNavi.bundle 和 AMap.bundle 都位于 AMapNaviKit.framework 中(由于导航和地图合包,所以地图的资源也包含在导航SDK中)。

在 TARGETS->Build Phases->Copy Bundle Resources 中点击“+”,弹出添加列表后,点击 “Add Other…”,分别添加 AMapNaviKit.framework 的 AMapNavi.bundle 和 AMap.bundle 到工程中,如下图所示:

第 3 步,需要申请的权限

定位权限

由于导航依赖定位,因此需在项目的 Info.plist 添加 NSLocationWhenInUseUsageDescription 或 NSLocationAlwaysUsageDescription 字段,根据您的业务需求,任选其一即可。

其中:

  • NSLocationWhenInUseUsageDescription 表示应用在前台的时候可以搜到更新的位置信息。
  • NSLocationAlwaysUsageDescription 表示应用在前台和后台(suspend 或 terminated)都可以获取到更新的位置数据。

ATS设置

  

如果您工程中之前已经集成了导航SDK和地图SDK

第 1 步,删除之前依赖的库

删除以前工程中依赖的SDK:

  • MAMapKit.framework和AMap.bundle

第 2 步,重新引入地图的资源文件

  1. 重新引入AMap.bundle的资源文件,从导航SDK7.2.0版本往后的framework中引入地图(AMap.bundle)的资源文件
  2. 通过 TARGETS->Build Phases->Copy Bundle Resources 中点击“+”,弹出添加列表后,点击 “Add Other…”,添加 AMapNaviKit.framework 的 AMap.bundle 和 AMapNavi.bundle 到工程中
  3. 全局搜索替换工程中的 <MAMapKit/MAMapKit.h>
    <AMapNaviKit/MAMapKit.h>

其他注意事项

升级到7.2.0之后版本的常见错误及解决办法

1. 'MAMapKit/MAMapKit.h' file not found 遇到这种错误,则替换工程中的所以<MAMapKit/MAMapKit.h> 为<AMapNaviKit/MAMapKit.h>

2. ld: framework not found MAMapKit ,则在build setting中删除的OTHER_LDFLAGS 中删除  -framework "MAMapKit" 如果pod引入,则在pod的xcconfig中删除; 如果是以prelink的方式引入,则从PRELINK_FLAGS中删除

3. /XX/XX/MAMapKit.framework/AMap.bundle:No such file or directory 从AMapNaviKit.framework中找到AMap.bundle 引入即可


4. 出现地图符号冲突,请删除工程中依赖的地图MAMapKit.framework

5. Undefined symbols for architecture arm64:"_OBJC_METACLASS_$_GLKView"

由于7.2.0之后导航和地图合包,地图需要用到OpenGL,所以需要引入GLKit.framework 在TARGETS->Build Phases->Link Binary With Libraries 中点击+号 引入GLKit.framework

新用户
福利
功能
在线体验
常见
问题