当我向项目添加共享扩展并将其归档时,我收到了此警告 警告:跳过复制阶段条带,二进制代码签名:/ Users / xxxx / xxx / xxxx / Build / xxxx / Build / Intermediates / ArchiveIntermediates / xxxx / IntermediateBui ldFilesPath / UninstalledProducts / XXX.appex / XXXX
旧问题没有提供和洞察力来纠正这一点。所以我决定再问一次。 Warning during archive App with iOS 8 Extension in Xcode 6
有人可以解释为什么会这样吗?是因为扩展目标已经过代码签名了吗?如果是这样,如何解决?
我知道将“复制期间调试符号”设置为“否”可以清除此警告。但它实际上并没有解决问题。没有“剥离调试符号”的缺点是什么?因为无论我将其设置为YES还是NO
,我的存档大小仍然相同答案 0 :(得分:21)
在您的应用项目中不禁用Strip Debug Symbols During Copy
。这将使您的应用程序膨胀(如果您有其他未签名的依赖项)。
发生这种情况是因为构建应用程序项目会尝试剥离框架,但由于框架已经进行了编码,因此无法实现。但是,框架在构建期间已经被剥离,因此警告是无害的。 Xcode似乎没有检测到已经剥离了编码签名的框架。
你应该保持原样。
答案 1 :(得分:11)
"编译代码通常包含调试信息。这个调试的东西是 有助于检查调试器中的运行代码,但对于调试器来说则不那么有用 您将在分发版本中发布的优化代码。因此它 在进行存档构建时被剥离。
这里的问题是PBXCp无法去除调试符号 来自已签名的二进制文件,因为这会使数字无效 签名。因此,如果您有一个在Xcode 6.3之前创建的项目 你现在会得到这样的警告。
要修复警告,只需将两个值都更改为NO。删除它们 不起作用,因为两者的默认值仍为YES。该项目 Xcode 6.3附带的模板默认关闭这些模板。 只有使用旧模板启动的项目仍然具有YES 发布行。"
来源:https://www.cocoanetics.com/2015/04/skipping-copy-phase-strip/
答案 2 :(得分:9)
我遇到了同样的警告并通过在复制期间设置"剥离调试符号来解决它"到"否"正如您所知,在包含应用程序的构建设置(不是扩展名)中。
另一方面,更改扩展名的相同设置无效。这清楚地表明了警告的实际含义。也就是说,剥离符号并不意味着目标符号"将是条纹,但确实意味着目标将尝试剥离嵌入二进制文件的符号"。
因此,我认为警告的实际含义是Xcode在归档容器应用程序时无法删除扩展二进制文件的调试符号,因为扩展二进制文件需要嵌入容器app& #34;是"在Xcode尝试在归档容器应用程序时删除扩展二进制文件的符号之前,已经通过代码签名编译和冻结。
似乎Xcode的与嵌套扩展二进制文件的条带调试符号相关的默认构建设置需要正确更新,以免显示此警告。
答案 3 :(得分:1)
在我的情况下与2个AppIcons有关(我忘了填充它们),检查你是否在xxx.xcassets文件中有正确的xxpt的所有AppIcons。 从这里,我请求Apple改进此检查或启用自动工具来完成所有AppIcons设置。这太疯狂了。
答案 4 :(得分:1)
如果您使用的是Xcode 9.34.1,请在项目设置中单击。使用过滤器查找正确的设置:键入“ strip debug”。您将找到设置COPY_PHASE_STRIP。可能设置为“是”。设置为“否”以删除警告。