问题描述
在我新增Watch扩展后,重新运行主应用,发现iOS无法显示/新增Widget小组件。
当返回到Xcode中预览Widget时,提示:
Cannot preivew in this file
Failed to launch com.fangjunyu.piglet.BankletWidget


根据详细的报错信息:
FailedToLaunchAppError: Failed to launch com.fangjunyu.piglet.BankletWidget
NSError: Error Domain=CHSErrorDomain Code=1300 "(null)"
表示Widget Extension 没有正确启动或者配置有问题,导致无法在设备或模拟器中启动。
通过GitHub拉取之前的提交文件,对比发现不显示小组件的项目没有Embed Foundation Extensions(嵌入基础扩展)。

而正常显示小组件的项目,则配置了Embed Foundation Extensions(嵌入基础扩展)。

解决方案
点击添加按钮。

找到后缀为appex的小组件,点击“Add”按钮。

Xcode中小组件视图恢复预览。


问题得到解决。
总结
只有通过代码对比,才找到问题的原因。但实际上我并没有修改过Embed Foundation Extensions(嵌入基础扩展)这一配置。
可能是因为配置Watch后,因为某种原因导致扩展配置丢失,具体问题的产生原因可能还需要进一步找寻。