web-dev-qa-db-ja.com

CocoaPods経由でGoogleアナリティクスを使用している場合、「リンカーコマンドは終了コード1で失敗しました」

Swiftで書かれたiOSアプリにGoogle Analyticsを追加しようとしています。 CocoaPodsを介してフレームワークを追加し、ブリッジングヘッダーを追加したガイドに従いましたが、まだ取得しています:

Linker command failed with exit code 1

私のポッドファイルにはuse_frameworksがあります!だからそれと何か関係があるのだろうか... Analyticsサイトに私が見ることができるものからの追加情報はない。

編集:私は完全なエラーメッセージを表示した後、次が表示されることに気づきました:

ld: '/Users/simon/Programming/VenueNow/Pods/GoogleUtilities/Libraries/libGTM_NSData+zlib.a(GTMNSData+zlib.o)' does not contain bitcode. 
You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode for this target. for architecture arm64

そして、その問題を検索すると、Googleはビットコードをサポートするように更新されましたが、その時点でココアポッドフレームワークは更新されていませんでした。

13

これと同じ問題がありました。幸いなことに、BitCodeを有効にしてGoogleアナリティクスを使用できますが、GoogleがCocoaPodsサポートをどのように設定したかにより、少し混乱します。

実際に使用できるCocoaPodsは2つあります。

  • 'グーグルアナリティクス'
  • 'グーグルアナリティクス'

最初のものは「最新」ですが、より大きなGoogleポッドに関連付けられているため、ビットコードをサポートしていません。 2つ目は分析専用で、BitCodeをサポートします。ただし、後者には追加のGoogleポッドが含まれていないため、設定方法の一部の指示が正しくありません。

アナリティクスを設定するv2メソッドを使用する必要があります。

// Inside AppDelegate:

// Optional: automatically send uncaught exceptions to Google Analytics.
GAI.sharedInstance().trackUncaughtExceptions = true

// Optional: set Google Analytics dispatch interval to e.g. 20 seconds.
GAI.sharedInstance().dispatchInterval = 20

// Create tracker instance.
let tracker = GAI.sharedInstance().trackerWithTrackingId("XX-XXXXXXXX-Y")

GoogleアナリティクスAPIの残りの部分では、v3ドキュメントを使用できます(v2を使用する必要はありません)。

この記事の執筆時点での「Google/Analytics」ココアポッドは、まだBitCodeをサポートしていません。 こちらを参照

9
Hiep Dam

ビルド設定に移動し、今のところターゲットの設定をENABLE_BITCODE = YESに切り替えます。

10
dokun1

この問題はありましたが、ビットコード設定とは関係ありませんでした。 XCodeプロジェクトのFrameworksフォルダーにあるフレームワークファイルが重複してしまいました。赤い(および重複した)フレームワークファイルをすべて削除しました。これにより、「Apple Mach O、リンカーコマンドが終了コード1で失敗しました」エラーが解決されました。

7
lucius degeer

これは私のために働いた:

ターゲットのLinked FrameworksおよびLibrariesセクションからlibPods.aライブラリを削除する必要があります。

5
Aitor Pagán

ポッドを使用する場合は、xCode Projectメニューのプロジェクトファイルではなく、。xcworkspaceファイルを開いてください。これでリンクの問題が解決するはずです。

3
Atlas_Gondal

Xcodeを閉じて、フォルダーの名前を変更します。次に、以前の名前で新しいフォルダーを作成します。プロジェクトを実行し、プロジェクトを停止します。新しいフォルダーを削除し、古いフォルダーの名前を変更して再実行します。

IPad Proシミュレーターはこの問題の影響を受けます。それは私を動揺させ、とても大変な仕事です...うまくいけば、Googleは次のSDKのバグを解決します。

2
dnaatwork.com

静的表記法を使用せずにヘッダーファイルで定数を宣言すると、いくつかの場合があります。このような

const int k = 10;

そのはず:

static const int k = 10;
1
Ahd Radwan

別のオプションがあります... CocoaPodsを使用せずにGoogle Analyticsをインストールします。

https://developers.google.com/analytics/devguides/collection/ios/v3/sdk-download

0
Bisca

ビルド設定>ビットコードを有効にする>いいえ

0
Jasveer

pod deintegrateを使用してココアポッドポッドの痕跡をすべて削除してから、pod installを実行してください

0

「iOS Deployment Target」を「IOS 10.0」から現在の(私の携帯電話の)「iOS 10.2」に変更すると、問題はなくなりました。

建物の設定>展開> iOS展開ターゲット

0
Steve Bay

これは通常、Cocoapodsを使用していて、cocoapodライブラリを知らないxcprojectからビルドしている場合に発生します。

0
iAleksandr

Xcode 7.3でも同じ問題がありました。これは、私の.hファイルと.mファイルの一部が2回追加されたためです。

0
John

ココアポッドを介して再度Analyticsを追加し、ビットコードを無効にしました。

将来のココアポッドバージョンがそれをサポートすることを願っています。

0