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 フレームワークをダウンロードすることもできます。Kii PhotoColle SDK は CocoaPods には非対応のため、併用する場合は Kii Cloud SDK も手動でダウンロードすることをおすすめします。

CocoaPods を利用

  1. CocoaPods の準備

    CocoaPods を利用できる状態にします。設定方法については CocoaPods のガイド を参照してください。

  2. 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 は、ダウンロードしたいファイルのバージョンに書き換えてください。最新版のバージョン番号は、開発者ポータル の "ダウンロード" のリンクより確認できます。

  3. Kii Cloud SDK のダウンロード

    ターミナルを開き、プロジェクトのディレクトリに移動します。

    以下のコマンドを実行して Kii Cloud SDK をダウンロードし、プロジェクトから参照できるようにします。この操作により、Kii Cloud SDK が内部で使用しているフレームワークも自動的に設定されます。

    $ pod install
    

    コマンドの実行が完了すると、ワークスペースファイル(XCWORKSPACE ファイル)が作成されます。このファイルには、プロジェクトと SDK の関係を定義する情報が含まれます。

  4. ワークスペースの再オープン

    Xcode でプロジェクトを閉じて、ワークスペースを開き直します。"File" > "Open" の順に選択し、ワークスペースファイルを含むディレクトリまたはワークスペースファイルを選択して "Open" をクリックします。

    プロジェクトファイルを開いても、SDK は正しく参照されません。Xcode の起動時に表示されるウェルカムウィンドウには直前に開いたプロジェクトファイルが表示されるため、ワークスペースを開き直すときにはご注意ください。

手動で Kii Cloud SDK をダウンロード

  1. SDK のダウンロード

    開発者ポータル の "ダウンロード" のリンクをクリックして、SDK のダウンロードページを開きます。iOS の "Cloud SDK" をダウンロードしてください。

  2. 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 メソッドの呼び出しを削除してください。

  3. フレームワークとライブラリーの追加

    再度 "Linked Frameworks and Libraries" にスクロールダウンします。追加ボタン(+)をクリック後、以下のフレームワークとライブラリーを選択してください。

    • Accounts.framework
    • ImageIO.framework
    • libsqlite3.tbd
    • MobileCoreServices.framework
    • Security.framework
    • Social.framework
  4. "Other Linker Flags" の設定

    以下の手順で "Other Linker Flags" に -ObjC を追加してください。

    まず、Xcode のプロジェクトエディターでターゲットを選択した後、"Build Settings" タブをクリックします。

    "Linking" 配下にある "Other Linker Flags" 設定までスクロールダウンするか、検索バーに "Other Linker Flags" と入力します。

    "Other Linker Flags" の値を $(OTHER_LDFLAGS) -ObjC に設定します。

  5. "Enable Modules (C and Objective-C)" が有効であることを確認

    "Apple LLVM X.X - Langauge - Modules" 設定までスクロールダウンするか、検索バーに "Enable Modules (C and Objective-C)" と入力します。

    設定が無効になっている場合は、値を Yes に設定して有効にします。

  6. "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" をオンに設定します。

プログラムの記述

  1. ヘッダーの読み込み

    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;
    
  2. 下記のコードを、AppDelegate の application(_:didFinishLaunchingWithOptions:) メソッドに追加します。

    Swift 3:

    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___ には任意の値を設定してください。 また Site は、開発者ポータルで指定したサーバー設置場所に合わせ kiiSiteJPkiiSiteUSkiiSiteCN3kiiSiteSG、または kiiSiteEU のいずれかを設定してください。

    AppID をモバイルアプリに埋め込んでも、アクセス制御を正しく行えば安全性は確保できます。詳細は、セキュリティ をご覧ください。