iOS アプリケーションへの MobileFirst Foundation SDK の追加

improve this page | report issue

概説

MobileFirst Foundation SDK は、CocoaPods を通じて入手可能な pod の集合で構成されます。この SDK は、Xcode プロジェクトに追加できます。
これらの pod は、次のようなコア機能およびその他の機能に対応しています。

  • IBMMobileFirstPlatformFoundation - クライアントとサーバー間の接続を実装し、認証およびセキュリティーの各側面、リソース要求、およびその他の必要なコア機能を処理します。
  • IBMMobileFirstPlatformFoundationJSONStore - JSONStore のフレームワークを含んでいます。詳しくは、iOS 用 JSONStore に関するチュートリアルを参照してください。
  • IBMMobileFirstPlatformFoundationPush - プッシュ通知のフレームワークを含んでいます。詳しくは、通知に関するチュートリアルを参照してください。
  • IBMMobileFirstPlatformFoundationWatchOS - Apple WatchOSのサポートを含んでいます。

このチュートリアルでは、CocoaPods を使用して MobileFirst ネイティブ SDK を新規または既存の iOS アプリケーションに追加する方法について学習します。また、アプリケーションを認識するように MobileFirst Server を構成する方法についても学習します。

前提条件:

注: XCode 8 を使用してシミュレーターで iOS アプリケーションを実行している間は、キーチェーン共有機能が必須です。

ジャンプ先:

MobileFirst ネイティブ SDK の追加

以下の手順に従って、新規または既存の Xcode プロジェクトに Mobile Foundation ネイティブ SDK を追加し、アプリケーションを MobileFirst Server に登録します。

開始する前に、MobileFirst Server が稼働していることを確認します。
ローカルにインストールされているサーバーを使用する場合: コマンド・ライン・ウィンドウで、サーバーのフォルダーに移動し、コマンド ./run.sh を実行します。

アプリケーションの作成

Xcode プロジェクトを作成するか、または既存のプロジェクト (Swift または Objective-C) を使用します。

SDK の追加

  1. Mobile Foundation ネイティブ SDK は CocoaPods 経由で提供されます。
    • CocoaPods が既に開発環境にインストールされている場合は、ステップ 2 に進みます。
    • CocoaPods がインストールされていない場合は、次のようにしてインストールしてください。
      • コマンド・ライン・ウィンドウを開き、Xcode プロジェクトのルートに移動します。
      • sudo gem install cocoapods コマンドに続けて pod setup コマンドを実行します。注: これらのコマンドは、完了するのに数分かかることがあります。
  2. 次のコマンドを実行します。pod init。これは Podfile を作成します。
  3. 好みのコード・エディターを使用して、この Podfile を開きます。
    • このファイルのコンテンツをコメントにして取り除くか、削除します。
    • 以下の行を追加し、変更を保存します。

      use_frameworks!
      
      platform :ios, 8.0
      target "Xcode-project-target" do
          pod 'IBMMobileFirstPlatformFoundation'
      end
      
      • Xcode-project-target を、Xcode プロジェクトのターゲットの名前に置き換えます。
  4. コマンド・ライン・ウィンドウに戻り、pod install コマンドに続けて、pod update コマンドを実行します。これらのコマンドは、Mobile Foundation ネイティブ SDK ファイルの追加、mfpclient.plist ファイルの追加、および Pod プロジェクトの生成を行います。
    注: コマンドは、完了するのに数分かかることがあります。

    重要: これ以降、プロジェクトを Xcode で開くには、[ProjectName].xcworkspace ファイルを使用してください。[ProjectName].xcodeproj ファイルは使用しないでください。CocoaPods ベースのプロジェクトは、アプリケーション (実行可能ファイル) およびライブラリー (CocoaPods マネージャーがプルするすべてのプロジェクト依存関係) を含むワークスペースとして管理されます。

MobileFirst ネイティブ SDK の手動での追加

次のように、Mobile Foundation SDK を手動で追加することもできます。

