Xcode 6将“共享扩展名”添加到目标时,存档并获得警告“跳过复制相位条,二进制代码已签名”

当我向我的项目添加共享扩展并将其归档时,出现此警告:跳过复制阶段条带,二进制代码签名:/ Users / xxxx / xxx / xxxx / Buildmedium / ArchiveIntermediates / xxxx / IntermediateBui ldFilesPath /UninstalledProducts/XXX.appex/XXXX

旧的问题没有提供和有见识的纠正这一点。 所以我决定再问一次。 在Xcode 6中使用iOS 8扩展存档时出现警告

有人可以解释为什么发生这种情况吗? 是否因为扩展目标已经被代码签名? 如果是的话,如何解决呢?

我知道设置“在复制过程中除错debugging符号”为“否”可以清除此警告。 但实际上并没有解决问题。 而不是“剥离debugging符号”的缺点是什么? 因为我的档案大小仍然是相同的,无论我设置为YES或NO

在您的应用程序项目中不要禁用Strip Debug Symbols During Copy 。 这会使你的应用程序膨胀(如果你有其他未签名的依赖项)。

发生这种情况是因为构build应用程序项目试图剥离框架,但是由于框架已经进行了编码,因此无法进行。 然而,这个框架在构build期间已经被剥离,所以警告是无害的。 Xcode似乎并没有检测到signedigned框架已被剥离。

你应该保持原样。

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

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

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

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

正如你所知道的,我经历了同样的警告,并通过在“包含应用程序的生成设置”(而不是扩展名)中将“复制过程中的脱机debugging符号”设置为“否”来解决这个问题。

另一方面,改变扩展的相同设置不起作用。 这就明确了警告的实际含义。 也就是说,剥离符号并不意味着“目标”的符号将被分割,而是意味着目标将尝试去除符号“embedded的二进制文件”。

因此,我相信警告的实际含义是Xcode不能在归档容器应用程序时去除扩展二进制文件的debugging符号,因为需要被embedded到容器应用程序“的”二进制文件已经被编译,在Xcode尝试在存档容器应用程序时去除扩展二进制文件的符号之前,通过代码签名进行冻结。

似乎Xcode的与embedded式扩展二进制文件的条带化debugging符号有关的默认构build设置需要被正确更新,不会显示此警告。

在我的情况是与2 AppIcons(我忘了​​填充他们),检查是否你有所有的xxxxcassets文件中的所有AppIcons与正确的xxpt。 从这里我请求苹果改进这个检查或启用一个自动工具来完成所有的AppIcons设置。 这很疯狂。