Developer

MAF Logon Task Flow

Implement the logon flow in your app.

Context

To complete this process, you must obtain the iOS Native Client SDK libraries, which are available in the SAP Mobile Platform Client SDK Installer. MAFLogon ships in the form of separate artifacts such as:
  • Statically linked libraries
  • Resource bundle folders
  • Public header files
Before you can use MAFLogon, you must add associated artifacts. You must also add dependent frameworks and configure your build settings. If you are working with an existing project rather than creating a new one, the steps may differ.
MAFLogon is distributed in separate libraries, resource bundles, and header files:
  • Libraries
    • libMAFLogger.a – logging helper classes.
    • libMAFLogonManagerNG.a – Logon Core components that implement registration logic.
    • libMAFUIHelper.a – utility UI components.
    • libMAFZipHelper.a – ZIP utilities.
    • libMAFLogonUING.a – Logon integration API with default Logon UI.
    • libMAFUIComponents.a – skinnable controls library.
  • Bundles
    • MAFLogonManagerNG.bundle – configuration of Logon Core functionalities and localization.
    • MAFLogonUING – default Logon UI configuration.
    • MAFUIComponents.bundle – skinning configuration and default resources.
  • Various header folders.

Procedure

  1. In Xcode, create a new project or open an existing one.
  2. Add MAFLogon artifacts into your project:
    • libMAFLogger.a
    • libMAFLogonManagerNG.a
    • libMAFUIHelper.a
    • libMAFZipHelper.a
    • libMAFLogonUING.a
    • libMAFUIComponents.a
    • MAFLogonManagerNG.bundle
    • MAFLogonUING.bundle
    • MAFUIComponents.bundle
    • MobilePlace.bundle
    • HttpConvAuthFlows.bundle
  3. Add other required dependencies into your project:
    • libAfariaSLL.a
    • libConnectivity.a
    • libCoreServices.a
    • libDatavault.a
    • libPerformanceLib.a
    • libRequest.a
    • libE2ETrace.a
    • libParser.a
    • libLogger.a
    • libCache.a
    • libsqlcipher.a
    • libClientHubSLL.a
    • libHttpConversation.a
    • libHttpConvAuthFlows.a
    • libClientLog.a
    • libE2ETrace2.a
    • libSupportability.a
    • libPerformanceLib.a
  4. Select your project from the Project Navigator, and choose your application's target.
  5. Open the Build Phases tab and, within Link Binary with Libraries, add the following frameworks:
    • CFNetwork.framework
    • CoreData.framework
    • MessageUI.framework
    • Security.framework
    • QuartzCore.framework
    • Libstdc++.dylib
    • libz.dylib
    • MobileCoreServices.framework
    • SystemConfiguration.framework
    • UIKit.framework
    • Foundation.framework
    • CoreGraphics.framework
    • libsqlite3.dylib
  6. Choose your project, rather than a specific target, and open the Build Settings tab.
    1. In the Other Linker Flags section, add -ObjC and -all_load. If these settings are not visible, change the filter in the Build Settings bar from Basic to All.
    2. In the header search path section, adjust the path to look for public header files. Depending on where you copied the header file, the path string should look something like this:
      $(PROJECT_DIR)/includes/public/**
    3. In the library search path section, adjust the path to look for the binary files. Depending on where you copied the library files, the path string should look something like this:
      $(PROJECT_DIR)/libraries/$(BUILD_STYLE)-universal/**
  7. The Mobile Place UI ships with a Storyboard file. You imported MobilePlace.bundle into your Xcode project in step 2, so you can use it.
    1. Open the associated group.
    2. Drag the MobilePlace.storyboard file into a group in your project, anywhere outside of the bundles group.
    3. Make sure that Copy items into destination group’s folder (if needed) is selected.
    This enables you to present the Mobile Place UI.
  8. In the Xcode Storyboard Editor, open MobilePlace.storyboard.
    1. In the File Inspector tab of the right Xcode pane, select the Localization section.
    2. Ensure that Base and English are selected.
    3. Ensure that Localizable Strings is selected from the list next to English.
  9. To import the translation of the Storyboard UI definition, you must specify all the supported localizations in the Start of the navigation path Project Settings Next navigation step Info Next navigation step Localizations End of the navigation path section.
  10. Add all required languages, and select MobilePlace storyboard. Also select Localizable Strings as the type of the localization.
    Each localization you add creates a copy of the technical language, and should appear under the Storyboard in the Project Navigator pane. Open the files and copy the content from the corresponding translation file shipped in the MobilePlace.bundle group. Override the generated content with the one shipped by SAP.
  11. Add the HttpConvAuthFlows.bundle to your project.
  12. Create your logon handler.
    Create a central class for logon-related work, so your code remains clean.
  13. Integrate logon handler into your app.
    After implementing your logon handler, use a property to hold a reference to it in your AppDelegate singleton.
  14. Present the logon screen.
    To present the MAF Logon UI, adjust your root view controller. Do not change your root view controller interface.