结合 Watch OS 和 iOS 框架

Posted

技术标签:

【中文标题】结合 Watch OS 和 iOS 框架【英文标题】:Combined Watch OS and iOS Framework 【发布时间】:2017-08-04 04:59:08 【问题描述】:

我创建了一个在 ios 和 Watch OS 之间共享的类。这工作得很好。但是,我想把那个类变成一个框架。这样做虽然只允许将其创建为 iOS 或 Watch OS 框架,但不能同时创建两者。为 Watch OS 创建它会阻止 iOS 看到它,反之亦然。

我怎样才能拥有一个 iOS 和 Watch OS 都可以使用的框架?

【问题讨论】:

【参考方案1】:

我在询问后立即找到了隐藏在文档中的答案...与其删除问题,我将在此处发布答案以供他人参考:

根据 Apple 的说法,您不能在手表和手机之间共享框架。具体来说:

在 iOS 应用和 watchOS 应用之间共享代码

您可以在 iOS 应用和 Watch 之间共享代码,但不能共享框架 应用程序。因为应用程序运行在不同的平台上 架构,源文件必须为每个单独编译 平台。如果您仍想使用框架来管理任何共享 源文件,您必须为每个源文件创建单独的框架目标 平台并将您的共享源文件添加到每个框架。

如果你已经有一个 iOS 框架,你可以复制这个框架 并对其进行修改以支持 watchOS。

https://developer.apple.com/library/content/documentation/General/Conceptual/WatchKitProgrammingGuide/iOSSupport.html#//apple_ref/doc/uid/TP40014969-CH21-SW1

【讨论】:

如您所说,您不能创建不同的二进制文件(一个用于 iOS,一个用于 tvOS,一个用于 watchOS)。您可以做的是在不同目标之间共享您的源代码,并使用 TargetConditionals 在正确的平台上编译这些源代码。

以上是关于结合 Watch OS 和 iOS 框架的主要内容,如果未能解决你的问题,请参考以下文章

详解OS X和iOS图像处理框架Core Image

与 Swift 一起使用的 iOS/Mac OS 流畅匹配框架?

如何列出可以添加到 C# Appium 框架中的设备和 ios 以使其每次测试都使用不同的 Ios 设备和 Ios OS

一个 iOS(或 OS X)项目依赖于一个框架的两个版本

OS开发小记:iOS富文本框架DTCoreText在UITableView上的使用

如何从 Watch App(Watch OS 2)与非活动的 IOS 应用程序通信