Mobile Foundation SDK を手動で追加するには、まず最初に「MobileFirst Operations Console」→「ダウンロード・センター」→「SDK」タブで SDK の .zip ファイルをダウンロードします。

  • Xcode プロジェクト内で、Mobile Foundation フレームワーク・ファイルをプロジェクトに追加します。
    • プロジェクト・エクスプローラーでプロジェクト・ルート・アイコンを選択します。
    • 「ファイル (File)」→「ファイルの追加 (Add Files)」を選択し、前にダウンロードしたフレームワーク・ファイルが含まれているフォルダーに移動します。
    • 「オプション (Options)」ボタンをクリックします。
    • 「必要な場合は項目をコピー (Copy items if needed)」および「追加したフォルダー用のグループを作成 (Create groups for any added folders)」を選択します。
      sf 「必要な場合は項目をコピー (Copy items if needed)」オプションを選択しない場合、フレームワーク・ファイルはコピーされず、元の場所からリンクされます。
    • メイン・プロジェクト (最初のオプション) を選択し、アプリケーション・ターゲットを選択します。
    • 「一般 (General)」タブで、「リンクされたフレームワークおよびライブラリー (Linked Frameworks and Libraries)」に自動的に追加されるフレームワークがあれば除去します。
    • 必須: 「組み込みバイナリー (Embedded Binaries)」で、次のフレームワークを追加します。
      • IBMMobileFirstPlatformFoundation.framework
      • IBMMobileFirstPlatformFoundationOpenSSLUtils.framework
      • IBMMobileFirstPlatformFoundationWatchOS.framework
      このステップを実行すると、これらのフレームワークが「リンクされたフレームワークおよびライブラリー (Linked Frameworks and Libraries)」に自動的に追加されます。
    • 「リンクされたフレームワークおよびライブラリー (Linked Frameworks and Libraries)」で、以下のフレームワークを追加します。
      • IBMMobileFirstPlatformFoundationJSONStore.framework
      • sqlcipher.framework
      • openssl.framework
      • Localizations.bundle
    • 注: これらのステップでは、関連する Mobile Foundation フレームワークをプロジェクトにコピーし、「ビルド・フェーズ (Build Phases)」タブの「バイナリーをライブラリーとリンク (Link Binary with Libraries)」リスト内でこれらのファイルをリンクします。これらのファイルを元のロケーションにリンクする (前の説明のように「必要な場合は項目をコピー (Copy items if needed)」オプションを選択しない) には、以下に説明されているように「フレームワーク検索パス (Framework Search Paths)」を設定する必要があります。
  • ステップ 1 で追加されたフレームワークは、「ビルド・フェーズ (Build Phases)」タブの「バイナリーをライブラリーとリンク (Link Binary with Libraries)」セクションに自動的に追加されます。
  • オプション: 上に記述されているようにフレームワーク・ファイルをプロジェクトにコピーしなかった場合、「ビルド・フェーズ (Build Phases)」タブで、「必要な場合は項目をコピー (Copy items if needed)」オプションを使用して以下の手順を行います。
    • 「ビルド設定 (Build Settings)」ページを開きます。
    • 「検索パス (Search Paths)」セクションを見つけます。
    • フレームワークが含まれているフォルダーのパスを「フレームワーク検索パス (Framework Search Paths)」フォルダーに追加します。
  • 「ビルド設定 (Build Settings)」タブの「デプロイメント (Deployment)」セクションで、「iOS デプロイメント・ターゲット (iOS Deployment Target)」フィールドに 8.0 以上の値を選択します。
  • オプション: Xcode 7 以降、デフォルトでビットコードが設定されるようになりました。制限事項および要件については、『iOS アプリケーションでのビットコードの処理 (Working with bitcode in iOS apps)』を参照してください。ビットコードを無効にするには、以下のようにします。
    • 「ビルド・オプション (Build Options)」セクションを開きます。
    • 「ビットコードを有効にする (Enable Bitcode)」を 「いいえ」に設定します。
  • Xcode 7 以降、TLS の適用が必須になりました。『iOS アプリケーションでの TLS セキュア接続の適用』を参照してください。

アプリケーションの登録

  1. コマンド・ライン・ウィンドウを開き、Xcode プロジェクトのルートに移動します。

  2. 次のコマンドを実行します:

     mfpdev app register
    

    アプリケーションのバンドル ID を指定するよう求められます。重要: バンドル ID は大/小文字が区別されます。

