1.将API的libs文件夹拷贝到您的Application工程跟目录下
2.在XCode的Project -> Edit Active Target -> Build -> Linking -> Other Linker Flags中添加-all_load
3.设置静态库的链接路径,在XCode的Project -> Edit Active Target -> Build -> Search Path -> Library Search Paths中添加您的静态库目录,比如"$(SRCROOT)/../libs/Release$(EFFECTIVE_PLATFORM_NAME)",$(SRCROOT)宏代表您的工程文件目录,$(EFFECTIVE_PLATFORM_NAME)宏代表当前配置是OS还是simulator
注:静态库中采用ObjectC++实现,因此需要您保证您工程中至少有一个.mm后缀的源文件(您可以将任意一个.m后缀的文件改名为.mm),或者在工程属性中指定编译方式,即将XCode的Project -> Edit Active Target -> Build -> GCC4.2 - Language -> Compile Sources As设置为"Objective-C++"
以上是百度sdk给的说明 详情:http://developer.baidu.com/map/sdkiosdev-2.htm
期间,出现了各种 lib 链接 不上 的错误。
各种试验。
截图:
项目中别的文件, filetype 若为 :according to file type
则必须有 其他.mm文件。
error: missing required architecture i386 in file 出现了这个错误。
出现这个错误 往往是在 : [_mapManager start:s generalDelegate:nil];
_mapManager = [[BMKMapManager alloc] init]; NSString *s = @"20D6FD7A41FBC1E1892*******"; BOOL ret = [_mapManager start:s generalDelegate:nil];
这个错误。我新建了一个项目没事。但放在我老项目里面就出现了问题。
网上也没有详细的说法。只发现一个论坛的回复说:项目重新来。。重新整个这个项目,ok了。。。(奇怪的事情。为啥重新整理项目就脱脱的了。)
而当到了真机下面 : 出现错误。
searchpath下面 :"Libs/Release-iphoneos" "/Libs/Release-iphonesimulator" 这两个是需要顺序的
即:当你是模拟器编译:则 "/Libs/Release-iphonesimulator"需要放在 "Libs/Release-iphoneos" 前面
当你是真机编译 :则:"Libs/Release-iphoneos" 需要放在 "/Libs/Release-iphonesimulator" 前面 (上下位置,直接点击拖拽)
真机编译出现错误:file is universal (2 slices) but does not contain a(n) armv7s slice。。这个错误解决:
1:在target的Build Settings里面,将Build Active Architecture Only改成YES
2:在target的Build Settings里面,找到Valid Architectures,删除其中的armv7s