Xcode 16 Release模式下Stream连接无法接收数据求助
Xcode 16 Release模式下InputStream读取始终返回0的问题
以下代码在Xcode 15的Release模式下运行完全正常,能够从流中读取到非零数据:
self.inputStream?.read(&inputbuffer, maxLength: readsize)
但切换到Xcode 16后,流始终返回0,代码未做任何改动。
已尝试以下排查手段:
- 修改Scheme设置
- 验证Info.plist中包含正确的App Transport Security (ATS)设置,包括:
NSExceptionDomains for my host NSAllowsArbitraryLoads set to true
但这些操作均未解决问题。
完整代码如下:
private let host = "my host" private let port = 443 private var inputStream: InputStream? private var outputStream: OutputStream? open func connect() { Stream.getStreamsToHost(withName: host, port: port, inputStream: &self.inputStream, outputStream: &self.outputStream) if let inputStream = inputStream, let outputStream = outputStream { inputStream.delegate = self outputStream.delegate = self CFReadStreamSetDispatchQueue(inputStream, PMMStreamQueue) CFWriteStreamSetDispatchQueue(outputStream, PMMStreamQueue) inputStream.open() outputStream.open() } } func stream(_ aStream: Stream, handle eventCode: Stream.Event) { switch eventCode { case Stream.Event.endEncountered: print("endEncountered") case Stream.Event.hasBytesAvailable: let readsize = 8192 * 4 var inputbuffer: [UInt8] = [UInt8](repeating: 0, count: readsize) let readBytesCount = self.inputStream?.read(&inputbuffer, maxLength: readsize) ?? 0 print(readBytesCount) default: break } }
当前使用Release scheme,问题仅出现在Xcode 16的Release模式下。
请问有人知道该问题的原因或解决方法吗?感谢!
内容的提问来源于stack exchange,提问作者raxabizze
相关产品推荐
相关产品推荐

