ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

OpenClaw iOS App Review 全流程实测指南:从 Gateway 接入、审批、语音到推送与权限验收

OpenClaw iOS App Review 全流程实测指南:从 Gateway 接入、审批、语音到推送与权限验收 OpenClaw iOS App Review 全流程实测指南从 Gateway 接入、审批、语音到推送与权限验收【免费下载链接】openclawThe AI that really does things. Any OS. Any Platform. The lobster way. 项目地址: https://gitcode.com/GitHub_Trending/cl/openclawOpenClaw 的 iOS 客户端是连接移动端与 OpenClaw Gateway 的入口而面向 Apple App Review 的验收流程则覆盖了这款应用最核心的端到端能力设置码接入 Gateway、执行审批、实时语音对讲、后台语音续播、锁屏 Live Activity、远程推送唤醒、设备权限以及 Share Sheet 分享。本文以仓库内 apps/ios/APP-REVIEW-NOTES.md 为骨架结合 iOS 端源码apps/ios/Sources逐项拆解每一步操作、预期结果与底层实现帮助你在真机上完整复现一次 App Review 演练。1. 验收前的准备Demo 账号与设置码整个验收流程围绕“live OpenClaw iOS App Review Gateway”展开。按照原文档评审者只需在 OpenClaw App 的Notes字段中使用官方提供的单一设置码字符串即可完成接入。这个设置码是预先生成的一串代码内部已包含公开的 Gateway 主机地址public Gateway host用于首次连接的设置凭据setup credential。它省去了手工填写主机、端口、证书等多项参数的繁琐过程对应 iOS 端“设置码”这一整套引导体系见 apps/ios/Sources/Onboarding/OnboardingWizardView.swift其中包含Paste setup code、Apply Setup Code等界面文案以及 apps/ios/Sources/Gateway/GatewayTrustPromptAlert.swift 中的Trust and connect信任提示。2. 设置接入走查Setup Walkthrough按以下步骤在真机上完成首次接入对应原文档Setup Walkthrough小节打开 OpenClaw App点击Continue。在Connect Gateway界面点击Set Up Manually。在Setup Code区块点击Paste setup code输入框。将 App Review 提交Notes字段中的设置码粘贴进去。点击Apply Setup Code。若出现Trust and connect点击Trust and connect信任并连接。等待进入Connected界面。在Connected界面点击Open OpenClaw。确认Control界面显示Gateway Online。依次进入Settings→Approvals→Open Notifications→Enable Notifications。在Enable OpenClaw Hosted Push Relay?弹窗中点击Continue。若 iOS 询问是否允许 OpenClaw 发送通知点击Allow。确认Notifications显示为Enabled。实现细节设置码与手动连接两条路径共同由 apps/ios/Sources/Onboarding/OnboardingWizardConnectionSections.swift 等向导模块驱动设置码粘贴框与Apply Setup Code动作对应 apps/ios/Sources/Design/SettingsProTabSections.swift 中Paste setup code的输入实现。此环节同时完成了 Gateway 在线状态确认与通知推送权限的首次申请为后续审批、推送唤醒等演示打基础。3. 聊天与审批演示Chat / Approval Demo3.1 Chat 基础验证点击Chat标签页。点击标注为Message main...的输入框。发送这条精确消息Start Apple review checklist.预期结果助手回复可用的 App Review 演示列表。3.2 执行审批Approval Demo点击Chat标签页在Message main...输入框发送Run the approval demo.预期结果iPhone 弹出Exec approval required执行审批请求展示的是一条无害命令printf OpenClaw App Review approval demo complete\n点击Allow Once随后 Chat 回复The approval demo completed.实现细节审批能力属于 OpenClaw 的“执行审批”Exec Approval体系。iOS 端通过 apps/ios/Sources/Push/ExecApprovalNotificationBridge.swift 将待审批执行转发到通知层配合推送/本地通知呈现审批请求审批通过后 Gateway 侧继续执行该命令并把结果回传聊天。Allow Once属于一次性授权不改变后续命令的默认审批策略。4. 语音对讲Talk与后台音频4.1 基础语音对讲点击Talk标签页点击Start Talk。若 iOS 请求麦克风权限点击Allow若请求语音识别Speech Recognition权限同样点击Allow。确认界面切换为Ready to talk并显示Stop Talk。说出Summarize this review setup in one sentence.预期结果助手通过语音回复。说完后点击Stop Talk。4.2 Talk 后台音频Background Audio点击Talk标签页。确认扬声器按钮为高亮状态。确认后台聆听background-listening按钮为高亮状态。点击Start Talk按提示允许麦克风与语音识别权限。确认Stop Talk可见后说Tell me when you can hear me.关键步骤在 Talk 进行中返回主屏幕或锁屏让 OpenClaw 进入后台不要强制退出 App。继续说话并等待助手的音频回复。预期结果实时 Talk 音频在 App 进入后台后依然持续。重新打开 OpenClaw确认 Talk 仍处于活动状态再点击Stop Talk。实现细节后台持续语音依赖 iOS 的持续后台音频会话与语音识别能力。iOS 端语音模块位于 apps/ios/Sources/Voice并通过 apps/ios/Sources/LiveActivity/VoiceLiveActivityCoordinator.swift 将语音状态同步到 Live Activityapps/ios/Sources/StartLiveVoiceIntent.swift 还提供了通过 Siri 快捷指令/App Intent 直接发起语音会话的入口。锁屏后语音会话能够继续说明应用正确配置了相应的后台模式。5. Gateway 状态与实例确认Gateway Status点击Control标签页再点击Instances。确认界面显示Gateway online。确认至少有一个agent实例处于连接状态。确认当前这台 iPhone 评审设备出现在已连接实例列表中。实现细节实例列表来自 Gateway 的实时状态通道。iOS 端 apps/ios/Sources/Status 与 apps/ios/Sources/Node 负责订阅并展示 Gateway/Agent 的在线状态每台设备含本机都会作为一个可识别的节点/实例出现。这一步同时验证了“设置码接入 → 建立长连接 → 状态上报”整条链路是通的。6. 锁屏 Live Activity / 灵动岛Dynamic Island点击Settings点击Reconnect。立即返回主屏幕或锁屏让 OpenClaw 进入后台。在 Gateway 重连期间观察锁屏或灵动岛。预期结果重连期间iOS 可展示一个名为OpenClaw的 Live Activity内容为连接状态如Connecting...或Reconnecting...。在快速网络下该状态可能一闪而过——因为 Gateway 重连成功后OpenClaw 会结束这条 Live Activity。实现细节Live Activity 由 apps/ios/Sources/LiveActivity/LiveActivityManager.swift 统一管理它是连接、注意力、工具执行与语音状态的单一 ActivityKit 呈现入口各状态生产者独立上报由LiveActivityPresentationArbiter仲裁谁可见避免低优先级更新盖掉紧急状态连接状态对应showConnecting会把Connecting.../Reconnecting...归一化为语义化的.connecting/.reconnecting见connectingPresentation未知文案才原样透传更新采用“最多一个在途更新 一个可替换待更新”的合并策略enqueueLatestUpdate防止 ActivityKit 慢写入堆积过期队列语音与工具类 Live Activity 通过心跳任务持续刷新staleDate语音约 240 秒、工具约 240 秒让锁屏呈现不会过期启动时会hydrateCurrentAndPruneDuplicates从系统恢复正在活动的 Activity 并清理重复项。属性与状态模型定义在 apps/ios/Sources/LiveActivity/OpenClawActivityAttributes.swift重连触发清理连接状态后由reconcile决定呈现或结束。7. 推送通知与推送唤醒Push Notification / Push Wake7.1 推送通知演示点击Chat标签页在Message main...输入框发送Start push notification demo.立即将 OpenClaw 切到后台并锁屏不要强制退出 App。预期结果锁屏收到可见的OpenClaw通知正文为OpenClaw App Review push notification demo点击通知如提示则解锁 iPhone。若 OpenClaw 打开在Control页切到Chat预期 Chat 回复The push notification demo completed.7.2 推送唤醒与节点状态演示Push Wake / Status在Chat标签页发送Start push wake demo.立即切到后台并锁屏不要强制退出 App。等待锁屏出现OpenClaw通知——通常在消息发出后约 10 秒出现。点击通知如提示则解锁。若打开在Control页切到Chat。预期结果App 重连到 live GatewayChat 回复The push wake and node status demo completed.实现细节推送体系位于 apps/ios/Sources/Push支持两种传输模式由 apps/ios/Sources/Push/PushBuildConfig.swift 的transport决定direct直连App 直接把 APNs token 与 topic 注册给 Gateway见DirectGatewayPushRegistrationPayloadrelay托管中继通过 OpenClaw Hosted Push Relay 转发注册负载包含relayHandle、sendGrant、gatewayDeviceId、installationId等字段见RelayGatewayPushRegistrationPayload与 apps/ios/Sources/Push/PushRelayClient.swift这正是接入时Enable OpenClaw Hosted Push Relay?弹窗背后的能力。apps/ios/Sources/Push/PushRegistrationManager.swift 负责根据构建配置生成 Gateway 注册负载并维护注册状态APNs 令牌等敏感信息由 apps/ios/Sources/Push/PushRelayKeychainStore.swift 存入钥匙串。锁屏通知在 App 被系统挂起时送达点击通知后 App 重新唤起并重连 Gateway实现“推送唤醒”——这就是 Push Wake 演示验证的核心链路通知打开时还会把BackgroundAliveBeacon等后台存活信标状态一并带回见 apps/ios/Sources/Push/BackgroundAliveBeacon.swift。8. 设备权限与隐私Device PermissionsOpenClaw不在引导期展示聚合权限页。可选权限按“用到才申请”的时机触发评审者调用相关功能或在 Settings 中对某项权限点击Continue时立即弹出对应的原生 iOS 授权弹窗中间没有额外的 OpenClaw 对话框或延迟动作。8.1 权限检查清单点击Settings→Permissions。确认以下常驻控制项可用Camera相机Location定位含Off、While Using、Always三档Keep Awake保持唤醒确认始终可见的Apple Health区块将集成标识为Apple Health Summaries。展开Privacy Access确认以下控制项在未被申请过时显示ContinueContacts通讯录Photos照片Calendar (Add Events)日历-添加事件Calendar (View Events)日历-查看事件Reminders提醒事项对任意未申请过的权限点击Continue确认对应的原生 iOS 授权弹窗立即出现然后在系统弹窗中做出选择。若评审设备此前已对该权限做过决定则对应行显示当前状态或管理操作而不再显示Continue。实现细节iOS 端将各系统框架Contacts / Photos / EventKit / HealthKit的原生授权状态统一归一为granted / limited / notRequested / denied四种语义见 apps/ios/Sources/Permissions/DevicePermissions.swift。例如 EventKit 的writeOnly仅添加会映射为limited用于区分“只能添加事件”与“完整读写”Calendar (Add Events)与Calendar (View Events)分别对应写入与读取两种授权语义。请求动作由 apps/ios/Sources/Permissions/PermissionRequestBridge.swift 与 apps/ios/Sources/Permissions/EventKitPermissionRequester.swift 承接做到“点击 Continue → 立即弹出系统弹窗”。8.2 可选的 Apple Health 摘要Apple Health Summaries默认关闭。在Settings→Permissions中始终可见的Apple Health区块会标明该功能及其使用的数据类型。点击Enable Apple Health Summaries会打开 Apple 的 Health 授权面板。OpenClaw 仅向 Apple Health 申请只读访问以下数据步数steps、睡眠sleep、静息心率resting heart rate、体能训练workouts。聚合在设备端完成只有用户主动请求的today摘要会经用户自己的 Gateway 与所配置的 AI 提供方发出不支持单个样本、来源、元数据、临床记录、后台摄取或写入。Gateway 侧还额外要求health.summary出现在gateway.nodes.allowCommands中才会放行该命令。两点重要声明应用不会因为查询结果为空就推断读取授权状态——HealthKit 刻意让“被拒绝”与“无数据”在读取侧无法区分因此 OpenClaw 只记录用户显式的共享选择见 apps/ios/Sources/Health/HealthSummaryService.swift 中health.summary.enabled开关与HealthAuthorization.enable()的注释逻辑该功能仅用于个人健康与健身摘要不用于诊断或医疗建议。实现细节健康模块在 apps/ios/Sources/Health/HealthSummaryService.swift。HealthAuthorization.readTypes恰好对应上述四类只读类型聚合逻辑值得注意步数使用HKStatisticsQueryDescriptor的.cumulativeSum静息心率使用.discreteAverage单位count/min睡眠通过HKSampleQueryDescriptor读取sleepAnalysis分类样本只保留HKCategoryValueSleepAnalysis的入睡区间并调用mergedDuration合并重叠区间确保同一分钟在离机聚合结果中不会被重复计数体能训练统计条数与总时长且只统计“今天零点到当前时刻”dateRange返回DateInterval(start: 今天零点, end: now)。9. 分享扩展Share Sheet打开 Safari访问https://example.com。点击 Safari 工具栏的More按钮再点击Share。在分享面板中点击OpenClaw。确认 OpenClaw 分享扩展出现并显示Edit text, then tap Send.与Send to OpenClaw。点击Send to OpenClaw。预期结果OpenClaw 分享扩展将分享的 Safari 页面发送到 live review Gateway并显示Sent to OpenClaw.。返回 OpenClaw Chat 即可看到分享的Example Domain页面。实现细节分享扩展是 iOS App Extension 能力把网页内容URL/标题等封装后经 Gateway 会话送入助手属于“任意来源内容收口到 OpenClaw 处理”的典型入口。此环节同时验证了 App Extension 与主 App 之间的数据/会话衔接。10. 附录验收清单速查模块核心验证点预期结果设置接入设置码粘贴 → Apply → TrustConnectedControl显示Gateway Online通知启用Settings → Approvals → Notifications显示EnabledChatStart Apple review checklist.助手回复演示列表审批Run the approval demo.Allow Once弹出Exec approval requiredChat 回复The approval demo completed.TalkStart Talk 语音指令语音回复Stop Talk可结束Talk 后台后台/锁屏继续对话语音持续重开 App 仍可Stop TalkGateway 状态Control → InstancesGateway onlineagent 与 iPhone 均在列Live ActivitySettings → Reconnect 后立即锁屏锁屏/灵动岛显示Connecting.../Reconnecting...推送通知Start push notification demo.后锁屏锁屏收到OpenClaw App Review push notification demo推送唤醒Start push wake demo.后锁屏约 10 秒收到通知点开后重连并回复The push wake and node status demo completed.权限Settings → Permissions 逐项Continue立即弹出对应原生 iOS 授权弹窗Apple Health开启 Summaries 并授权只读设备端聚合today摘要经 Gateway 发出Share SheetSafari 分享到 OpenClaw扩展显示Sent to OpenClaw.Chat 出现Example Domain验收纪律整个流程中凡要求“切到后台/锁屏”的环节Talk 后台、推送通知、推送唤醒、Live Activity都必须返回主屏幕或锁屏而不是强制退出 App——后台挂起suspended状态正是这些演示所要验证的 iOS 能力边界。参考源码位置验收文档apps/ios/APP-REVIEW-NOTES.md引导接入apps/ios/Sources/Onboarding/OnboardingWizardView.swift、apps/ios/Sources/Onboarding/OnboardingWizardConnectionSections.swift网关信任apps/ios/Sources/Gateway/GatewayTrustPromptAlert.swiftLive Activityapps/ios/Sources/LiveActivity/LiveActivityManager.swift、apps/ios/Sources/LiveActivity/OpenClawActivityAttributes.swift、apps/ios/Sources/LiveActivity/VoiceLiveActivityCoordinator.swift推送apps/ios/Sources/Push/PushRegistrationManager.swift、apps/ios/Sources/Push/PushBuildConfig.swift、apps/ios/Sources/Push/PushRelayClient.swift、apps/ios/Sources/Push/ExecApprovalNotificationBridge.swift权限apps/ios/Sources/Permissions/DevicePermissions.swift、apps/ios/Sources/Permissions/PermissionRequestBridge.swift健康apps/ios/Sources/Health/HealthSummaryService.swift语音apps/ios/Sources/Voice【免费下载链接】openclawThe AI that really does things. Any OS. Any Platform. The lobster way. 项目地址: https://gitcode.com/GitHub_Trending/cl/openclaw创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表