1

对于 iOS 框架,我希望能够隐藏其中的符号,以防止在框架和使用框架的应用程序包含同一 3rd 方库的不同版本时发生冲突。

到目前为止,这可以通过-unexported_symbols_list在选项中指定来实现。

但是,在 Xcode 7 Beta 5 中,出现以下错误消息...

-unexported_symbols_list and -bitcode_bundle (Xcode 
setting ENABLE_BITCODE=YES) cannot be used together

...在尝试编译框架的 BitCode 版本时发生。

所以,我有三 (3) 个问题:

1) 编译 BitCode 时是否有一种简单的方法来隐藏符号?

2)如果没有,当框架的第 3 方库是相同的库但版本不同时,是否可以采取其他措施来防止框架的第 3 方库与应用程序的第 3 方库发生冲突?

3)为什么不能-unexported_symbols_list-bitcode_bundle一起使用?

4

1 回答 1

0

部分答案(因为我也在寻找完整的答案)

在选项中使用-exported_symbols_list-unexported_symbols_list时,将各种功能符号转换为局部符号。

由于某种原因,链接器无法将位码选项与本地符号一起使用。

因此两者不能一起使用。

另请注意,strip用于符号隐藏的关键字可以隐藏全局符号,但库必须是动态的。这是一个我还没有完全探索过的选项。如果动态库适合您,那么您应该探索它。

如果这可以帮助某人对如何解决此问题有不同的看法,那就太棒了。

于 2015-09-30T04:40:50.217 回答