Xcode14中Watch App使用WKExtensionDelegateAdaptor遇警告及方法绑定问题
解决Xcode14中Watch App的@WKExtensionDelegateAdaptor警告与WorkoutConfiguration处理问题
一、消除@WKExtensionDelegateAdaptor运行时警告
你遇到的紫色警告是因为当前Watch App的类型为独立App,而@WKExtensionDelegateAdaptor仅适用于基于Extension的App结构。按以下步骤修改App类型:
- 在Xcode项目导航栏中选中Watch App的target(注意不是iOS App或Watch Extension target)
- 切换到
General标签页 - 在
Deployment Info区域找到App Type选项,将其从Independent改为Extension-Based
重新编译项目后,警告即可消失。
二、绑定handle(_ workoutConfiguration: HKWorkoutConfiguration)方法
只需让你的ExtensionDelegate类继承自WKExtensionDelegate,并直接在类中实现该方法即可:
class ExtensionDelegate: NSObject, WKExtensionDelegate { func handle(_ workoutConfiguration: HKWorkoutConfiguration) { // 在这里处理从HealthKit传来的训练配置 // 例如跳转至训练界面、初始化训练会话等 } // 可按需实现其他WKExtensionDelegate生命周期方法 func applicationDidFinishLaunching() { // 应用初始化逻辑 } }
当iOS端调用startWatchApp(with:completion:)方法后,Watch端的ExtensionDelegate会自动触发这个handle方法。
内容的提问来源于stack exchange,提问作者TealShift
相关产品推荐
相关产品推荐

