web-dev-qa-db-ja.com

Crashlyticsエラー:アーキテクチャarm64の未定義のシンボル

アプリでFabric Crashlyticsを更新した後、iOSデバイスで実行できなくなりました。シミュレーターでは問題なく動作します。エラーは:

アーキテクチャarm64の未定義のシンボル: "_gzopen"、参照先:-[CLSPackageReportOperation compressFile:] in Crashlytics(CLSPackageReportOperation.o) "_gzwrite"、参照元:___ 42- [CLSPackageReportOperation compressFile:] _ block_invoke in Crashlytics(CLSPackageReportOperation.o) "_gzclose "、参照元:-[CLSPackageReportOperation compressFile:] in Crashlytics(CLSPackageReportOperation.o)ld:アーキテクチャー用のシンボルが見つかりませんarm64 clang:エラー:リンカーコマンドが終了コード1で失敗しました(-vを使用して呼び出しを確認してください)

enter image description here

22
mazorati

解決しました。 Crashlytics.frameworkを削除して再インストールしました。

4
mazorati

Crashlyticsとファブリックでは、ターゲットを以下に対してリンクする必要があります。

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

ターゲットを選択するだけです->ビルドフェーズ->バイナリをライブラリにリンクする->欠落しているものを追加します。

お役に立てば幸いです。

47
Ricardo Anjos

ビルド設定で他のリンカーフラグに$(inherited)を追加するだけでこの問題を解決しました。

17
sumit kapoor

Xcode 5以前に作成されたアプリを更新していたときに、同様の問題が発生しました。

Xcode 5以降、新しいプロジェクトはデフォルトで有効になっているモジュールでビルドされます。私の古いアプリでは、「モジュールを有効にする」が「いいえ」に設定されていました。これが解決策でした。

In the Build Settings set Enable Modules (C and Objective-C) to YES

16
coco

私にとっての解決策はビルドフェーズでした-ライブラリとバイナリをリンクすると、私のレガシープロジェクトでlibc ++を追加して機能します。

4
Felipe FMMobile

拡張 リカルドの答え こちら。 「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)の時点で機能しました。

2
raurora

$(inherited)$(OTHER_LDFLAGS)-ObjC -l "sqlite3" -l "z" -l "c ++" -framework "Crashlytics" -framework "Fabric" -framework "Security"を追加して問題を解決しました-framework "SystemConfiguration" -framework "UIKit"ビルド設定の他のリンカーフラグに。

1
Ranjani

Project(not target)Infoタブで、構成ファイルをnoneに設定し、pod install再び

0