百度地图开发随笔

作者: 啪嗒嗒 | 来源:发表于2016-02-26 16:16 被阅读1228次

    一.配置.framework形式开发包
    A.使用Cocoapods
    1.添加Podfile文件

    vim Podfile
    

    2.编辑Podfile内容

    pod "BaiduMapKit" #百度地图SDK
    

    3.安装

    pod install
    

    PS:i进入编辑模式 Esc退出编辑模式 :wq保存
    二.引入所需系统库

    Xcode的Project -> Active Target ->Build Phases ->Link Binary With Libraries
    
    CoreLocation.framework
    QuartzCore.framework
    OpenGLES.framework
    SystemConfiguration.framework
    CoreGraphics.framework
    Security.framework
    
    libsqlite3.0.tbd(xcode7以前为 libsqlite3.0.dylib)
    CoreTelephony.framework 
    libstdc++.6.0.9.tbd(xcode7以前为libstdc++.6.0.9.dylib)
    最后三个为V2.9.0新增系统库,使用v2.9.0及以上版本的地图SDK,必须导入
    
    盘.png

    三.配置环境

    在TARGETS->Build Settings->Other Linker Flags 中添加-ObjC。
    

    四.引入mapapi.bundle资源文件

    选中工程名,在右键菜单中选择Add Files to “工程名”…,从BaiduMapAPI_Map.framework||Resources文件中选择mapapi.bundle文件,并勾选“Copy items if needed”复选框,单击“Add”按钮,将资源文件添加到工程中
    
    25F2501C-0F0E-4B51-B4A4-4D03B2DEB7B5.png

    五.引入头文件

    #import <BaiduMapAPI_Base/BMKBaseComponent.h>          //引入base相关头文件
    #import <BaiduMapAPI_Map/BMKMapComponent.h>            //引入地图功能所有头文件
    #import <BaiduMapAPI_Search/BMKSearchComponent.h>      //引入检索功能所有头文件
    #import <BaiduMapAPI_Cloud/BMKCloudSearchComponent.h>  //引入云检索功能的所有头文件
    #import <BaiduMapAPI_Location/BMKLocationComponent.h>  //引入定位功能所有的头文件
    #import <BaiduMapAPI_Utils/BMKUtilsComponent.h>        //引入计算工具所有的头文件
    #import <BaiduMapAPI_Radar/BMKRadarComponent.h>        //引入周边雷达功能所有的头文件
    

    六.地图启动
    1.AppDelegate.h

    #import <UIKit/UIKit.h>
    #import <BaiduMapAPI_Base/BMKBaseComponent.h>
    @interface AppDelegate : UIResponder <UIApplicationDelegate,BMKGeneralDelegate>
    @property (strong, nonatomic) UIWindow *window;
    @end
    

    AppDelegate.m

    BMKMapManager  * _mapManager = [[BMKMapManager alloc]init];
    BOOL ret = [_mapManager start:@"这里输入你在百度SDK申请到的key" generalDelegate:self];
        if (!ret) {
            NSLog(@"启动失败");
        }
    

    2.ViewController.m

    -(void)makeMap
    {
        BMKMapView * mapView = [[BMKMapView alloc]initWithFrame:CGRectMake(0, 0, KSCREEN_WIDTH, KSCREEN_HEIGHT-64)];
        [self.view addSubview:mapView];
    }
    

    PS:需要在plist文件中新建一个选项,key填写Bundle display name;value填写你的app名称就可以了
    ios8以上需在info.plist里任意添加下面一条,二选一,否则无法启动定位
    NSLocationWhenInUseUsageDescription ,允许在前台使用时获取GPS的描述
    NSLocationAlwaysUsageDescription ,允许永久使用GPS的描述

    DFDE04ED-E541-461B-8855-21E4698C042D.png

    3.打包时候如果报错

    ld: bitcode bundle could not be generated because '/Users/Moin/Desktop/DSMIS /Pods/BaiduMapKit/BaiduMapKit/BaiduMapAPI_Base.framework/BaiduMapAPI_Base(BMSDKKeychainItemWrapper.o)' was built without full bitcode. All object files and libraries for bitcode must be generated from Xcode Archive or Install build for architecture arm64
    

    原因是:第三方库不包含bitcode
    解决方式:

    1:让第三方库支持bitcode 
    2:关闭bitcode
    
    2:Build settings-搜索 Enable Bitcode
    改成No
    

    相关文章

      网友评论

        本文标题:百度地图开发随笔

        本文链接:https://www.haomeiwen.com/subject/qxrwkttx.html