Screenshot transfer stalls after a few chunks on iOS (Interconnect); Android works · Issue #2 · Shellplusplus/Shellplusplus · GitHub
Skip to content

Screenshot transfer stalls after a few chunks on iOS (Interconnect); Android works #2

Open

Description

@kyn0v

问题:iOS 上截图传输在收到少量分片后停止,持续等待无法恢复

问题描述

在 iPhone 16(iOS 18.2)上通过 AstroBoxV2 的 Shell++ 插件,从小米手环 9 Pro 同步截图到手机相册时,传输能够正常开始,但收到前若干片后会停止推进。

停止位置并不固定:此前遇到过停在第 2、3 片附近,本次停在 13/316 片。停止后持续等待也不会恢复,界面仍显示“已连接 Shell++”和“正在保存文件”,没有明确提示传输失败。

华为荣耀 X10(HarmonyOS 3.0.0)上使用默认传输方式可以正常完成截图传输。 两端均使用从 Shell++ 官网下载安装的最新版本及默认传输方式。

卡住的是截图传输进度,并非整个界面完全无法操作;仍可以切换截图和日志页面。

复现步骤

  1. 在小米手环 9 Pro 上运行 Shell++ Quick App 和 LuaWatchface 后端。
  2. 在 iPhone 的 AstroBox 中打开 Shell++ 插件,完成连接与握手。
  3. 在手环上生成截图。
  4. 在手机插件的“截图”页面点击“拉取截图列表”。
  5. 使用默认的 Interconnect 保存模式,选择一张截图并开始同步到手机相册。
  6. 传输开始后,收到少量分片便停止推进;持续等待也无法完成。

实际表现

  • 已成功连接并能获取截图列表。
  • 图片开始传输,但会在不同分片位置停止。
  • 本次停止时界面显示:
    • 进度:13/316 片。
    • 已接收:19,968 / 484,423 字节。
    • 显示速度:0.6 KB/s。
    • 最后消息:screenshotChunkPart。
  • 状态仍停留在“正在保存文件”,没有明确的超时或失败提示。
  • Android 端使用默认传输方式可以正常完成传输。

期望表现

  • iOS 上能够完整接收并保存截图。
  • 如果传输中断,应明确显示超时或失败,而不是一直停留在“正在保存”。
  • 提供取消/重试入口;若支持重传,应避免重复分片造成文件损坏。

环境

  • 手环:小米手环 9 Pro。
  • iOS 手机:iPhone 16,iOS 18.2。
  • Android 对照设备:华为荣耀 X10,HarmonyOS 3.0.0。
  • iOS 接收端:AstroBoxV2 的 Shell++ 插件。
  • 传输方式:两端均使用默认方式;iOS 界面显示“Interconnect 保存 → 手机保存到相册”。
  • 下载来源:Shell++ 官网下载页,使用反馈当日(2026-10-05)官网提供的版本:
    • Quick App:1.1.0,官网链接指向 rpk-build-16/com.shell.liangyi.release.1.1.0.rpk。
    • AstroBox 插件:0.1.0(根据官网提供的 plugin-Shell--_debug.abp 包内 manifest 核对),所属发行合集为 Shell---1.0.3。
    • LuaWatchface:官网链接的 Lua/main/resource.bin,该入口未标注独立版本号。
  • AstroBox 客户端版本及手环固件版本暂未记录。

日志与截图

截图中可见连续接收 index: 10、11、12 的分片,并分别出现 screenshotChunkAck、ok: true 的发送记录。

下面是从截图整理的日志摘录,省略设备标识、会话 ID 和图片 Base64 数据;不是完整导出日志:

recv:
{
  "sessionId": "<same-session>",
  "index": 12,
  "total": 316,
  "chunkSize": 1536,
  "d": "<omitted>"
}

send:
{
  "index": 12,
  "ok": true,
  "phase": "part",
  "sessionId": "<same-session>",
  "type": "screenshotChunkAck"
}

index 从 0 开始,与界面显示收到 13 片一致。虽然有 ACK 发送记录,但无法仅凭手机日志确认手环是否收到了最后一条 ACK,也无法确定传输具体停在哪个环节。

传输状态、日志状态以及分片/ACK 日志截图将由报告者补充上传。

建议增加的保护与调试能力

希望能帮助检查 iOS 接收端的分片写入、ACK 回传,以及手环端等待确认后的状态处理。如果方便,也希望增加带时间戳的超时/错误日志,以区分文件写入失败、确认超时和连接中断。

目前没有足够证据确定根因,以上排查方向不是已确认的诊断。

Image Image Image

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions