该项目非常复杂,因为它支持watchOS 1和watchOS 2.
摘要如果你想要的是支持watchOS 2并在iOS和watchOS 2之间共享代码,你需要创建两个框架,每个平台一个.
只需在两个目标(和)中包含.swift文件,即可在watchOS 1和watchOS 2之间共享代码.(请参阅共享Lister WatchKit代码组.)Lister WatchKit Extension
Lister Watch Extension
代码在watchOS 1和iOS之间通过Lister iOS Framework(ListerKit
)共享.
只需在两个目标(,和)中包含.swift文件,即可在watchOS 2和watchOS 1之间共享代码.(请参阅共享Lister WatchKit代码组.)Lister WatchKit Extension
Lister Watch Extension
通过在Lister iOS Framework()和Lister watchOS 2 Framework()中包含共享文件(例如),在watchOS 2和iOS之间共享代码.(请参阅共享ListerKit框架代码组.)List.swift
ListerKit
ListerKit (watchOS)
在watchOS 2 Transition Guide 的iOS应用程序和watchOS App部分之间的共享代码中,他们确认了watchOS 2的这种设置:
在watchOS 2中,您可以在iOS应用和Watch应用之间共享代码,但不能共享框架.由于应用程序在具有不同体系结构的不同平台上运行,因此必须为每个平台单独编译源文件.如果您仍希望使用框架来管理任何共享源文件,则必须为每个平台创建单独的框架目标,并将共享源文件添加到每个框架.
[...]
注意
为WatchKit扩展创建单独的框架目标后,必须分别为iOS和watchOS管理该框架的内容.如果您将文件添加到框架的iOS版本,请记住将它们添加到watchOS版本.
注意:在这个项目中,无论你在哪里看到WatchKit,这通常都是指watchOS 1,而Watch则是指watchOS 2.
Lister
):
目标: Lister
产品名称: Lister
支持的平台: iOS
组: Lister iOS App/Main App
目标依赖项: Lister iOS Framework(ListerKit
)
目标依赖项: Lister iOS Today小部件(Lister Today
)
目标依赖关系: Lister watchOS 2 App(Lister Watch App
)
目标依赖关系: Lister watchOS 1 Extension(Lister WatchKit Extension
)
链接: Lister iOS Framework(ListerKit.framework
)
嵌入: Lister iOS Framework(ListerKit.framework
)
嵌入: Lister watchOS 1 Extension(Lister WatchKit Extension.appex
)
嵌入: Lister iOS App(Lister.appex
)
嵌入: Lister watchOS 2 App(Lister Watch App.app
)
Lister Today
或Lister
):
目标: Lister Today
产品名称: Lister
支持的平台: iOS
组: Lister iOS App/Today Widget
目标依赖项: Lister iOS Framework(ListerKit
)
链接: Lister iOS Framework(ListerKit.framework
)
使用者: Lister iOS App(Lister
)
ListerKit
):
目标: ListerKit
产品名称: ListerKit
支持的平台: iOS
Group: Lister iOS App/ListerKit Framework(iOS)
组:共享ListerKit框架代码
使用者: Lister iOS App(Lister
)
使用者: Lister iOS Today小工具(Lister Today
)
使用者: Lister watchOS 1 Extension(Lister WatchKit Extension
)
Lister WatchKit Extension
):
目标: Lister WatchKit Extension
产品名称: Lister WatchKit Extension
支持的平台: iOS
组: Lister WatchKit App/Lister WatchKit Extension
组:共享Lister WatchKit代码
目标依赖项: Lister iOS Framework(ListerKit
)
目标依赖性: Lister watchOS 1 App(Lister WatchKit App
)
使用者: Lister iOS App(Lister
)
Lister WatchKit App
):
目标: Lister WatchKit App
产品名称: Lister WatchKit App
支持的平台: iOS
组: Lister WatchKit App/Lister WatchKit App
使用者: Lister watchOS 1 Extension(Lister WatchKit Extension
)
Lister Watch Extension
):
目标: Lister Watch Extension
产品名称: Lister Watch Extension
支持的平台: watchOS
组: Lister Watch App/Lister Watch Extension
组:共享Lister WatchKit代码
组: Lister Watch App/ListerKit Framework(watchOS)
目标依赖关系: Lister watchOS 2 Framework(ListerKit (watchOS)
)
链接: Lister watchOS 2 Framework(ListerWatchKit.framework
)
嵌入: Lister watchOS 2 Framework(ListerWatchKit.framework
)
Lister Watch App
):
目标: Lister Watch App
产品名称: Lister Watch App
支持的平台: watchOS
组: Lister Watch App/Lister Watch App
使用者: Lister iOS App(Lister
)
ListerKit (watchOS)
或ListerWatchKit
):
目标: ListerKit(watchOS)
产品名称: ListerWatchKit
支持的平台: watchOS
Group: Lister iOS App/ListerKit Framework(iOS)/ iCloud&Local Storage/ListUtilities.swift
组:共享ListerKit框架代码`
使用者: Lister watchOS 2 Extension(Lister Watch Extension
)
该Shared Lister WatchKit Code
组包含watchOS 1和watchOS 2 扩展共享的代码.
该Lister Watch App/ListerKit Framework (watchOS)
组的名称暗示它应该是ListerKit (watchOS)
目标的一部分,但它是Lister Watch Extension
目标的一部分.
*Shared ListerKit Framework Code
主要用于在iOS,watchOS和OS X ListerKit框架之间共享代码.不过,也有来自省略了一些文件ListerKit (watchOS)
的目标:SegueHandlerType.swift
,CheckBoxLayer.swift
尽管该项WatchKit
主要用于指代本项目中的watchOS 1,但Lister watchOS 2 Framework的产品名称是ListerWatchKit
,但它仅用于watchOS 2.注意:watchOS 1不使用框架.
我从列表中省略了OS X groups/targets/etc.