Kii Cloud SDK の導入手順
Xcode 上で Kii Cloud を利用するために必要な設定を行います。
Kii Cloud SDK for iOS は Objective-C と Swift をサポートしています。詳細は、サポートされる言語 を参照してください。
SDK の組み込み
プロジェクトから Kii Cloud SDK を参照できるようにします。これには以下の 2 通りの方法があります。
- CocoaPods を利用
- 手動で Kii Cloud SDK をダウンロード
CocoaPods 方式の利用を推奨しますが、開発者ポータルから手動で Kii SDK フレームワークをダウンロードすることもできます。
CocoaPods を利用
CocoaPods の準備
CocoaPods を利用できる状態にします。設定方法については CocoaPods のガイド を参照してください。
Podfile の準備
Xcode のプロジェクトファイル(XCODEPROJ ファイル)と同じディレクトリに、以下のファイルを
Podfile
という名前で作成します。use_frameworks! target '__TargetName__' do pod 'KiiCloud', 'XX.YY.ZZ' end
__TargetName__
にはプロジェクト名を指定します。プロジェクト名は、次のスクリーンショットのように Xcode 上で確認できます。pod 'KiiCloud', 'XX.YY.ZZ'
のバージョン部分XX.YY.ZZ
は、ダウンロードしたいファイルのバージョンに書き換えてください。最新版のバージョン番号は、開発者ポータル の "ダウンロード" のリンクより確認できます。Kii Cloud SDK のダウンロード
ターミナルを開き、プロジェクトのディレクトリに移動します。
以下のコマンドを実行して Kii Cloud SDK をダウンロードし、プロジェクトから参照できるようにします。この操作により、Kii Cloud SDK が内部で使用しているフレームワークも自動的に設定されます。
$ pod install
コマンドの実行が完了すると、ワークスペースファイル(XCWORKSPACE ファイル)が作成されます。このファイルには、プロジェクトと SDK の関係を定義する情報が含まれます。
ワークスペースの再オープン
Xcode でプロジェクトを閉じて、ワークスペースを開き直します。"File" > "Open" の順に選択し、ワークスペースファイルを含むディレクトリまたはワークスペースファイルを選択して "Open" をクリックします。
プロジェクトファイルを開いても、SDK は正しく参照されません。Xcode の起動時に表示されるウェルカムウィンドウには直前に開いたプロジェクトファイルが表示されるため、ワークスペースを開き直すときにはご注意ください。
手動で Kii Cloud SDK をダウンロード
SDK のダウンロード
開発者ポータル の "ダウンロード" のリンクをクリックして、SDK のダウンロードページを開きます。iOS の "Cloud SDK" をダウンロードしてください。
SDK の組み込み
ダウンロードした SDK の ZIP ファイルを Xcode のプロジェクト配下のディレクトリに展開します。
展開後、Xcode のプロジェクトエディターでターゲットを選択した後に "General" タブをクリックします。
"Embedded Binaries" までスクロールダウンした後、追加ボタン(+)をクリックします。
"Add Other" ボタンを選択した後に、ZIP ファイル展開先の
KiiSDK.framework
ディレクトリを選択してください。次に、"Linked Frameworks and Libraries" までスクロールダウンした後、追加ボタン(+)をクリックします。
"Add Other" ボタンを選択した後に、ZIP ファイル展開先の
KiiSDK.framework
ディレクトリを選択してください。Version 2.2.0 より Analytics SDK が統合されています。バージョンアップした場合、統合前の
KiiAnalytics.framework
が残っているとエラーになるため、削除してください。また、既存コードから#import <KiiAnalytics/KiiAnalytics.h>
と KiiAnalytics のbeginWithID
メソッドの呼び出しを削除してください。フレームワークとライブラリーの追加
再度 "Linked Frameworks and Libraries" にスクロールダウンします。追加ボタン(+)をクリック後、以下のフレームワークとライブラリーを選択してください。
- Accounts.framework
- ImageIO.framework
- libsqlite3.tbd
- MobileCoreServices.framework
- Security.framework
- Social.framework
"Other Linker Flags" の設定
以下の手順で "Other Linker Flags" に
-ObjC
を追加してください。まず、Xcode のプロジェクトエディターでターゲットを選択した後、"Build Settings" タブをクリックします。
"Linking" 配下にある "Other Linker Flags" 設定までスクロールダウンするか、検索バーに "Other Linker Flags" と入力します。
"Other Linker Flags" の値を
$(OTHER_LDFLAGS) -ObjC
に設定します。"Enable Modules (C and Objective-C)" が有効であることを確認
"Apple LLVM X.X - Langauge - Modules" 設定までスクロールダウンするか、検索バーに "Enable Modules (C and Objective-C)" と入力します。
設定が無効になっている場合は、値を Yes に設定して有効にします。
"Run Script" の追加
"Build Phases" タブを開き、メニューから "New Run Script Phase" を選択します。
新しく追加された "Run Script" を開き、下記のスクリプトを指定します。
APP_PATH="${TARGET_BUILD_DIR}/${WRAPPER_NAME}" # This script loops through the frameworks embedded in the application and # removes unused architectures. find "$APP_PATH" -name '*.framework' -type d | while read -r FRAMEWORK do FRAMEWORK_EXECUTABLE_NAME=$(defaults read "$FRAMEWORK/Info.plist" CFBundleExecutable) FRAMEWORK_EXECUTABLE_PATH="$FRAMEWORK/$FRAMEWORK_EXECUTABLE_NAME" echo "Executable is $FRAMEWORK_EXECUTABLE_PATH" EXTRACTED_ARCHS=() for ARCH in $ARCHS do echo "Extracting $ARCH from $FRAMEWORK_EXECUTABLE_NAME" lipo -extract "$ARCH" "$FRAMEWORK_EXECUTABLE_PATH" -o "$FRAMEWORK_EXECUTABLE_PATH-$ARCH" EXTRACTED_ARCHS+=("$FRAMEWORK_EXECUTABLE_PATH-$ARCH") done echo "Merging extracted architectures: ${ARCHS}" lipo -o "$FRAMEWORK_EXECUTABLE_PATH-merged" -create "${EXTRACTED_ARCHS[@]}" rm "${EXTRACTED_ARCHS[@]}" echo "Replacing original executable with thinned version" rm "$FRAMEWORK_EXECUTABLE_PATH" mv "$FRAMEWORK_EXECUTABLE_PATH-merged" "$FRAMEWORK_EXECUTABLE_PATH" done
プロジェクトの設定
Xcode 上で以下の設定を行います。
ビルドの設定
Xcode の設定で、Deployment target にサポートする OS の最低バージョンを設定します。Kii Cloud SDK Version 2.1.30 以降では 8.0 以上に設定します。
iOS シミュレータでテストする場合、Xcode のバグによりエラーが発生することがあります。Kii Cloud SDK for iOS ではキーチェーンを使用しているため、シミュレータを使う場合に限り、"Keychain Sharing" をオンに設定します。
プログラムの記述
ヘッダーの読み込み
Swift:
Kii SDK を利用する全てのファイルに、以下の行を追加します。
import KiiSDK
注意:v2.6.0 以前の Kii SDK では Swift 利用のためにブリッジングヘッダーを用意する必要がありましたが、v2.6.0 以降の Kii SDK ではこれが不要になりました。
Objective-C:
Kii SDK を使用するすべてのファイルに、下記のヘッダーを追加します。
#import <KiiSDK/Kii.h>
次のように
@import
モジュールを使うこともできます。@import KiiSDK;
下記のコードを、AppDelegate の
application(_:didFinishLaunchingWithOptions:)
メソッドに追加します。Swift:
private func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [AnyHashable: Any]?) -> Bool { // Initialize the Kii Cloud SDK. Call this method before any other Kii SDK API calls. Kii.begin(withID: "___APPID___", andKey: "___APPKEY___", andSite: KiiSite.JP) // Override point for customization after application launch. return true }
Objective-C:
// Application startup - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Initialize the Kii Cloud SDK. Call this method before any other Kii SDK API calls. [Kii beginWithID:@"___APPID___" andKey:@"___APPKEY___" andSite:kiiSiteJP]; return YES; }
ここで、
___APPID___
には開発者ポータルにて取得した AppID を、___APPKEY___
には任意の値を設定してください。AppID をモバイルアプリに埋め込んでも、アクセス制御を正しく行えば安全性は確保できます。詳細は、セキュリティ をご覧ください。