Link 并将编译后的 .a 暴露给 Swift 框架?

Link and expose compiled .a to Swift framework?

我正在尝试编写一个 Swift 框架,它包装并公开了一个已编译的库,其中添加了一些 类。

我的项目正确输出框架:

    MyFramework
      |_ Frameworks/
         |_ compiled.a
      |
      |_ Headers/
         |_ *.h

但是由于未定义的符号错误,我似乎无法在我的应用程序中访问 compiled.a 中的任何 类。如果我将 compiled.a 拖放到我的项目本身并将其添加到 "Link With Binary Files" 构建阶段,我的框架和我的应用程序代码都可以正常工作,但是将 compiled.a 复制到每次都打包。

是否可以 link 我的应用程序针对包含在我的动态框架中的框架,将库暴露给两者?

解决方案是预链接您的库,然后添加链接器标志。

您可以将 "Build Settings" 中的 "Prelink Libraries" 选项设置为:

$(CONFIGURATION_BUILD_DIR)/path/to/libFramework.a

对于 "Debug" 和 "Release" 构建。

然后,你只需要在"Other Linker Flags"中添加一个标志:

-lFramework

问题已解决。