mfpdev app register CLI コマンドは、まず最初に MobileFirst Server に接続してアプリケーションを登録した後、Xcode プロジェクトのルートに mfpclient.plist ファイルを生成し、これに MobileFirst Server を識別するメタデータを追加します。

ヒント: 次のように、MobileFirst Operations Console からアプリケーションを登録することもできます。

  1. MobileFirst Operations Console をロードします。
  2. 「アプリケーション」の横の「新規」ボタンをクリックして、新規アプリケーションを登録し、画面に表示される指示に従います。
  3. アプリケーションが登録されたら、そのアプリケーションの「構成ファイル」タブに移動して、mfpclient.plist ファイルをコピーまたはダウンロードします。画面上に表示される指示に従って、ファイルをプロジェクトに追加します。

セットアップ・プロセスの完了

Xcode で、プロジェクト・エントリーを右クリックし、「ファイルを [プロジェクト名] に追加 (Add Files To [ProjectName])」をクリックし、Xcode プロジェクトのルートに配置されている mfpclient.plist ファイルを選択します。

SDK の参照

Mobile Foundation ネイティブ SDK を使用する場合はいつでも、必ず Mobile Foundation フレームワークをインポートするようにしてください。

Objective-C:

#import <IBMMobileFirstPlatformFoundation/IBMMobileFirstPlatformFoundation.h>

Swift:

import IBMMobileFirstPlatformFoundation


iOS 9 以上に関する注:

Xcode 7 以降、アプリケーション・トランスポート・セキュリティー (ATS) がデフォルトで有効になっています。開発中にアプリケーションを実行する場合、ATS (詳しく読む) を無効にすることができます。

  1. Xcode で、右クリックにより「[プロジェクト]/info.plist ファイル」→「指定して開く」→「ソース・コード」を選択します。
  2. 以下を貼り付けます。
     <key>NSAppTransportSecurity</key>
     <dict>
           <key>NSAllowsArbitraryLoads</key>
           <true/>
     </dict>

Apple watchOS のサポートの追加

Apple watchOS 2 以降用に開発している場合、Podfile には、メイン・アプリケーションおよび watchOS 拡張に対応したセクションが含まれている必要があります。 watchOS 2 の場合の次の例を参照してください。

# Replace with the name of your watchOS application
xcodeproj 'MyWatchApp'

use_frameworks!

#use the name of the iOS target
target :MyWatchApp do
    platform :ios, 9.0
    pod 'IBMMobileFirstPlatformFoundation'
    end

#use the name of the watch extension target
target :MyWatchApp WatchKit Extension do
    platform :watchos, 2.0
    pod 'IBMMobileFirstPlatformFoundation'
end

Xcode プロジェクトが閉じていることを確認して、pod install コマンドを実行します。

MobileFirst ネイティブ SDK の更新

Mobile Foundation ネイティブ SDK を最新リリースで更新するには、コマンド・ライン・ウィンドウで、Xcode プロジェクトのルート・フォルダーから次のコマンドを実行します。

pod update

SDK のリリースは、SDK の CocoaPods リポジトリーで調べることができます。

生成されるMobileFirst ネイティブ SDK 成果物

mfpclient.plist

プロジェクトのルートに配置されているこのファイルは、MobileFirst Server に iOS アプリケーションを登録するために使用される、クライアント・サイドのプロパティーを定義します。

プロパティー 説明 値の例
protocol MobileFirst Server との通信プロトコル。 http または https
host MobileFirst Server のホスト名。 192.168.1.63
port MobileFirst Server のポート。 9080
wlServerContext MobileFirst Server 上のアプリケーションのコンテキスト・ルート・パス。 /mfp/
languagePreferences クライアントの SDK システム・メッセージのデフォルト言語を設定します。 en

ビットコードと TLS 1.2

ビットコードおよび TLS 1.2 のサポートについては、追加情報のページを参照してください。

次に使用するチュートリアル

これで Mobile Foundation ネイティブ SDK が組み込まれたので、以下の作業を行うことができます。

Last modified on April 27, 2017