[Xcode6] Swiftの自作FrameworkにGoogle Analytics SDKを組み込んでみる

広告:超オススメUnity Asset
  広告:超オススメUnity Asset

以前作ってみた自作のCocoa Touch Framework(言語はSwift)(プロジェクト名を「JiminyCricket」と命名してます)に、まずは「Google Analytics SDK for iOS」を組み込んでみたのでMEMOしておきます。

通常のアプリに組み込んでいるのではなく、自作フレームワークに組み込んでいるので、若干やり方が違うようです。Beta3か4あたりからブリッジヘッダーは使わなくなったらしいですね。これも今後仕様が変わっていく可能性があるので注意です。

※ このMEMOは、有料iOSデベロッパー向けに公開されているベータ版「Xcode 6.2 beta 4」を使っています。Xcode6.1.xではこの通りに動かないかもしれません。

00

このMEMOでは、スクリーンショットベースにさらっとMEMOします。もう少し細かな流れは、以下のMEMOも見てみて下さい。

Frameworkプロジェクト側

こちらのプロジェクトは、例として「JiminyCricket」と名付けています。

Google Analytics SDK for iOSをダウンロードして(現時点ではversion3.10)プロジェクトに追加。追加した内容は画像の通りです。ブリッジヘッダーファイルを用意することなく、Frameworkを作成した際に作られているヘッダーファイル(この例では、JiminyCricket.h)に
#import "GAI.h"
#import "GAIDictionaryBuilder.h"
#import "GAIFields.h"
を書き加えました。

01

プロジェクトの「Build Phase」のところ「Binary With Libraries」はこのようになっています。Headersのところ「Project」というところにGoogle Analytics SDKのヘッダーファイルが一覧されていましたが、このままだとビルド時にエラーになるため、Publicに移動しました。

02

「PTGooleAnalytics.swift」と名付けたクラスファイルを別途作りました。そこにpublicメソッドをこのように書いてみました。「initGoogleAnalytics」というメソッドにトラックIDとスクリーン名を引数で渡すとその時点で一度だけGoogle Analyticsに通信するようなものです。これでユーザが起動したことがわかるような仕掛けですね。trackというメソッドも用意しましたがこれは特に何もしていません。(スクリーンショットに残ったままでした)

03

Frameworkを使うアプリ側

こちらのプロジェクトは、例として「WoodenHead」と名付けています。

アプリが起動して最初に現れる真っ白な画面で「viewDidLoad」が呼ばれるので、そこに自作フレームワークを呼び出す内容を書いてみました。ここでやったやり方で、JiminyCricketを読み込んで、ViewController.swift最初に「import JiminyCricket」と書くと、「PTGoogleAnalytics.initGoogleAnalytics」と書こうとするとコードヒントが出てきてくれます。

第一引数にトラッキングID(自分のGoogleAnalyticsのサイトで調べる必要があります)と第二引数にスクリーン名(こちらは自由な文字列)を付け加えて呼び出します。実行するとFramework内のコメントが出力されます。

04

GoogleAnalyticsのサイトでリアルタイム表示して「現在1」が現れたら成功です。うまくでてこない場合は、いろいろな原因が考えられますが、僕の場合、エラーなしで無反応だった時に、iOSシミュレーターをリセット「Reset Content and Settings…」したらうまく行ったことがありました。

05

[追記:] つづき

[Xcode6] 自作Frameworkを実機で動くようにしてみる