Hinzufügen von Mobile SDK zu einem vorhandenen Projekt
Lernziele
Nachdem Sie diese Lektion abgeschlossen haben, sind Sie in der Lage, die folgenden Aufgaben auszuführen:
- Hinzufügen des Mobile SDK zu einer vorhandenen nativen iOS-Anwendung mittels CocoaPods
- Verwenden von CocoaPods, um eine vorhandene Mobile SDK-Anwendung für natives iOS zu aktualisieren
- Erklären, wie Mobile SDK-Pods voneinander abhängen
Mit Trail Together einem Dozenten folgen
Möchten Sie bei diesem Schritt einem Experten folgen? Schauen Sie sich dieses Video an, das Teil der Reihe "Trail Together" ist.
(Dieser Clip beginnt bei Minute 22:11, für den Fall, dass Sie zurückspringen und den Anfang des Schritts noch einmal sehen möchten.)
Verwenden von CocoaPods mit dem Mobile SDK
Ab Mobile SDK 4.0 verwendet forceios CocoaPods, um Projekte zu erstellen. Entwickler können CocoaPods auch manuell verwenden, um Mobile SDK vorhandenen iOS-Anwendungen hinzuzufügen.
Das Mobile SDK stellt Pod-Spezifikationen (podspecs) von CocoaPods für jedes Mobile SDK zur Verfügung.
-
SalesforceSDKCore
implementiert OAuth, Zugangscodes, Networking und REST-APIs. -
SmartStore
implementiert sicheren Offline-Speicher. Hängt vonSalesforceSDKCore
ab. -
MobileSync
implementiert die Offline-Synchronisierung. Hängt vonSmartStore
ab. -
SalesforceAnalytics
: implementiert einen Berichtsmechanismus, der Salesforce anonyme Statistiken zur Nutzung der Mobile SDK-Funktionen und deren Beliebtheit sendet. -
SalesforceSDKCommon
: Dienstprogramme, die im gesamten SDK gemeinsam genutzt werden.
Mobile Sync
deklarieren, erhalten Sie automatisch die Pods SmartStore
und SalesforceSDKCore
. Diese Verknüpfung gilt nur für Produktions-Pods.Führen Sie die folgenden Schritte aus, um CocoaPods mit der aktuellen Version von Mobile SDK zu verwenden.
- Vergewissern Sie sich, dass der cocoapods-Gem Ruby wie unter "Einrichten Ihrer iOS-Entwicklungsumgebung" im Projekt Einrichten Ihrer Mobile SDK-Entwicklertools beschrieben installiert wurde.
- In der Podfile-Datei Ihres Projekts fügen Sie das Repository "SalesforceMobileSDK-iOS-Specs" als eine Quelle hinzu. Setzen Sie diesen Eintrag unbedingt an die erste Stelle vor den Quellpfad von CocoaPods.
target 'YourAppName' do source 'https://github.com/forcedotcom/SalesforceMobileSDK-iOS-Specs.git' # needs to be first source 'https://github.com/CocoaPods/Specs.git' ...
- Fügen Sie
use_frameworks!
hinzu, um dynamische Frameworks zu unterstützen.target 'YourAppName' do source 'https://github.com/forcedotcom/SalesforceMobileSDK-iOS-Specs.git' # needs to be first source 'https://github.com/CocoaPods/Specs.git' use_frameworks! ...
- Verweisen Sie auf die Mobile SDK-Podspec, die Sie in Ihre Anwendung einbinden möchten. Um beispielsweise die Module "OAuth" und "Zugangscode" zu Ihrer Anwendung hinzuzufügen, deklarieren Sie den Pod
SalesforceSDKCore
in Ihrer Podfile-Datei: Beispiel:target 'YourAppName' do source 'https://github.com/forcedotcom/SalesforceMobileSDK-iOS-Specs.git' # needs to be first source 'https://github.com/CocoaPods/Specs.git' use_frameworks! pod 'SalesforceSDKCore' end
Diese Pod-Konfiguration ist das Minimum für eine Mobile SDK-Anwendung. - Wenn Sie weitere Module hinzufügen möchten, ersetzen Sie
SalesforceSDKCore
durch eine andere Pod-Deklaration. Gehen Sie beispielsweise wie folgt vor, umMobileSync
zu verwenden:target 'YourAppName' do source 'https://github.com/forcedotcom/SalesforceMobileSDK-iOS-Specs.git' # needs to be first source 'https://github.com/CocoaPods/Specs.git' use_frameworks! pod 'MobileSync' end
Da derMobileSync
-Pod vonSmartStore
undSalesforceSDKCore
abhängt, müssen diese Pods nicht explizit deklariert werden. - (Alternative Methode) Um mit der nächsten Version von Mobile SDK zu arbeiten, duplizieren Sie das Repository SalesforceMobileSDK-iOS, checken den Branch "dev" aus und pullen die Ressourcen daraus. In diesem Fall müssen jede Abhängigkeit vor der Veröffentlichung explizit deklarieren, um ihren Repository-Pfad angeben zu können. Wenn Sie eine Abhängigkeitsdeklaration weglassen, lädt CocoaPods seine Produktionsversion.
- Duplizieren Sie an der Eingabeaufforderung des Terminals github.com/forcedotcom/SalesforceMobileSDK-iOS lokal beim gewünschten Commit.
- Ändern Sie die Verzeichnisse entsprechend Ihrem neuen Duplikat. (Wenn Sie keinen benutzerdefinierten Pfad angegeben haben, verwenden Sie
cd SalesforceMobileSDK-iOS
.) - Führen Sie
git checkout dev
aus, um zum Entwicklungs-Branch zu wechseln. - Führen Sie
./install.sh
im Stammverzeichnis Ihres Klons aus. - Für jeden Pod-Aufruf in der Podfile-Datei fügen Sie den Parameter
:path
hinzu, der auf Ihr Duplikat verweist.
- Hier sehen Sie das vorige Beispiel umfunktioniert für das Abrufen der Ressourcen aus einem lokalen Duplikat:
target 'YourAppName' do source 'https://github.com/forcedotcom/SalesforceMobileSDK-iOS-Specs.git' # need to be first source 'https://github.com/CocoaPods/Specs.git' use_frameworks! # 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 'MobileSync', :path => '/<path-to-clone-of>/SalesforceMobileSDK-iOS/' end
- Führen Sie in einem Terminalfenster
pod install
in Ihrem Projektverzeichnis aus. CocoaPods lädt die abhängigen Komponenten für die angeforderten Pods herunter, fügt sie zum Projekt hinzu und erstellt eine Arbeitsumgebung mit dem neu zusammengeführten Projekt.
Hinweis: Greifen Sie nach der Ausführung von CocoaPods immer nur über die Arbeitsumgebung, die vonpod install
erstellt wurde, auf Ihr Projekt zu. Öffnen Sie beispielsweise "MyProject.xcworkspace" anstelle von "MyProject.xcodeproj". - Um Mobile SDK-APIs in Objective-C-Anwendungen zu verwenden, importieren Sie Header-Dateien mit spitzen Klammern ("<" und ">") und nicht mit doppelten Anführungszeichen. Beispiel:
#import <SalesforceSDKCore/SFRestAPI.h>