Ошибка crashlytics: Undefined символы для архитектуры arm64

После того, как я обновил Fabric Crashlytics в своем приложении, я больше не могу запускать его на своем устройстве iOS. На симуляторе он отлично работает. Ошибка:

Undefined символы для архитектуры 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 для вызова вызова)

введите описание изображения здесь

Ответы

Ответ 1

решаемая. Я удалил Crashlytics.framework и переустановил его.

Ответ 2

Crashlytics и Fabric требуют, чтобы вы связали свою цель со следующим:

  • Security.framework
  • SystemConfiguration.framework
  • LibС++
  • libz

Просто выберите свою цель → Фазы сборки → Связывание двоичных файлов с библиотеками → добавьте отсутствующие.

Я надеюсь, что это помогло.

Ответ 3

У меня возникла аналогичная проблема, когда я обновлял приложение, которое было создано до Xcode 5.

Так как новые проекты Xcode 5 строятся с включенными по умолчанию модулями. В моем старом приложении "Включить модули" установлено значение "Нет". Итак, это было решение.

В настройках сборки установите Enable Modules (C и  Objective-C) на YES

Ответ 4

Я решил эту проблему, просто добавив $(inherited) к другим флагам компоновщика в настройках сборки.

Ответ 5

Для меня решение было: Build Phases - Link Binary With Libraries добавляет libС++ и работает в моем устаревшем проекте.

Ответ 6

Расширяя ответ Рикардо здесь. Выберите вкладку "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 через Firebase. Это работало для меня, начиная с Firebase v5.16.0 и Fabric v1.9.0 (Xcode 10.1).

Ответ 7

На вкладке "Информация о проекте" (не целевой) установите для файла конфигурации значение "none" и снова запустите pod install

Ответ 8

Я решил проблему, добавив $ (унаследованный) $ (OTHER_LDFLAGS) -ObjC -l "sqlite3" -l "z" -l "c++" -framework "Crashlytics" -framework "Fabric" [ CN03] "Безопасность" -framework "SystemConfiguration" -framework "UIKit" для других флагов компоновщика в настройках сборки.