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
问题已解决。
我正在尝试编写一个 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
问题已解决。