Xcode Archive 调试条错误
Posted
技术标签:
【中文标题】Xcode Archive 调试条错误【英文标题】:Xcode Archive debug strip errors 【发布时间】:2012-07-31 15:02:14 【问题描述】:我正在尝试将大型遗留 C++ 库与 ios 应用程序集成。我们能够在设备上构建和运行,但我们无法存档应用程序。存档失败并出现以下错误。
命令 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/strip 失败,退出代码为 1
我在试纸条上做了一个“-v”,得到了一系列类似于
的警告/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/strip:不能被剥离的重定位条目引用的符号: /MyApp/DerivedData /SmartMusic_iPad/Build/Intermediates/ArchiveIntermediates/MyApp/IntermediateBuildFilesPath/UninstalledProducts/libMyLib-iOS.a(MyWhatever.o)
尚不清楚此消息是警告还是失败的原因。条带输出中没有其他问题迹象。有什么线索吗?
【问题讨论】:
【参考方案1】:在静态库目标的构建设置下,为“部署后处理”和“在复制期间去除调试符号”选择否。它是编译后的代码,因此不需要剥离符号。 我遇到了同样的错误('usr/bin/strip failed with exit code 1'),这为我解决了。
【讨论】:
【参考方案2】:在我的情况下,我将以下内容添加到我的库目标构建设置并开始正常工作:
死代码剥离:否
在复制期间去除调试符号:所有配置均否
条带样式:非全局符号
【讨论】:
【参考方案3】:Xcode 中默认的Strip Style
是All Symbols
,这对于可执行文件是可以的,但对于库,您需要将其设置为Non-Global Symbols
,因为必须保留全局符号。
由于剥离仅作为部署后处理的一部分进行,因此调试构建通常不受此选项的影响,因为对于它们,设置 DEPLOYMENT_POSTPROCESSING 通常设置为 NO。但是,在归档时,您会创建一个发布版本,并且此处的 DEPLOYMENT_POSTPROCESSING 默认设置为 YES,因此您需要设置正确的条形样式。
【讨论】:
【参考方案4】:strip
有不同的选项(请参阅manpage),我认为您会想要使用-r
选项。您可以在 Xcode 项目设置中设置剥离的类型。看看您是否可以将 Xcode 中的选项与手册页中的选项相关联。
【讨论】:
注意:您可以通过 Build Settings 中的“Additional Strip Flags”选项显式设置 strip 的命令行参数。不幸的是,带“-r”的剥离仍然失败。【参考方案5】:我有同样的问题,但我将DEPLOYMENT POSTPROCESSING
编辑为NO
但它不起作用。
我刚刚转到目标中的Build Phases
选项卡,在Copy Bundle Resources
中删除了Foundation.framework
,然后我将Foundation.framework
添加到Link Binary With Libraries
,它对我有用!
希望这能解决您的问题!
【讨论】:
【参考方案6】:对我有用的是,当我决定修复 Xcode 10.1 中的另一个问题时,我的模拟器没有启动,直到我真正需要它时我才忽略它,运行下面的命令有助于解决这个问题
sudo chmod 1777 /private/tmp
【讨论】:
【参考方案7】:我通过释放更多空间来修复此错误
【讨论】:
【参考方案8】:在 Xcode 11.5 上,我通过在 Framework 目标的 Build Settings
中将 Strip Linked Product
设置为 No
解决了这个问题。
【讨论】:
【参考方案9】:尝试设置 STRIP_INSTALLED_PRODUCT 为您的目标(您遇到错误的目标)构建设置设置为否。 如果这不起作用,请尝试以下选项以及上述选项
死代码剥离:否 在复制期间去除调试符号:所有配置均否 条形样式:非全局符号希望这能解决您的问题。
【讨论】:
这是 2 年前给出的另一个答案的副本以上是关于Xcode Archive 调试条错误的主要内容,如果未能解决你的问题,请参考以下文章
IOS:PNG文件包含无效签名:XCode/Organizer/Archive/Validate中的Icon.png
archive的时候报“ no identity found"错误 解决方式
为啥 Xcode 12.5 `xcodebuild -archive` 抱怨在没有 AppClip 的应用程序中缺少 appclip 权利?