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

手动部署 最后更新时间: 2024年03月19日

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

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

第 1 步,添加依赖的库

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

  • 基础SDK:AMapFoundationKit.framework
  • 系统framework: CoreMotion.framework (since7.8.0)、CoreLocation.framework、GLKit.framework、SystemConfiguration.framework、 CoreTelephony.framework、CoreServices.framework (since10.0.5)

引入高于 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、CoreTelephony.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 文件

关于定位权限配置,详见:定位权限说明

关于HTTPS的解决方案,详见:应用HTTPS解决方案

如果您工程中之前已经集成了导航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 。 

返回顶部 示例中心 常见问题 智能客服 公众号
二维码