# 苹果应用 [English] ------------------------------------------------------------------------ ## 1.iOS 蓝牙设备名称缓存如何解决? 下面给出 OC 和 Swift 的解决方法:OC ```objectivec (void)centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)peripheral advertisementData:(NSDictionary更新时间:2022.4.22
------------------------------------------------------------------------ ## 2. 阿里飞燕平台 SDk 为何报错找不到 \#import \更新时间:2022.4.22
------------------------------------------------------------------------ ## 3.iOS 13.0 及以上版本如何获取 Wi-Fi 信息? * 在 .plist 文件中开启定位权限。 * Xcode 开启 Wi-Fi 权限。 * Apple 官网申请 Identifiers Access Wi-Fi Information 权限。 * 手动请求定位权限。 * 导入系统框架 \#import \获取 Wi-Fi 信息。 更新时间:2022.4.22
------------------------------------------------------------------------ ## 4.iOS 14.0 如何增加本地网络权限? * 在 .plist 文件中开启 NSLocalNetworkUsageDescription 权限。 更新时间:2022.4.22
------------------------------------------------------------------------ ## 5. AWS 如何生成 .p12 证书? ```bash openssl pkcs12 -export -in /Users/xxx/Desktop/awscer/73bb87b879-certificate.pem.crt -inkey /Users/xxx/Desktop/awscer/73bb87b879-private.pem.key -CAfile /Users/xxx/Desktop/awscer/AmazonRootCA1.pem -out awsiot-identity.p12 ``` 更新时间:2022.4.22
------------------------------------------------------------------------ ## 6. 如何获取 AWS SDK 自带登录注册验证码? * 使用邮箱注册的账号在获取验证码时,由于网络原因,需要等待较长时间(大概 2 ~ 4 小时左右)才能收到。 * 点击获取验证码之后不可重复点击,否则旧验证码将失效。 更新时间:2022.4.22
------------------------------------------------------------------------ ## 7. APP 如何在后台扫描蓝牙(两种方式)? * 第一种方式:扫描所有蓝牙设备。 ```swift [self.cbCentralMgr scanForPeripheralsWithServices:nil options:nil]; ``` * 第二种方式:扫描指定 serviceUUID 蓝牙设备。 ```swift [self.cbCentralMgr scanForPeripheralsWithServices:@[[CBUUID UUIDWithString:@"指定的serviceUUID"]] options:nil]; ``` 更新时间:2022.4.22
------------------------------------------------------------------------ ## 8. 如何解决 iOS 14.5 UDP 广播 sendto 返回 -1 的错误? 问题背景: * 手机系统升级到 iOS 14.5 之后,UDP 广播发送失败。 * 项目中老版本使用到 socket。 * 项目中新版本使用 CocoaAsyncSocket。 * 两种 UDP 发包方式都会报错 No route to host。 报错具体内容如下: ```bash sendto: -1 client: sendto fail, but just ignore it : No route to host ``` 问题解决: 由于 192.168.0.255 广播地址只是当前本地地址,App 中需要动态改变前三段 192.168.0 本地地址,解决方法如下: ```swift NSString *localInetAddr4 = [ESP_NetUtil getLocalIPv4]; NSArray *arr = [localInetAddr4 componentsSeparatedByString:@"."]; NSString *deviceAddress4 = [NSString stringWithFormat:@"%@.%@.%@.255",arr[0], arr[1], arr[2]]; ``` 发包过滤,只需要过滤地址最后一段是否为 255 ```swift bool isBroadcast = [targetHostName hasSuffix:@"255"]; ``` 更新时间:2022.4.22