進行状況の追跡を始めよう
Trailhead のホーム
Trailhead のホーム

既存のプロジェクトへの Mobile SDK の追加

学習の目的

この単元を完了すると、次のことができるようになります。

  • CocoaPods を使用して add.Mobile SDK を既存の iOS ネイティブアプリケーションに追加する。
  • CocoaPods を使用して iOS ネイティブアプリケーション用の既存の Mobile SDK アプリケーションを更新する。
  • Mobile SDK pod が相互に連動するしくみを理解する。

CocoaPods と Mobile SDK の使用

Mobile SDK を使用して既存の iOS アプリケーションをアップグレードする場合、この単元は、CocoaPods を使用して既存のモジュールと Mobile SDK モジュールをマージするために役立ちます。CocoaPods の使用を開始するには、https://cocoapods.org/ を参照してください。
メモ

メモ

CocoaPods はサードパーティのオープンソースの連動関係マネージャです。Mobile SDK でサポートされ、forceios では必須ですが、iOS での Mobile SDK 開発には必須ではありません。手動のプロジェクト手順へのリンクは、このページの最後にある「リソース」を参照してください。

Mobile SDK 4.0 以降、forceios は CocoaPods を使用してプロジェクトを作成します。開発者が CocoaPods を手動で使用して Mobile SDK を既存の iOS アプリケーションに追加することもできます。

Mobile SDK には、Mobile SDK モジュールごとに CocoaPods pod の仕様 (podspecs) が用意されています。

  • SalesforceSDKCore — OAuth、パスコード、ネットワーク、REST API を実装します。他のどの pod も直接的または間接的にこの pod と連動します。
  • SmartStore — セキュアなオフラインストレージを実装します。SalesforceSDKCore と連動します。
  • SmartSync Data Framework — オフライン同期を実装します。SmartStore と連動します。
  • SalesforceAnalytics — Mobile SDK の機能の使用状況と人気度に関する Salesforce 匿名統計を送信するレポートメカニズムを実装します。
  • SalesforceSDKCommon — SDK 全体で共有されるユーティリティです。
次の図は、仕様間の連動関係を示しています。この図では、連動する側の仕様から連動される側に向かって矢印が伸びています。
SalesforceMobileSDK-iOS.podspec サブ仕様の連動関係
pod を宣言すると、その pod の連動関係チェーンのすべてを自動的に取得します。たとえば、SmartSync Data Framework の pod を宣言すると、SmartStore pod と SalesforceSDKCore pod を自動的に取得します。このショートカットは、本番 pod にのみ適用されます。

CocoaPods を通じて現在の Mobile SDK リリースを使用する手順は、次のとおりです。

  1. www.cocoapods.org の説明に従って cocoapods Ruby gem がインストールされていることを確認します。Mobile SDK 7.1 は pod バージョン 1.2 ~ 1.6 を受け入れます。
  2. プロジェクトの Podfile で、SalesforceMobileSDK-iOS-Specs リポジトリをソースとして追加します。必ず最初にこのエントリを CocoaPods ソースパスより前に配置します。
    target 'YourAppName' do
    source 'https://github.com/forcedotcom/SalesforceMobileSDK-iOS-Specs.git' # needs to be first 
    source 'https://github.com/CocoaPods/Specs.git'
    ...
  3. アプリケーションにマージする Mobile SDK podspec を参照します。たとえば、OAuth モジュールとパスコードモジュールをアプリケーションに追加する場合は、Podfile で SalesforceSDKCore pod を宣言します。次に例を示します。
    target 'YourAppName' do
    source 'https://github.com/forcedotcom/SalesforceMobileSDK-iOS-Specs.git' # needs to be first 
    source 'https://github.com/CocoaPods/Specs.git'
    
    pod 'SalesforceSDKCore'
    
    end
    
    この pod 設定は、Mobile SDK アプリケーションの最低要件です。
  4. 他のモジュールを追加するには、SalesforceSDKCore を別の pod 宣言で置き換えます。たとえば、SmartSync Data Framework を使用します。
    target 'YourAppName' do
    source 'https://github.com/forcedotcom/SalesforceMobileSDK-iOS-Specs.git' # needs to be first 
    source 'https://github.com/CocoaPods/Specs.git'
    
    pod 'SmartSync'
    
    end
    SmartSync pod は SmartStoreSalesforceSDKCore と連動するため、これらの pod を明示的に宣言する必要はありません。
  5. (代替方法) Mobile SDK の次回のリリースで作業する場合は、SalesforceMobileSDK-iOS リポジトリをコピーして、dev ブランチを確認し、そこからリソースを取り込みます。この場合は、リポジトリのパスを示すことができるように、リリース前の各連動関係を明示的に宣言する必要があります。連動関係の宣言を省略すると、CocoaPods には本番バージョンが読み込まれます。
    1. 目的の commit で github.com/forcedotcom/SalesforceMobileSDK-iOS をローカルにコピーします。
    2. ターミナルウィンドウで、git checkout dev を実行して開発ブランチに切り替えます。
    3. コピーのルートディレクトリにある ./install.sh を実行します。
    4. Podfile の各 pod コールに、コピーを指し示す :path パラメータを追加します。
    次のコードは、ローカルコピーからリソースを取り込むように上記の例を再設定したものです。
    target 'YourAppName' do
    source 'https://github.com/forcedotcom/SalesforceMobileSDK-iOS-Specs.git' # need to be first 
    source 'https://github.com/CocoaPods/Specs.git'
    
    # Specify each pre-release pod 
    pod 'SalesforceSDKCore', :path => '/<path-to-clone-of>/SalesforceMobileSDK-iOS/'
    pod 'SalesforceAnalytics', :path => '/<path-to-clone-of>/SalesforceMobileSDK-iOS/'
    pod 'SmartStore', :path => '/<path-to-clone-of>/SalesforceMobileSDK-iOS/'
    pod 'SmartSync', :path => '/<path-to-clone-of>/SalesforceMobileSDK-iOS/'
    
    end
  6. ターミナルウィンドウで、プロジェクトディレクトリから pod install を実行します。CocoaPods により、要求された pod の連動関係のダウンロード、プロジェクトへのマージ、新しくマージされたプロジェクトを含むワークスペースの作成が行われます。
    重要

    重要

    CocoaPods の実行後は必ず pod install で作成されたワークスペースからプロジェクトにアクセスします。たとえば、MyProject.xcodeproj を開くのではなく、MyProject.xcworkspace を開きます。

  7. マージされたアプリケーションで Mobile SDK API を使用する場合は、次の重要なヒントを考慮してください。
    1. Objective-C アプリケーションでは、二重引用符ではなく山括弧 (「<」および「>」) を使用して、ヘッダーファイルをインポートします。次に例を示します。
      #import <SalesforceSDKCore/SFRestAPI.h>