【问题标题】:How can I add complications to my EXISTING Xcode project?如何为我现有的 Xcode 项目添加复杂性?
【发布时间】:2015-11-15 08:52:51
【问题描述】:

如何向我现有的Xcode 7 项目添加复杂性?

观看 WWDC 视频 2015 会议 209,显示添加复杂性的方法是创建一个新项目并单击 Include Complication。这适用于这种情况,但我如何将它们添加到现有项目中?

我在 XCode 对象选择器中找不到复杂控制器(见下文):

为什么会这样??

【问题讨论】:

  • 使用 Xcode 已经 4 年了,相信我,Xcode 已经配备了一个永无止境的标准复杂性列表。
  • 啊啊...谢谢 Mike :-),在我四年的 XCode 经验中,我也意识到了这一点......而且每年他们都会改变事情

标签: ios watchkit xcode7-beta5 apple-watch-complication


【解决方案1】:

添加一个新的临时监视扩展目标并选中并发症复选框。将此新 info.plist (CLKComplicationSupportedFamilies、WKExtensionDelegateClassName & CLKComplicationPrincipalClass) 中的并发症扩展属性复制到您的旧手表扩展 info.plist 中。完成此操作后,您将看到复杂的家庭列表。

我还将 ExtensionDelegate 和 ComplicationController 类移到旧手表扩展中,并将目标成员资格从新手表扩展更改为旧手表扩展。

在旧手表扩展资产文件中右键单击并添加复杂图像集。

还有“tom_witkin 2015 年 7 月 23 日 8:50 (回应布雷维尔) ClockKit 框架仅适用于 watchOS 2,不适用于 iOS。因此,在 iPhone 上运行扩展程序的现有 WatchKit 应用程序不支持复杂功能。”

当从 wos1 移动到 wos2 时(如果在编译过程中出现警告),建议的构建设置也会发生变化,并在旧扩展程序和手表应用程序构建设置中设置 WATCHOS_DEPLOYMENT_TARGET = 2.0。

为旧手表扩展添加 TARGETED_DEVICE_FAMILY = 4(如果不存在)。

【讨论】:

  • 感谢您添加 CLKComplicationSupportedFamilies 解决了我的问题
【解决方案2】:

在 Interface Builder 中没有复杂控制器之类的东西,它是一个抽象实体。您应该使用ClockKit Framework 注册时间线条目,只有在此之后,这些条目才能通过表盘上支持的复杂功能获得。

您可以在 Watch Extension 目标配置选项卡上配置支持的并发症类型 - 只需选中必要的复选框。还有一个技巧,你应该使用下一个方案指定复杂控制器的名称:$(PRODUCT_MODULE_NAME).YourComplicationControllerName

【讨论】:

  • 您好,不幸的是,在 Xcode 6 中创建并在 Xcode 7 中导入的项目中没有这样的复选框。因此我的问题是:“如何将它们添加到现有项目中”。我应该指定一个“导入项目”。
  • 嗯...奇怪,因为我的项目从 Xcode 6 开始就已经存在,而且我有这些复选框。您确定检查您的 Watch Extension 目标设置吗?他们是这样看待我的项目的:imgur.com/ZvUzoZC
  • 我注意到当你的代码在 swift 中时你必须这样做,如果它是objective-c,那么类的名称本身就可以工作
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-08
  • 2015-01-16
  • 2011-08-08
  • 1970-01-01
相关资源
最近更新 更多