前段时间使用flutter开发一款工具App,使用到了flutter_blue来实现蓝牙通讯,安卓端打包使用都没有问题,今天打包iOS的时候遇到了如下两个问题。
1.utter_blue-umbrella.h:13:9: fatal error: 'FlutterBluePlugin.h' file not found
这个问题网上有两种解决方案,第一种是使用flutter命令:flutter create -i objc projectname
重新创建项目,再把lib目录下和公共的文件从原来的项目拷贝到新项目;
第二种是将iOS目录下的Podfile文件中的‘use_frameworks!’用‘#’注释掉,再重新flutter run.我目前使用了第二种。
2.蓝牙发送数据写入失败
开始也是摸不着头脑,在两个平台分别输出调试信息,打印characteristics数组中的内容,发现iOS有一个“withoutResponse=true”,原来Android和iOS平台发送蓝牙有个参数不一样,这里要判断平台并使用不同方式写入
if (Platform.isIOS) {
await _writeCharacteristic.write(cmd, withoutResponse: true);
} else {
await _writeCharacteristic.write(cmd);
}
至此,目前iOS打包没有其它问题,遇到后续再补充