GoogleAnalyticsのiOS SDKをpodspec側のdependencyにすると相性が悪い
GoogleAnalyticsのSDKのラッパーライブラリを作りたい
そのためには、podspec側にdependencyを書いておく必要がある。こんな感じ。
Pod::Spec.new do |s| s.name = 'Example' s.version = '0.1.0' s.summary = 'A short description of Example.' 略 s.dependency 'Google/Analytics' end
これでpod installをするとtransitive dependencyのエラーが出てpod installができなくなってしまう。
原因は、GoogleAnalyticsが提供しているライブラリがFramework形式ではなく、.a
のstatic libraryのため。Google様がどうにかしてくれないとどうしようもない。
swiftの場合、use_frameworks!
が必要なため、ここで詰まってしまう。
回避策、そしてまた別の問題
Podfile側に下記のworkaroundを入れれば回避可能。 https://github.com/CocoaPods/CocoaPods/issues/3289
pre_install do |installer| def installer.verify_no_static_framework_transitive_dependencies; end end
しかし、pod installはうまくいくけどライブラリはリンクされないため結局ライブラリ側ではGAのSDKが利用できない。
リンクさせるためには、下記のようにpodspec側のxcconfigにFRAMEWORK_SEARCH_PATHS
やLIBRARY_SEARCH_PATHS
などを追記していかないといけない。実際は、他にも必要だが何が必要かを探して自分で書いていかないといけない。
s.pod_target_xcconfig = { 'FRAMEWORK_SEARCH_PATHS' => '"${PODS_ROOT}/Google/Frameworks"' }