手动部署 最后更新时间: 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 步,重新引入地图的资源文件
- 重新引入AMap.bundle的资源文件,从导航SDK7.2.0版本往后的framework中引入地图(AMap.bundle)的资源文件。
- 通过 TARGETS->Build Phases->Copy Bundle Resources 中点击“+”,弹出添加列表后,点击 “Add Other…”,添加 AMapNaviKit.framework 的 AMap.bundle 和 AMapNavi.bundle 到工程中。
- 全局搜索替换工程中的
<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 。