Xcode Swift应用如何调用Swift静态库中的函数
Swift应用调用Swift静态库的操作步骤
前置检查
- 确保静态库项目中需要对外暴露的类、结构体、方法都标记为
public(需要支持继承/重写的成员可以标记为open),默认internal访问权限的成员无法被外部模块调用
静态库端的正确代码示例:
public class StaticLibTool { public init() {} public func getLibInfo() -> String { return "静态库调用成功" } }
步骤1:关联两个项目
- 打开Swift应用项目的Xcode窗口,直接将静态库项目的
.xcodeproj文件拖入应用项目的左侧导航栏 - 拖入时无需勾选「Copy items if needed」(除非你需要单独备份一份静态库项目到应用目录下),确认静态库项目作为应用项目的子项目展示即可
步骤2:配置应用的编译链接参数
- 选中应用项目根节点,在TARGETS栏选中对应的应用target,切换到「General」标签
- 找到「Frameworks, Libraries, and Embedded Content」区域,点击加号,在弹出框中选中静态库项目编译产出的
.a静态库文件添加 - 切换到「Build Settings」标签,搜索
Other Linker Flags,添加-ObjC参数,避免静态库中的extension在运行时找不到实现 - 若编译时提示找不到静态库模块,可搜索
Header Search Paths,添加静态库项目的源码根目录,权限选择recursive
步骤3:调用静态库方法
- 在应用项目需要调用静态库的Swift文件头部,引入静态库模块:
import 静态库模块名(静态库模块名默认和静态库target的名称一致,可在静态库target的Build Settings中搜索Product Module Name查看修改) - 直接调用静态库暴露的public方法即可,示例代码:
import MySwiftStaticLib let tool = StaticLibTool() print(tool.getLibInfo())
常见问题排查
- 编译提示找不到模块:先手动编译一次静态库target,再检查两个项目的编译架构是否匹配
- 运行时崩溃提示找不到类/方法:确认对应成员的访问权限为
public,且-ObjC参数已正确添加
内容的提问来源于stack exchange,提问作者Doug Null
相关产品推荐
相关产品推荐

