【问题标题】:Crashlytics error: Undefined symbols for architecture arm64Crashlytics 错误:架构 arm64 的未定义符号
【发布时间】:2015-11-18 22:22:21
【问题描述】:

在我的应用中更新 Fabric Crashlytics 后,我无法再在我的 iOS 设备上运行它。在模拟器上它工作正常。错误是:

架构 arm64 的未定义符号: “_gzopen”,引用自: -[CLSPackageReportOperation compressFile:] 在 Crashlytics (CLSPackageReportOperation.o) “_gzwrite”,引用自: ___42-[CLSPackageReportOperation compressFile:]_block_invoke 在 Crashlytics(CLSPackageReportOperation.o) “_gzclose”,引用自: -[CLSPackageReportOperation compressFile:] 在 Crashlytics (CLSPackageReportOperation.o) ld:未找到架构 arm64 的符号 clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)

【问题讨论】:

标签: ios swift ios7 crashlytics twitter-fabric


【解决方案1】:

解决了。我删除了 Crashlytics.framework 并重新安装它。

【讨论】:

    【解决方案2】:

    对我来说,解决方案是 Build Phases - Link Binary With Libraries add libc++ and works, in my legacy project.

    【讨论】:

      【解决方案3】:

      我在更新在 Xcode 5 之前创建的应用程序时遇到了类似的问题。

      从 Xcode 5 开始,新项目默认启用模块。在我的旧应用程序中,“启用模块”设置为“否”。所以这就是解决方案。

      【讨论】:

        【解决方案4】:

        Crashlytics 和 Fabric 要求您将目标与以下内容相关联:

        • Security.framework
        • SystemConfiguration.framework
        • libc++
        • libz

        只需选择您的目标 -> 构建阶段 -> 将二进制文件与库链接 -> 添加缺少的目标。

        希望对你有所帮助。

        【讨论】:

        • 这行得通。确保您还将它添加到任何测试目标!那是我的问题。
        【解决方案5】:

        我通过将$(inherited) 添加到构建设置中的其他链接器标志解决了这个问题。

        【讨论】:

          【解决方案6】:

          在项目(非目标)信息选项卡中将配置文件设置为无并再次运行pod install

          【讨论】:

            【解决方案7】:

            在此处扩展Ricardo's answer。选择“Build Phases”选项卡,点击“Link Binary With Libraries”旁边的“+”并添加 -

            1. Security.framework
            2. SystemConfiguration.framework
            3. StoreKit.framework
            4. libsqlite3.tbd
            5. libz.tbd
            6. libc++.tbd

            根据 Google,开发人员应使用 Crashlytics via Firebase。从 Firebase v5.16.0 和 Fabric v1.9.0 (Xcode 10.1) 开始,这对我有用。

            【讨论】:

              【解决方案8】:

              我通过添加 $(inherited) $(OTHER_LDFLAGS) -ObjC -l"sqlite3" -l"z" -l"c++" -framework "Crashlytics" -framework "Fabric" -framework "解决了这个问题Security" -framework "SystemConfiguration" -framework "UIKit" 到构建设置中的其他链接器标志。

              【讨论】:

                【解决方案9】:

                我对这个问题的解决方案是:

                对于“发布”也将“仅构建活动架构”更改为“是”。

                可以在选择您的项目>“构建设置”>“目标”(您的目标)>“架构”中找到该设置

                在您的项目目标中执行此操作,并在您的 projectTest 目标中执行此操作

                【讨论】:

                  【解决方案10】:

                  M1 Mac

                  在排除的架构中,在 Target、Test 和您添加的所有库中添加“Any iOS Simulator SDK”-“arm64”。

                  【讨论】:

                    【解决方案11】:

                    我通过从其他链接器标志中删除“导致错误的库”来解决它。

                    【讨论】:

                    • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
                    猜你喜欢
                    • 2014-01-22
                    • 2016-09-08
                    • 1970-01-01
                    • 2013-10-13
                    • 1970-01-01
                    • 2021-12-31
                    相关资源
                    最近更新 更多