【问题标题】:Xcode Archive debug strip errorsXcode Archive 调试条错误
【发布时间】: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)

尚不清楚此消息是警告还是失败的原因。条带输出中没有其他问题迹象。有什么线索吗?

【问题讨论】:

    标签: ios xcode strip


    【解决方案1】:

    在静态库目标的构建设置下,为“部署后处理”和“在复制期间去除调试符号”选择否。它是编译后的代码,因此不需要剥离符号。 我遇到了同样的错误('usr/bin/strip failed with exit code 1'),这为我解决了。

    【讨论】:

      【解决方案2】:

      在我的情况下,我将以下内容添加到我的库目标构建设置并开始正常工作:

      • 死代码剥离:否

      • 在复制期间去除调试符号:所有配置均否

      • 条带样式:非全局符号

      【讨论】:

        【解决方案3】:

        Xcode 中默认的Strip StyleAll 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 年前给出的另一个答案的副本
                  猜你喜欢
                  • 2019-11-28
                  • 2012-08-12
                  • 1970-01-01
                  • 1970-01-01
                  • 2010-11-20
                  • 1970-01-01
                  • 2014-06-16
                  • 1970-01-01
                  • 1970-01-01
                  相关资源
                  最近更新 更多