Xcode 6归档并在向目标添加"共享扩展"时获取警告"跳过复制阶段条,二进制代码已签名"

Kon*_*ool 16 xcode ios ios8-share-extension

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

旧问题没有提供和洞察力来纠正这一点.所以我决定再问一次. 存档期间的警告在Xcode 6中使用iOS 8扩展的应用程序

有人可以解释为什么会这样吗?是因为扩展目标已经过代码签名了吗?如果是这样,如何解决?

我知道将"复制期间调试符号"设置为"否"可以清除此警告.但它实际上并没有解决问题.没有"剥离调试符号"的缺点是什么?因为无论我将其设置为YES还是NO,我的存档大小仍然相同

Mon*_*eur 21

不要关闭Strip Debug Symbols During Copy您的应用程序项目.这将使您的应用程序膨胀(如果您有其他未签名的依赖项).

之所以发生这种情况,是因为构建应用程序项目会尝试剥离框架,但由于框架已经过编码,因此无法实现.但是,框架在构建期间已经被剥离,因此警告是无害的.Xcode似乎没有检测到已经剥离了编码签名的框架.

你应该保持原样.

  • 我认为你很困惑[`COPY_PHASE_STRIP`](https://developer.apple.com/library/ios/documentation/DeveloperTools/Reference/XcodeBuildSettingRef/1-Build_Setting_Reference/build_setting_ref.html#//apple_ref/doc/uid/TP40003931 -CH3-SW143)(在Xcode构建设置中显示为"复制期间剥离调试符号")和[`STRIP_INSTALLED_PRODUCT`](https://developer.apple.com/library/ios/documentation/DeveloperTools/Reference/XcodeBuildSettingRef/ 1-Build_Setting_Reference/build_setting_ref.html#// apple_ref/doc/uid/TP40003931-CH3-SW4)("剥离链接产品"). (2认同)
  • 前者仅影响*复制的二进制文件*,而不影响链接的产品本身.从文档:"是:复制的二进制文件被剥离调试符号.这不会导致链接器生成的二进制文件被剥离.使用`STRIP_INSTALLED_PRODUCT`让链接器剥离二进制文件." (2认同)
  • 在我看来,丹尼尔就在这里。现在 Xcode 项目的默认设置是将 COPY_PHASE_STRIP 设置为 NO,以用于调试和发布。但对于调试和发布,STRIP_INSTALLED_PRODUCT 均设置为 YES。此设置会消除错误,并仍然删除版本的调试信息。 (2认同)

Lui*_*rbe 12

"编译代码通常包含调试信息.这些调试内容有助于检查调试器中运行的代码,但对于您在分发版本中提供的优化代码则更少.因此,在执行存档构建时会被删除.

这里的问题是PBXCp无法从已签名的二进制文件中删除调试符号,因为这会使数字签名无效.因此,如果你有一个在Xcode 6.3之前创建的项目,你现在会得到这样的警告.

要修复警告,只需将两个值都更改为NO.删除它们不起作用,因为两者的默认值仍为YES.Xcode 6.3附带的项目模板默认关闭.只有使用旧模板启动的项目在发布行上仍然为YES."

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


小智 9

我知道,我遇到了相同的警告并通过在包含应用程序(不是扩展名)的构建设置中将"在复制期间调试符号"设置为"否"来解决它.

另一方面,更改扩展名的相同设置无效.这清楚地表明了警告的实际含义.也就是说,剥离符号并不意味着"目标"的符号将被条带化,但确实意味着目标将尝试剥离"嵌入式二进制文件"的符号.

因此,我相信警告的实际含义是Xcode无法在归档容器应用程序时删除扩展二进制文件的调试符号,因为需要嵌入容器应用程序中的扩展二进制文件"已经"已编译并且在Xcode尝试在归档容器应用程序时删除扩展二进制文件的符号之前通过代码签名冻结.

看起来Xcode的默认构建设置与条带化嵌入式扩展二进制文件的调试符号相关,需要正确更新才能显示此警告.

  • 将"复制期间的条带调试符号"设置为"否",是否存在为应用程序的某些组件发送调试符号的风险? (5认同)