一.配置.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,必须导入
三.配置环境
在TARGETS->Build Settings->Other Linker Flags 中添加-ObjC。
四.引入mapapi.bundle资源文件
选中工程名,在右键菜单中选择Add Files to “工程名”…,从BaiduMapAPI_Map.framework||Resources文件中选择mapapi.bundle文件,并勾选“Copy items if needed”复选框,单击“Add”按钮,将资源文件添加到工程中
五.引入头文件
#import //引入base相关头文件
#import //引入地图功能所有头文件
#import //引入检索功能所有头文件
#import //引入云检索功能的所有头文件
#import //引入定位功能所有的头文件
#import //引入计算工具所有的头文件
#import //引入周边雷达功能所有的头文件
六.地图启动
1.AppDelegate.h
#import
#import
@interface AppDelegate : UIResponder
@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的描述
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