Swift Framework 构建针对设备失败,但针对模拟器失败

JBa*_*zuk 5 ios-frameworks swift3 xcode8

任何想法为什么构建会成功用于模拟器而不是设备?

我创建了一个 Cocoa 框架,并且能够将它添加到一个新的单页应用程序项目中,并调用框架中定义的方法。只要我将模拟器选为构建目标而不是设备,就可以构建项目。我没有试过运行它,只是构建。我正在使用 Swift 3 和 XCode 8.1。

我收到Use of unresolved identifier错误。

Ana*_*i P 3

听起来您是为模拟器而不是设备构建了框架。当链接器尝试链接设备的应用程序时,它找不到为该设备构建的框架。

其中两种方法如下。

1) 构建框架时,设置适合设备的活动方案(Xcode 的左上区域)。然后,在为设备构建应用程序之前,转到应用程序的构建设置并将框架的位置添加到框架搜索路径。确保选择正确的二进制文件!例如,在构建 iOS 模拟器时,框架的调试二进制文件将位于名为 Build/Products/Debug-iphonesimulator 的目录中。

使用这种方法,您还需要将框架添加到应用程序的复制文件构建阶段,并将目标指定为框架。

2) 将框架嵌入到应用程序中,使其成为应用程序的依赖项,并在应用程序的构建阶段将应用程序设置为与框架链接。看

https://developer.apple.com/library/content/documentation/MacOSX/Conceptual/BPFrameworks/Tasks/CreatingFrameworks.html

关于嵌入框架以及其他有用的框架相关信息。实现此目的的一种便捷方法是转到应用程序目标的“常规”选项卡,然后在“嵌入式​​二进制文件”部分中添加框架。

或者,如果您在创建应用程序后创建框架,则可以要求 Xcode 将框架嵌入到应用程序中。