You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无Extension目标,如何在Xcode14中配置独立watchOS应用的WKExtendedRuntimeSession?

独立watchOS应用配置WKExtendedRuntimeSession的方法

在Xcode 14.2创建的无Extension目标的独立watchOS应用,完全可以配置并使用WKExtendedRuntimeSession,具体操作步骤如下:

  • 选中你的独立watchOS应用目标,打开「Signing & Capabilities」标签页
  • 点击右上角的「+ Capability」按钮,搜索并添加「Background Modes」能力
  • 在Background Modes的选项列表中,勾选你需要的WKExtendedRuntimeSession会话类型(比如「Location updates」「Voice over IP」等,需匹配你的业务需求)
  • 配置完成后,在代码中正常初始化并启动会话即可,示例代码:
import WatchKit

class ExtensionDelegate: NSObject, WKExtensionDelegate {
    private var extendedSession: WKExtendedRuntimeSession?

    func applicationDidFinishLaunching() {
        extendedSession = WKExtendedRuntimeSession()
        extendedSession?.delegate = self
        // 启动会话
        extendedSession?.start()
    }
}

// 实现会话代理方法处理生命周期事件
extension ExtensionDelegate: WKExtendedRuntimeSessionDelegate {
    func extendedRuntimeSession(_ session: WKExtendedRuntimeSession, didInvalidateWith reason: WKExtendedRuntimeSessionInvalidationReason, error: Error?) {
        // 处理会话失效逻辑,比如重新启动或记录错误
        if reason == .systemInitiated {
            extendedSession?.start()
        }
    }
}

注意事项

  • 若会话类型涉及系统权限(如位置),需在Info.plist中添加对应的权限描述,并在代码中主动请求用户授权
  • 后台会话功能仅能在真实Apple Watch设备上测试,模拟器不支持完整的后台运行逻辑

内容的提问来源于stack exchange,提问作者smoyth

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 06:05:32