我已经构建了一个动态框架以用于各种项目。当我使用调试版本进行开发时,一切都运行良好,但是当我构建发布版本时,我遇到了缺少 Arm64 符号的错误。该框架构建为通用框架,经检查确实包含符号,不同之处在于,当编译为 Release 时,External Symbols 变为 Non-External。
使用 nm -m myframework.framework/myFramework
例如: 在调试中,sybol 文件可能如下所示: (__TEXT,__text) 外部 [Thumb] _SomeSymbolName
但在 Release 中它们看起来像这样:
(__TEXT,__text) 非外部(是私有(private)外部)[Thumb] _SomeSymbolName
知道为什么会这样吗?或者任何会导致这种情况的build设置?
最佳答案
解决方案是禁用
“默认隐藏的符号”
在build设置中
关于IOS动态框架,外部符号成为发布版本的非外部符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38885580/