在Xcode 6中使用iOS 8扩展存档时出现警告

归档我的应用程序时遇到问题。

我为iOS 8扩展创build了一个新的目标。

当我存档应用程序时,我收到警告。

警告是

/ PBXCp Warning“,”警告:跳过复制阶段条带,二进制代码签名:/ Users / Library / Developer / Xcode / DerivedData / App / Build / Intermediates / ArchiveInter mediates / AppName / IntermediateBuildFilesPath / UninstalledProducts / AppExtappex / AppE xt“

该应用程序在Objective-C中。

检查Xcode目标的构build设置中的“Copy Copy Symbols Over Copy”选项。 它说,它不能去掉debugging符号,因为扩展已经签名。

如果您在Xcode 6.2中创build了一个全新的示例项目和Today Extension,则将剥离debugging符号的默认值设置为NO。

在这里输入图像说明

复制来自: https : //stackoverflow.com/a/30459703/736384

编译后的代码通常包含debugging信息,这个debugging信息对于在debugging器中检查运行代码是很有帮助的,但是对于在分发版本中运行的优化代码来说更是如此,因此在构build存档时会被删除。

这里的问题是,PBXCp无法从签名的二进制文件中去除debugging符号,因为这会使数字签名无效。 所以如果你有一个在Xcode 6.3之前创build的项目,你现在会得到这样的警告。

要修复警告,只需将两个值都更改为NO。 删除它们不起作用,因为两者的默认值仍为YES。 Xcode 6.3附带的项目模板默认closures了这些模板。 只有使用旧版模板启动的项目在发行版上仍然有“是”。

资料来源: https : //www.cocoanetics.com/2015/04/skipping-copy-phase-strip/

框架/扩展已经被剥离并且代码被默认签名。 应用程序项目无法检测到框架已被剥离,并引发无害警告。 你不应该禁用它,否则你的应用程序不会被剥离。

围绕debugging符号在复制构build设置期间的效果似乎存在一些混淆,我build议阅读本文以获取更多信息: 跳过复制相位条 。

这是我研究这个问题的关键:

  • 当您使用Xcode 6.2或更高版本创build新项目时,插入到项目文件中的值对于此设置的两个默认构buildconfiguration(“debugging”和“发行版”)均为NO
  • 在Releaseconfiguration中将该值设置为YES并执行Product Archive对生成的应用程序二进制大小没有影响(我鼓励您通过在自己的项目上进行testing来validation这一点)。
  • 用于Sybolication iOS崩溃报告的debugging符号来自与应用程序包分开的外部.dsym文件,所以我不希望符号表被包含在二进制文件中。

检查Xcode目标的构build设置中的“Strip Style”选项。 如果是“非全局符号”,则将其更改为“全部符号”。 这可以解决问题,但是我不知道是否还有其他问题引起这个变化。

在目标构build设置的“部署”部分中,查找Strip Debug Symbols During Copy ,并将其设置为YES以执行任何生产构build。

在这里输入图像说明

对我有效的是以下几点:

我编辑了我正在归档的计划。 在那个窗口中,我select了“运行”,然后select“信息”标签。 在“构buildconfiguration”中,我将其更改为“发布”。 我只是将其更改为“debugging”(默认情况下选项),该警告消失了。

我希望这有帮助。

这可能是因为你用DEBUGscheme存档。 如果您selectRELEASEscheme,则选项“在复制过程中去除debugging符号”设置为YES,并且您没有此警告。

我build议使用DEBUG设置存档以进行betatesting,但使用RELEASE设置在App Store中发布。