Cocoapodsを使用して、iOSプロジェクトにGoogleアナリティクスを統合しようとしています。ただし、プロジェクトに構成ファイルを追加するまでの手順で this を実行した後、AppDelegateにGoogle/Analytics.hをインポートすると、ファイルが見つからないというエラーが発生します。次のものを試してみました:
ビルド設定のユーザーヘッダー検索パスに$(SRCROOT)/Pods/GoogleAnalytics
を追加しました。
ビルドフェーズでバイナリとライブラリをリンクするlibGoogleAnalyticsServices.a
を追加しました。
その他のリンカーフラグに-lGoogleAnalyticsServices
を追加しました。
Cocoapodsを使わないようにするため、2と3を実行したくない。
正確には何が欠けていますか?
これをPodfileに追加します:_pod 'Google/Analytics'
_次に_pod install
_。
うまくいくはずです。これで、ドキュメントで提案されているように、単にGoogle/Analytics.hをインポートできます。
_#import <Google/Analytics.h>
_
私が遭遇した問題の2つのセットがありました:
不適切な推奨ポッドバージョン(1.0.0)を使用すると、64ビットの互換性の問題がありました。 (ld: symbol(s) not found for architecture arm64
)
他のポッド(GoogleAnalytics-iOS-SDKおよびGoogleAnalytics)を使用すると、_<Google/Analytics.h>
_ヘッダーファイルが見つからないという苦情がありました。 (_"Google/Analytics.h" not found
_)
私はこの紳士の投稿を見つけました メーリングリストで これは、バージョン番号のないGoogle/Analyticsポッドを提案しました。 (上記のように_pod 'Google/Analytics'
_。)
Swift
バージョン3.17.0(Podfileのポッド 'GoogleAnalytics'を使用してインストール)の場合:
#import <GoogleAnalytics/GAI.h>
ブリッジヘッダーファイル編集: jeremy piednoelのコメントによると、
#import <GoogleAnalytics/GAIDictionaryBuilder.h>
#import <GoogleAnalytics/GAIFields.h>
これはココアポッドのバグです。
$(SRCROOT)/ Pods/Googleおよび$(SRCROOT)/ Pods/GoogleAnalyticsをユーザーヘッダーの検索パスに再帰オプションで追加する必要があります。
次に、#importの代わりに#import "Analytics.h"を含めます
ビルド設定のユーザーヘッダー検索パスに$(SRCROOT)/Pods/GoogleAnalytics
を追加する場合は、recursive
オプションも選択します。プロジェクトでGoogleAnalytics
とそのすべてのサブディレクトリを検索できるようになります。
更新:チュートリアルを試しましたが、追加の手順を実行しなくても問題なく動作します。私のポッドバージョンは0.35.0です。設定ファイルを作成するときは、必ずGoogleAnalyticsサービスを有効にしてください。
更新:@RajatTalwarが指摘したように、再帰オプションで$(SRCROOT)/ Pods/Googleを追加する必要もあります。次に、#importの代わりに#import "Analytics.h"を含めます。
他の誰かが#import <Google/Analytics.h>の試行でエラーが発生し、オンラインの他のソリューションが役に立たない場合は、先に読んでください。
私はこの問題を抱えていましたが、私が見つけた解決策のどれもそれを修正しませんでした。その後、ターゲットの1つは機能し、もう1つは機能しないことに気付き(同じプロジェクトに2つある)、2つのターゲットの違いを追跡しようとしました。
2番目のターゲット(機能したターゲット)にはiPhoneとiPadの個別のオプションがありましたが、最初のターゲットにはなかった、展開情報の下の[全般]タブのプロジェクトに違いがあることに気付きました。オンラインの誰かが、ターゲットを複製したときにこれらの2つの新しいオプションを受け取ったと述べました。私の2番目のターゲットも、最初のターゲットの複製でした。
長い話を短くします、ターゲットを複製すると、その複製が突然機能するようになったことがわかりました。これらの個別のiPhoneおよびiPadオプションも魔法のように登場しました。プロジェクトのターゲットが標準的ではなく、問題を引き起こしていたと思います。おそらく、このプロジェクトがずっと前に作成されたためです。
次に、元のターゲットを削除し、新しいターゲットの名前を同じ名前に変更しましたが、plistファイルに関連するビルド設定で必要なクリーンアップ作業がありました(copy.plistファイルを作成しました)。
これが誰かを助けることを願っています。
また、これは私の終わらない話のようです。上記の提案はどれも役に立ちませんでした。 pod install
からこのあいまいなメッセージを受け取りました
[!] The `blabla [Release]` target overrides the `HEADER_SEARCH_PATHS` build setting defined in `Pods/Target Support Files/Pods-blabla/Pods-blabla.release.xcconfig'. This can lead to problems with the CocoaPods installation
最後に、project.pxbproj
を調べたところ、次のエントリがあることがわかりました。
HEADER_SEARCH_PATHS = "";`
明らかにこれは「定義済み」として扱われるため、次のように変更しました
HEADER_SEARCH_PATHS = "$(inherited)";
とブーム-Googleが提案したすべての作業が含まれています
#import <GoogleAnalytics/GAI.h>
#import <GoogleAnalytics/GAIDictionaryBuilder.h>
#import <GoogleAnalytics/GAIFields.h>
複数のターゲットがあるかどうかを確認します。この場合、ポッドファイルにポッド 'Google/Analytics' foreachターゲットを追加します。
def google_pods
pod 'Google/Analytics'
end
target 'target 1' do
google_pods
end
target 'target 2' do
google_pods
end
target 'target N' do
google_pods
end