gpt4 book ai didi

xcode - 在我的 macOS 二进制文件中的所有框架上运行 `strip -S -x` 是否有缺点?如果没有,我该如何自动化该过程?

转载 作者:行者123 更新时间:2023-12-03 15:52:06 26 4
gpt4 key购买 nike

我注意到正在运行 strip -S -x (删除所有调试和所有本地符号)在我的应用程序的“Frameworks”文件夹中的二进制文件上使它们小约 25%,即使我在我的build设置中启用了调试符号的剥离。

另请注意,这也使 Swift 支持库变得更小,而且似乎没有build设置来剥离这些库。另外,鉴于 nm --debug-syms,我什至不能 100% 确定我的“剥离调试符号”设置是否正确(即实际上导致调试符号被剥离)仍然为它们显示了大量符号,并且 strip -S (删除调试符号表)仍然使它们更小。我的条设置似乎确实是您在 Internet 上找到的推荐设置:

  • 部署后处理 : 是
  • 在复制过程中去除调试符号 : 不(无论如何都没有效果,因为那时框架已经是代码签名的)
  • strip 连接产品 : 是
  • 条形 : 调试符号

  • 但是运行 strip -S -x 是否有任何不利的副作用? ,例如以后无法符号化堆栈跟踪?

    另外,如何在构建过程中自动执行此剥离,同时保持最终代码签名不变? 似乎添加 -Xlinker -x -Xlinker -S to my "Other Linker Flags"将此过程应用于当前项目的二进制文件(包括框架),但不适用于我的依赖项目(例如 CocoaPods)中的框架。这尤其重要,因为相应地修改我包含的 CocoaPods 项目的build设置并不容易。如上所述,它也与 Swift 支持库 dylibs 相关,它们也没有这样的链接器选项,但仍然可以从这种剥离中受益。

    最佳答案

    我为发布版本找到的最好的(即最积极但最可靠的)链接器标志现在可以在 https://stackoverflow.com/a/63188437/153354 中找到。 .

    关于xcode - 在我的 macOS 二进制文件中的所有框架上运行 `strip -S -x` 是否有缺点?如果没有,我该如何自动化该过程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45868246/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com