2013-09-21 10 views
46

私は自分のアプリケーション(iOS7をターゲットとしています)を構築しましたが、提出前に最後のステップとしてGoogle Analyticsを適用したいと考えています。私が何をしたか:GoogleAnalytics 3.01とXCode 5をリンクできません(必要アーキテクチャx86_64が不足しています)

  1. ダウンロードGAのiOS 3.01
  2. グループに/GoogleAnalytics/Library/のインポートされたコンテンツグループ "GoogleAnalytics" にlibGoogleAnalyticsServices.aインポート "GoogleAnalytics"
  3. 追加ビルドフェーズとスワップビルドの位相libGoogleAnalytics_debug.alibGoogleAnalyticsServices.a
  4. コードブロック#include "GAI.h"と私のを加えました-ファイル。
  5. AppDelegate[GAI sharedInstance]を初期設定してください。

この投稿の下部にある設定のスクリーンショットが添付されています。 私は(両方とも32ビット、デバイスまたはシミュレータのいずれか)を構築しようと、私は、次のリンカエラーを取得:

Undefined symbols for architecture x86_64: 
    "_OBJC_CLASS_$_GAI", referenced from: 
     objc-class-ref in FTVAppDelegate.o 
ld: symbol(s) not found for architecture x86_64 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

どのように私はこの問題を解決するのですか?

UPDATE 1

64ビットのために構築するとき、私はまた、警告

ld: warning: ignoring file .../libGoogleAnalyticsServices.a, missing required architecture x86_64 in file .../libGoogleAnalyticsServices.a (3 slices) 
ld: warning: ignoring file .../SDWebImage.framework/SDWebImage, missing required architecture x86_64 in file .../SDWebImage.framework/SDWebImage (3 slices) 

UPDATE 2

は、このエラーにのみ発生します。私は誤って "アクティブなアーキテクチャのためだけにビルド"をNOに設定しました。これがYESに変更されたとき、私はもう一度ビルドすることができました。これは、アプリケーションが現在iPhone 5Sで動作しないことを意味します。これはまだ問題です。

答えて

70

あなたは間違ったことはしていません。私はかなりGoogleがlibGoogleAnalyticsServices.aのarm64バージョンをまだ提供していないと確信しています。これは本当に迷惑です... Xcode 5GMの公開から数週間が経ちました。

今のところ、armv7、armv7sを構築するか、google analyticsを削除するだけで、頭がズボンから外れるようになるでしょう。

UDATE:最後に固定https://developers.google.com/analytics/devguides/collection/ios/resources

+0

したがって、armv7用にビルドした場合、appよりもarmv7sはPhone 5S上で実行されません。それともPhone 5S用にビルドすることもできますが、私は広告を持たないでしょう。 – WebOrCode

+1

これはiPhone 5S上で動作しますが、電話で利用可能な64ビットアーキテクチャのarm64は利用できません。 –

+0

SDImageManagerフレームワークで同じ問題が見つかりました。 – Karthik

0

プロジェクトには2つのターゲットがある最初のスクリーンショットがあります。 libGoogleAnalyticsServices.aが両方のターゲットに追加されていますか? リンクされたフレームワークはターゲットごとに異なる可能性がありますので、この方法で最も一般的なエラーです... プロジェクトからGAを削除してからClean、Build FolderをクリーンアップしてからXcodeを再起動してGAを再度追加してください=)Yesterday this helped me = )

+0

おかげで、Petro。しかし、私はそれを試しただけで、それは役に立たない。そして、私はそのファイルが正しいターゲットに追加されていることを100%確信しています。 –

+7

あなたのupdate2のためのメモ、x86_64は実際にiPhone 5sのアーキテクチャではありません。それはarm64です。ターゲットアーキテクチャでは、32ビットと64ビットのiOS用の2つのバイナリを生成するための "標準アーキテクチャ(64ビットを含む)"を選択できます。ただし、「標準アーキテクチャ」(armv7、armv7s)を使用して構築すると、アプリケーションはiPhone 5でも動作します.64ビット処理のパフォーマンスが向上しないだけです。また、私はGAの静的なlibはまだ32と64bitのiOSの両方のために構築されていないと思う "arch64のための未定義のシンボル"のようなエラーが発生します。 –

+0

それは私のためにそれをしました。ありがとう! –

13

は、「設定の構築」の建築セクションでは、このオプションを選択し、あなたのコードはiPhone 5S上で実行されます、私は同じ問題がありました。3.03のリリースにより固定

Build Settings

8

グッドニュースの誰もが、:

64ビットのサポートは、iOS用Googleアナリティクス サービスSDKのV3.03で使用できるようになりました。 (Source

関連する問題