【问题标题】:How to avoid "skipping copy phase strip" warning (because "binary is code signed”) without setting "strip debug symbols during copy" to NO?如何避免“跳过复制阶段剥离”警告(因为“二进制是代码签名”)而不将“复制期间剥离调试符号”设置为 NO?
【发布时间】:2015-06-18 05:10:12
【问题描述】:

在“复制期间剥离调试符号”设置为“是”的情况下执行存档构建时,我收到警告“跳过复制阶段剥离,二进制代码已签名”。 关于此问题的线程上通常建议的解决方案是将“复制期间剥离调试符号”设置为 NO。 当然可以消除警告,但我认为消除“低油警告灯”的方法不会解决根本问题。

当此选项设置为 NO 时,二进制文件的大小似乎会变得臃肿。还有你为什么要在你的应用程序中发布调试符号?

我将不胜感激提示、见解和最佳解决方案。

【问题讨论】:

  • 警告“跳过复制阶段条,二进制是代码签名”出现在自己的框架以及 iOS 8 扩展上,它们都是代码签名的(似乎是必需的)。

标签: ios objective-c cocoa-touch build codesign


【解决方案1】:

你不能。 Xcode 没有检测到代码签名的框架已经被剥离。警告是无害的。

【讨论】:

  • 但这真的很烦人,尤其是当您链接到许多自己的框架时,Xcode 会向您发送数十个这样的警告,让您更难看到真正重要的警告。确实应该有一种方法可以关闭它们。正如 OP 已经说过的那样,禁用“在复制期间剥离调试符号”不是解决方案。
【解决方案2】:

您交付的二进制文件的大小将不受此设置的影响。那是另一个设置,名为“Strip Linked Product”。您可以将该设置保留为“是”。另见:https://stackoverflow.com/a/7915911/923288

【讨论】:

    【解决方案3】:

    执行此操作的一种方法是进入应用的“常规”选项卡,向下滚动到“框架、库和嵌入式内容”,找到应该在该列表中的有问题的库,然后将“嵌入和签名”更改为“不要嵌入”,这肯定会消除警告,并且应用程序可以在模拟器上正常运行,但是,取决于 lib 的编码方式,它不能 100% 保证它可以在设备上运行(通过 Xcode 调试) ,除此之外它应该可以正常工作。

    H

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-04-05
      • 1970-01-01
      • 2014-03-06
      • 2016-03-21
      • 1970-01-01
      • 1970-01-01
      • 2019-09-25
      相关资源
      最近更新 更多