对于iOS框架,我希望能够隐藏其中的符号,以避免当框架和使用该框架的应用程序包含同一第三方库的不同版本时发生冲突。
到目前为止,可以通过在选项中指定-unexported_symbols_list来实现这一点。
但是,在Xcode 7 Beta 5中,以下错误消息.
-unexported_symbols_list and -bitcode_bundle (Xcode
setting ENABLE_BITCODE=YES) cannot be used together...occurs在试图编译框架的BitCode版本时。
因此,我有三(3)个问题:
1)在编译BitCode时,是否有一种直接的方法来隐藏您的符号?
2)如果不是,在框架的第三方库是相同的库但版本不同的情况下,还有什么可以避免它们与应用程序的第三方库发生冲突吗?
( 3)为什么不能同时使用-unexported_symbols_list和-bitcode_bundle?
发布于 2015-09-30 04:40:50
部分回答(因为我也在寻找完整的答案)
在选项中使用-exported_symbols_list或-unexported_symbols_list时,各种函数符号将转换为本地符号。
由于某些原因,链接器无法在本地符号中使用bitcode选项。
因此,两者不能一起使用。
还请注意,用于符号隐藏的strip关键字可以隐藏全局符号,但是库必须是动态的。这是一个我还没有完全探索的选择。如果动态库为您工作,那么您应该探索它。
如果这能帮助人们对如何解决这个问题有不同的看法,那就太棒了。
https://stackoverflow.com/questions/32210231
复制相似问题