使用 Swift 3 在 Xcode 8 中为 WatchOS 和 iOS 构建嵌入式框架

cpj*_*eur 5 xcode ios swift watchkit

我正在将最初用 Swift 1 编写的所有 iOS + WatchOS 1 应用程序移植到最新的 Xcode 8、WatchOS 3、Swift 3。

我的应用程序有一个嵌入式框架,其中包含一些常用功能,用于为 watchkit 扩展目标和 ios 应用程序目标编译和运行文件。

使用 Xcode 8,我似乎无法再使用它。当我尝试import使用 watchkit 扩展代码中的框架时,module not found出现错误。

是否仍然可以在目标 iOS 和 WatchKit 扩展目标上编译和使用一个单一的嵌入式框架包?在我的框架中,我将目标平台设置为watchos, watchsimulator, iphoneos, iphonesimulator.

我的直觉说这不可能了。最初所有代码都在手机本身上运行,而不是在实际手表和手机上运行,​​您需要专门为每个代码编译一个嵌入式框架。

Jos*_*ord 5

简短版本:你不能。创建一个重复的目标并将其设置为使用手表 SDK。

来自 Apple 文档的更长版本:https : //developer.apple.com/library/content/documentation/General/Conceptual/WatchKitProgrammingGuide/iOSSupport.html#//apple_ref/doc/uid/TP40014969-CH21-SW1

包含:

笔记

在为 WatchKit 扩展创建单独的框架目标后,您必须分别为 iOS 和 watchOS 管理该框架的内容。如果在框架的 iOS 版本中添加文件,请记住将它们添加到 watchOS 版本。