Xcode 4 归档警告,跳过复制阶段。

40

我有一个Mac应用程序,我正在尝试进行归档。我以前使用过早期版本的Xcode完成了这个操作,但是当我使用Xcode 4进行归档时,我会收到以下警告:

warning: skipping copy phase strip, binary is code signed: .....

该警告涉及必须在构建阶段复制的辅助工具。我如何解决这个警告?

有什么建议吗?

1个回答

96
解决方案是进入应用程序目标的构建设置(而不是帮助工具目标),并将"Strip Debug Symbols During Copy"设置为"No"。这是关键的COPY_PHASE_STRIP

COPY_PHASE_STRIP screenshot

启用此设置会导致在构建过程中复制的二进制文件(例如,在复制捆绑资源或复制文件构建阶段中)被剥离调试符号。它不会导致目标的链接产品被剥离(请使用“剥离链接产品”进行操作)。
主要问题是您无法从已签名的可执行文件中剥离调试符号。这就是为什么您必须跳过此步骤的原因。

3
您还可以打开部署后处理、剥离已安装产品和分离剥离,这将剥离二进制文件并仍然进行代码签名。调试也可以工作,但只有第一次有效,如果重新运行,似乎Xcode 4.3会“重新生成” .dSYM 文件并破坏调试信息。 - Peter N Lewis
1
伙计你太棒了!我已经受够了这些编译时间的混乱。你救了我! - NightCoder
3
先生们,这不是正确的做法。发布版(如应用商店)不应包含调试符号,因为它们会使您的应用程序运行变慢。 - Jorge Leandro Perez
@JorgeLeandroPerez 自2011年以来,情况已经发生了变化。当时,可以在框架二进制文件中提交带有调试符号的构建版本。当然,您应该始终构建一个没有调试符号的优化版本。但是,嘿,它能够正常工作并且非常出色地完成了它的工作。 - cocoafan
2
@cocoafan 是的!我不是说这是不可能的。我是说...作为一种解决方法,这是可以接受的。但是仅仅为了消除一个警告而发布带有调试符号的应用程序,绝不能是正确的答案。 - Jorge Leandro Perez
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接