将Lightning kBD或Smart KBD与我的APP连接后,我无法收到这两个通知EAAccessoryDidConnectNotification
和EAAccessoryDidDisconnectNotification
。
但它在iOS9.3上工作,我的代码如下,
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(_accessoryDidConnect:) name:EAAccessoryDidConnectNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(_accessoryDidDisconnect:) name:EAAccessoryDidDisconnectNotification object:nil];
[[EAAccessoryManager sharedAccessoryManager] registerForLocalNotifications];
原因是什么?
P.S。:我在日志中收到以下消息。 找不到“ com.apple.private.externalaccessory.showallaccessories ”权利
答案 0 :(得分:0)
我删除了" iOS团队配置文件:*"在Xcode-> preferences-> accounts-> - >查看详细信息。
一旦删除该配置文件,就会下载新的副本。从那时起,我就没有看到这个"无法找到com.apple.private.externalaccessory.showallaccessories权利"了。我猜这个权利现在位于" iOS团队配置文件中:*"。 如果您的捆绑包ID存在于其他" iOS团队配置文件"那么我建议删除那些配置文件。
答案 1 :(得分:0)
似乎这个问题在iOS 10(beta)版本中众所周知,因为我们没有可用的稳定版本,这似乎在iOS 10的稳定版本中得到解决。它也在Apple Developer Forum上提出,但没有具体的解决方案。
虽然我尝试了一些不同的东西来解决这个问题,但最终做到了这一点,这有效:
如果这不起作用,请尝试删除并为您的应用生成新的配置文件。
答案 2 :(得分:0)
这是我的经历。在Xcode 8.1上,我可以成功构建一个旧的基于NIB的Apple项目(EADemo)并在iOS 10.1.1设备上运行它。它可以与我的蓝牙配件一起使用。然后我重命名了项目文件夹并完成了移植到基于Storyboard的项目。在同一个iPhone上运行应用程序EA会崩溃,我收到错误日志:
2016-11-29 17:04:00.804421 K5Demo [430:69578]无法找到" com.apple.private.externalaccessory.showallaccessories"权利 2016-11-29 17:04:04.736780 K5Demo [430:69578]错误 - 打开会话失败,因为协议(null)未在Info.plist中声明
对于这两种情况,Info.plist文件是相同的,也是iOS版本。
答案 3 :(得分:-3)
您可以尝试删除并为您的应用生成新的配置文件。
在iOS 10中,Apple有两个新要求,以便您的应用可以接收EAAccessoryDidConnectNotification和EAAccessoryDidDisconnectNotification通知,并可以通过[[EAAccessoryManager sharedAccessoryManager] connectedAccessories]列出设备。
Include a protocolString of the external accessory in your app's UISupportedExternalAccessoryProtocols property list.
Have the external accessory's manufacturer submit to Apple a request for MFi whitelisting of your app.
对于调试,只需要(1)。但是,如果没有(2),您的应用程序将不会被Apple批准(甚至可能不适用于TestFlight)。
答案 4 :(得分:-3)
在iOS 10中,Apple有两个新要求,以便您的应用可以收到projectsMap.values().stream().flatMap(List::stream).collect(Collectors.toList())
和EAAccessoryDidConnectNotification
通知,并可以通过EAAccessoryDidDisconnectNotification
列出设备。
在您应用的[[EAAccessoryManager sharedAccessoryManager] connectedAccessories]
媒体资源列表中包含外部附件的protocolString。
让外部配件制造商向Apple提交申请MFi白名单的请求。
对于调试,只需要(1)。但是,如果没有(2),您的应用程序将不会被Apple批准(甚至可能不适用于TestFlight)。