蓝牙名称引起的坑
最近在做蓝牙相关的与智能硬件通信的开发,基本功能完成,现在这个网上教程一大把,然后测试今天反馈某些手机上某些蓝牙的名称长度不对,缺少一位,然后我开始debug;最后结果让我觉得很神奇,以下,在下图该方法中advertisementData中的kCBAdvDataLocalName与peripheral.name不一致,找不到缘由。
- (void)centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)peripheral advertisementData:(NSDictionary<NSString *,id> *)advertisementData RSSI:(NSNumber *)RSSI {
LMLog(@"did discover peripheral:%@", advertisementData);
LMLog(@"peripheral:%@", peripheral.name);
}
打印的结果
did discover peripheral:{
kCBAdvDataIsConnectable = 1;
kCBAdvDataLocalName = "live_94A1A2BD6D44";
kCBAdvDataTxPowerLevel = 4;
}
peripheral:live_94A1A2BD6D4
use_frameworks!引起的坑
最近升级了Xcode8.3,程序中包含了一个swift2.0时代打的包,然后编译链接都没问题,但是运行时候就报错了。
dyld: Library not loaded: @rpath/libswiftCore.dylib
Referenced from: /Users/lollipop/Library/Developer/***/liveman.app/Frameworks/iOSDFULibrary.framework/DFULibrary
Reason: image not found
碰到错误肯定谷歌百度后,试了种种方法后终于找到了答案,Xcode8.3只支持swift3.0,只好试图给iOSDFULibrary升级了,一开始用的是Cocoapods;
use_frameworks!
pod 'iOSDFULibrary'
燃鹅,因为之前使用的是静态库,现在改成动态库,会出现各种enum意思不明确的错误,只需要指定头文件所在的动态库就OK了。比如:
#import "AFNetworking.h" ---> #import <AFNetworking/AFNetworking.h>
都修改完成之后编译链接,应该会successed,燃鹅出现了链接错误。经过一番查找,发现Cocoapods并没有把Other Linker Flags中的静态库去掉,所以删掉删掉,然后编译,成功运行。