eaframework outputstream 不适用于 11.2.1

eaframework outputstream doesn't work on 11.2.1

- (void)_writeData {
    while (([[_session outputStream] hasSpaceAvailable]) && ([_writeData length] > 0))
    {
        NSInteger bytesWritten = [[_session outputStream] write:[_writeData bytes] maxLength:[_writeData length]];
        if (bytesWritten == -1) {
            NSLog(@"write error");
            break;
        } else if (bytesWritten > 0) {
            [_writeData replaceBytesInRange:NSMakeRange(0, bytesWritten) withBytes:NULL length:0];
            NSLog(@"bytesWritten %ld", (long)bytesWritten);
        }
    }
}

我的代码和上面的苹果官方demo一模一样,除了"iOS 11.2.1".

外,通过lightning端口与外部配件的通信工作正常

我调试了一下,发现确实做了Outputstream发送数据的动作,但是还是失败了,检测不出数据。

有人知道如何找出流中发生的事情吗? 这是Apple的错误吗?

终于解决了:

1.硬件端按照Accessory Interface Specification R27.pdf

中的指示发送StatusExternalAccessoryProtocolSession命令

奇怪的是,在11.2以下的版本中,不用这个命令session也能设置成功