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 IBMMobileFoundationSwift


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 が組み込まれたので、以下の作業を行うことができます。

Inclusive terminology note: The Mobile First Platform team is making changes to support the IBM® initiative to replace racially biased and other discriminatory language in our code and content with more inclusive language. While IBM values the use of inclusive language, terms that are outside of IBM's direct influence are sometimes required for the sake of maintaining user understanding. As other industry leaders join IBM in embracing the use of inclusive language, IBM will continue to update the documentation to reflect those changes.
Last modified on November 27, 2019