Skip to content

What's New

What's New in Version 10.0

SAP BTP SDK for iOS version 10.0 supports iOS 16+ and Xcode 15.

Restrict Print Data

SAP Mobile Services allows you to enable a Print Data Restriction Policy that disables printing functionality in the application. You will need to add the SAPFioriFlows.SAPcpmsSecurityPolicyApplyStep onboarding step from the SAPFioriFlows framework to your onboarding steps to enable this functionality. When the policy is enabled in SAP Mobile Services, SAPcpmsSecurityPolicyApplyStep prevents the printing of an app's content.

Note that the SAP BTP SDK Assistant for iOS allows you to create a new project with a Print Data Restriction Policy and automatically adds the necessary onboarding step.

Restrict Opening URLs

SAP Mobile Services allows you to enable an Open URL Restriction Policy which disables opening of URLs within your application. You also need to add the SAPFioriFlows.SAPcpmsSecurityPolicyApplyStep onboarding step from the SAPFioriFlows framework to your onboarding steps. When the policy is enabled in SAP Mobile Services, SAPcpmsSecurityPolicyApplyStep prevents the opening of URLs in external applications.

Note that the SAP BTP SDK Assistant for iOS allows you to create a new project with an Open URL Restriction Policy and automatically adds the necessary onboarding step.

OAuth2 Login Support for Action Extensions

SAP BTP SDK for iOS now provides SAPFoundation APIs for OAuth2 authentication in Action extensions.

Improvements for Using Xcode 15

  • Debugger Console: SAP BTP SDK for iOS has now added support for filtering by log level and logger name in the Xcode 15 debugger console.
  • Digitally-signed Binary Frameworks: SAP BTP SDK for iOS provided .xcframework files will now include information about the signature such as the author's identity. If the signature has changed, your app's build will fail with an appropriate error message. This allows an app developer to confirm the identity and guarantees that the code has not been altered or tampered with after it was signed.
  • Privacy Manifests: All SAP BTP SDK for iOS frameworks now bundle a PrivacyInfo.xcprivacy file. Privacy manifests are a new way to provide information about SAP Mobile Services privacy practices. This information helps app developers accurately represent privacy in their apps.

Log Upload Improvements

  • SAPFoundation now exposes a property, the logUploadEnabled flag, in SAPcpmsLogUploader.swift. Setting this value to true ensures that the app developer can force upload logs irrespective of the log settings in mobile services cockpit. However, the configuration to upload the logs needs to be enabled in SAP Mobile Services for the operation to be successful.
  • SAPFoundation has added a new case in SAPcpmsLogUploaderError with the name, .configurationNotEnabled.

Breaking Changes: SAPFoundation

Since this is a new error which will be thrown when configuration to upload logs is not enabled in SAP Mobile Services, existing applications that have written specific code for SAPcpmsLogUploaderError.networkError will break.

  • SAP BTP SDK for iOS splits client logs into multiple files when recording logs but then reassembles them into a single upload file. That assembled file may exceed 64MB and will be rejected by SAP Mobile Services. SAP BTP SDK for iOS can now chunk these logs, respecting the 64MB upload limit when uploading client logs.

Async Functions in SAPFioriFlows.OnboardingSessionManager

Added async support in SAPFioriFlows.OnboardingSessionManager for the following APIs:

  • open()
  • removeSession()
  • lock()
  • unlock()

Enhanced CSRF Protection

Introduced SAPFioriFlows.SAPcpmsCSRFTokenConfigurationStep for out-of-the-box support of CSRF Protection configuration in SAP Mobile Services. This is a public OnboardingStep that app developers can use to register SAPFoundation.CSRFTokenObserver.

Multi-User Online Project Generation in SAP BTP SDK Assistant for iOS

SAP BTP SDK Assistant for iOS now has the capability to generate a shared device (multi user) application with online OData support.

Sync Button for Offline App Generated by SAP BTP SDK Assistant for iOS

SAP BTP SDK Assistant for iOS adds a button when generating an offline app. End users can now synchronize offline OData manually and quickly without stopping and restoring the app like before.

Fiori for iOS Version 10.0

Form Cells Disabled State

  • Added disabled state for OrderPickerFormCell, SignatureFormCell, and AttachmentFormCell
  • Updated the disabled state style for all types of form cells

Text Input Read-Only State

  • For the readonly state of FUITextFieldFormCell, FUINoteFormCell, and FUIKeyValueFormCell, the value field bounding box outline is removed. The background color is updated.

New Key Value Component

  • A new UITableViewCell subclass for displaying non-editable key-value pairs is added.

List Picker Form Cell

  • Improved presentation and search behaviors.

Skeleton Loading

Support of showing skeleton loading if the data is not available yet.

Card

A new card system is introduced to be adaptable and extendable. The card includes multiple sections for media, main header, extended header, body and footer. While the SDK provides built-in UI components for extended header and body sections, an application can choose to add any type of UIView to these sections, allowing the card content to be more customizable.

Calendar View Enhancement

  • Supports three alternate calendars: Chinese, Hebrew, and Islamic.
  • Allows developers to add different event indicators.

Error Handling for Form Cells

  • New style for FUIInlineValidationView to show a feedback message as a hint/error message.
  • API is enhanced to show the feedback message as error, info, or warning.

AttachmentCell Enhancement

Adds three properties (title, subtitle, footnote) for attachment cells. Applications can use these properties to store and show any information, such as file size, etc.

Updated Fiori Icon Library

Fiori Icon Library is updated and more icons are included.

OData Library for SAP BTP SDK for iOS Version 10.0

  • Fixed bug: Failed to download streams with multiple thread
  • Fixed bug: iOS DownloadStream is not downloading in background completely

Offline OData Library for SAP BTP SDK for iOS Version 10.0

  • Added support for the containment navigation property in OData V4
  • Added support for the key property reference in OData V4

What's New in Version 9.2

SAP BTP SDK for iOS version 9.2 supports iOS 15+ and Xcode 14.

Multi-User Offline Project Generation in SAP BTP SDK Assistant for iOS

SAP BTP SDK Assistant for iOS now has the capability to generate a shared device (multi user) application with Offline OData support. Multiple users can onboard the same application and the pending changes of the previous users are allowed to be uploaded even after the user switch.

This Shared Device option is not available for online applications.

Device Compliance Detection

SAP Mobile Services allows you to enable a Compliance Policy to detect compromised devices. You also need to add the SAPFioriFlows.SAPcpmsSecurityPolicyApplyStep onboarding step from the SAPFioriFlows framework to your onboarding steps.

SAP BTP SDK Assistant for iOS allows you to create a new project with a Compliance Policy and automatically adds the necessary onboarding step.

When the policy is enabled, SAPcpmsSecurityPolicyApplyStep initiates the check and reports the results to SAP Mobile Services. When compromised devices are detected, they are reported as a Mobile Device Security event, and appear on the User Registrations tab and in the Event Log.

Clipboard Protection

SAP Mobile Services allows you to enable a Clipboard Protection Policy to limit the exchange of information between apps. You also need to add the SAPFioriFlows.SAPcpmsSecurityPolicyApplyStep onboarding step from the SAPFioriFlows framework to your onboarding steps.

SAP BTP SDK Assistant for iOS allows you to create a new project with a Clipboard Protection Policy and automatically adds the necessary onboarding step.

When the policy is enabled, SAPcpmsSecurityPolicyApplyStep restricts cut, copy, and paste between apps.

App Attestation: Debug Tokens for Testing

The App Attest service is not supported on iOS Simulator and Mac Catalyst. SAP Mobile Services has enhanced the ApplicationAttestationStep and AttestationObserver classes to enable development/testing with attestation-enabled applications on these platforms.

A debug token, which can be obtained from the mobile services cockpit is added to the request where App Attest is not supported. By ensuring the requirements on the client for using a debug token are met, your attestation-enabled application can work on iOS Simulator and Mac Catalyst. Using a debug token is also supported on physical devices if the requirements are met.

Client-only Entities in Offline

The client-only entities feature is an extension to Offline OData that enables the client application to load client-only metadata and perform OData CRUD operations on entity sets that do not exist in the OData back-end server. The term "client only" or "client-only" means that the entities exist in the client store only, and will never be uploaded to the back-end store.

Better Error Code When User Declines to Re-Authenticate

Change your error code handling if you use FioriWKWebViewPresenter

SAPFioriFlows code returns FioriPresenterError.cancelled (no longer FioriPresenterError.failed) when the user declines to re-authenticate (by performing a cancel operation on FUIInfoViewController) and the app uses FioriWKWebViewPresenter as the presenter for OAuth2AuthenticationStep.

Fiori for iOS Version 9.2

New Features for List Picker (FUIListPickerFormCell, FUIListPickerCollectionViewCell, and FUIListPickerTableViewController)

When modal presenting the FUIListPickerTableViewControllerCell from FUIListPickerFormCell or FUIListPickerCollectionViewCell on iPhone devices, the initial FUIListPickerTableViewController will be presented in half modal sheet. An option has been added to display an alert pop-up when isUndoEnabled is true and the user tries to cancel the selections. An anchor button will be shown, as an option, when a user scrolls pass the Selected section of the FUIListPickerTableViewController. The tableview will be scrolled to the top when the button is tapped. A new option has been added to display the selection checkmark on the trailing side (the default) or the leading side of the tableview.

New Features for FUIDataTable and FUIDataTableModel

Paging support: when FUIDataTable is scrolling, a new closure, didScroll for FUIDataTableModel, is provided to tell the app the current contentOffset and the visible indexes of rows and columns. When the scrolling is reaching the end of the FUIDataTable, developers can append new rows so that the scrolling can continue endlessly.

Update on Filter Feedback Bar (FUIFilterFeedbackControl)

Minimal touchable height was adjusted from 38 to 44. A new property, keepsItemOrderOnSelection, was introduced for better accessibility support. When keepsItemOrderOnSelection is true, the selected items remain at the locations where the items are located before selection. When keepsItemOrderOnSelection is false, the selected items may be moved to the left. The default value of the keepsItemOrderOnSelection property is false. By default, the behavior is the same as release 9.1.

Step Progress Indicator

The FUIStepProgressIndicator is a UIView subclass that enables a developer to present linear step progress with an array of FUIStepItem using the default Fiori indicator.

Example code:

// Create instances of `FUIStepProgressIndicator`.
let items: [FUIStepItem] = []
let view = FUIStepProgressIndicator(selection: "step id",
                                    stepItems: items)
view.title.text = "step title"
view.primaryAction.setTitle("All Steps: 4)", for: .normal)
view.primaryAction.setImage(UIImage(systemName: "chevron.right"), for: .normal)
view.selectionDidUpdated = { [view] selection in
    // handle new title for selected step
}

Accessibility Enhancement for FUIObjectTableViewCell, FUIObjectCollectionViewCell, and FUIObjectView

The accessibility enhancement:

  • Uses a combined accessibility element for its inner FUIObjectView.
  • Updates the accessibility elements sequence for FUIObjectView.

Character Counter for Form Cells

The new Character Counter feature is supported for text input in the FUITextFieldFormCell, FUINoteFormCell, and FUIKeyValueFormCell form cells. This feature allows the developer to know how many characters have already been entered into the form cell, as well as enforcing a maximum number of characters allowed. The feature is enabled by setting isCharCountEnabled and maxTextLength, as described in the respective topics for FUITextFieldFormCell, FUINoteFormCell, and FUIKeyValueFormCell.

There are two ways to behave when maxValueTextLength is reached. One way is to allow the user to continue to input characters even after maxValueTextLength is reached. This generates an error state with an error message and a semantic negative color. The other way is to auto-stop user input when maxValueTextLength is reached. The allowsBeyondLimit boolean value determines which behavior is expected.

Text Input Error Handling

This new feature supports displaying error messages for text input fields in the FUITextFieldFormCell, FUINoteFormCell, and FUIKeyValueFormCell form cells. It allows the application to validate the user input and show an error message for user correction. The UI component will be shown in error state with title and border in the semantic negative color when the error flag has been set by an API or the character counter. The error message will be shown in the errorView or validation message based on API settings.

Update Text Input Readonly Design

This UX improvement has been applied to the text input field in FUITextFieldFormCell, FUINoteFormCell, and FUIKeyValueFormCell. The outline around the bounding text box for readonly state has been removed.

OData Library for SAP BTP SDK for iOS Version 9.2

  • Support media/stream operations in changeSet within a batch.

Offline OData Library for SAP BTP SDK for iOS Version 9.2

  • Added support for client-only entities and local drafts.
  • Added support for media requests in ChangeSet.
  • Added support for Geography and Geometry types in OData 4.0.
  • Added a new API to set the cache size for local databases.

What's New in Version 9.1

SAP BTP SDK for iOS version 9.1 supports iOS 15+ and Xcode 14.

Breaking Changes: SAPFioriFlows

If you are using the SAPFioriFlows framework, then you are affected by minor incompatible changes to the ApplicationUIManaging protocol.

You must add a new argument, scene sessionID: String?, to your implementation of functions: - showApplicationScreen(completionHandler:) - hideApplicationScreen(completionHandler:)

Example of your previous application code:

class ApplicationUIManager: ApplicationUIManaging {
    func showApplicationScreen(completionHandler: @escaping (Error?) -> Void) {
        // your code
    }
}

You have to add scene sessionID: String? as a new function argument:

class ApplicationUIManager: ApplicationUIManaging {
    func showApplicationScreen(scene sessionID: String?, completionHandler: @escaping (Error?) -> Void) {
        // your code (no changes required unless you want adopt Multi-Window support)
    }
}

Project Generation in SAP BTP SDK Assistant for iOS With Async/Await APIs

SAP BTP SDK Assistant for iOS version 9.1 will generate Xcode projects with code that leverages the new, modern Swift async/await APIs that SAPOData and SAPOfflineOData frameworks have adopted.

For new projects, we recommend that you use async/await APIs, and therefore this is now the default behavior.

Adopting async/await for existing offline applications requires additional changes in your application code as OfflineDataServiceAsync introduces new/changed APIs.

Opt-out if you are not ready to adapt your existing code

You will be able to opt-out if you need to generate projects and OData proxy classes using the legacy completionHandler-based APIs.

App Attestation

SAP Mobile Services allows a provider to integrate with Apple's App Attest service. This helps the server to identify whether requests have come from a legitimate instance of an application. Access to back-end resources can be granted or rejected based on this determination.

When using the ApplicationAttestationStep onboarding step from the SAPFioriFlows framework, the application interacts with the SAP Mobile Services's provider to obtain an attestation of the app or device's authenticity.

Apps implementing user onboarding without SAPFioriFlows can leverage the underlying AttestationObserver from the SAPFoundation framework.

You can enable the app attestation feature in the SAP Mobile Services app configuration during app creation using the SAP BTP SDK Assistant for iOS. The attestation settings in the cockpit are then used in the generated Xcode projects.

Push Topic Subscription

Applications created using the SAP BTP SDK for iOS can subscribe to specific push notifications based on a user's topics of interest, such as patches, new features, or security, for example. Topics may be considered to be part of the relationship between mobile apps and the notification producer for those given topics. The SDK supports customizing this relationship by allowing users to subscribe to certain topics while ignoring others. This helps app users remain interested in device notifications.

Use SAPFoundation.SAPcpmsRemoteNotificationClient to subscribe/unsubscribe to topics, as well as get all active subscriptions.

Multi-Window Support Using SceneDelegate

Beta

The multi-window support feature is presently in beta mode and may undergo incompatible changes in terms of APIs and generated code in subsequent releases. With this early access, developers can prototype and provide feedback before the feature gets finalized.

Multi-window support using SceneDelegate provides the ability to make use of SceneDelegate to create and manage multi-window apps. This feature enhances and introduces new APIs in SAPFoundation, SAPFioriFlows, and appropriate code changes in the generated code as well.

Projects generated by the SAP BTP SDK Assistant for iOS version 9.1 will use these APIs correctly out-of-the-box.

During onboarding, a single scene will be responsible for the onboarding process, while other scenes, if any, will wait until the onboarding process is completed successfully. If the current onboarding scene gets closed or terminated, one of the other scenes will assume the responsibility and restart the onboarding process. Similarly, a single scene will be responsible for handling the passcode screen, while other scenes if any, will wait until the passcode has been entered. If the current passcode scene gets closed or terminated, one of the other scenes will assume the responsibility and display the passcode screen.

After onboarding/entering the passcode successfully, each scene will have its own view of the app.

Fiori for iOS Version 9.1

FUIToolbar

FUIToolbar is supported as a subclass of 'UIToolbar', which displays the UIBarButtonItem array in the Fiori style.

FUITimelinePreviewTableViewCell, FUITimelineCell, and FUITimelineMarkerCell

Timestamp and content have been repositioned to improve look and feel. Also, there are new icons for the node type. A new property, version, allows you to render according to the behavior of the previous release.

FUIDataTableCardCollectionViewCell

UI styles, including font and size, have been updated. In addition, the layout has been updated for certain font sizes to support better accessibility. If the font is xxxLarge or higher, the layout will be changed from two columns to one column.

FUIEmptyStateView

FUIEmptyStateView is added to support a view that does not contain actual data. Developers can define this view's properties (title, body, image, etc.) to display more meaningful messages to end users. Also, a button is available to allow developers to define what action can be taken on this view.

FUIPrivacyNoticeViewController

FUIPrivacyNoticeViewController is added to display a permission screen to show the user the reason for requesting permission.

FUIDataTable

FUIDataTable is enhanced to support editing the data table cell. Refer to FUIDataTable for information on the data types that can be edited.

Fiori Icons

A new set of Fiori-based icons are added to this release. These icons are designed based on SAPUI5 SDK icons and provide a consistent user experience between mobile and Web apps.

New UICollectionViewCell Components

The following components are added to be used as UICollectionViewCell: FUIFilterFormCell, FUITitleFormCell, FUIDurationPickerFormCell, FUIDatePickerFormCell, FUIAttachmentsFormCell, and FUIValuePickerFormCell.

Offline OData Library for SAP BTP SDK for iOS Version 9.1

  • Added support for not populating the relationship data for a referential constraint. For a navigation property with a referential constraint, there is no need to download the relationship data, as the relationship can be determined through the referential constraint in the client SDK. This can help to decrease the database size and improve the speed of the initial download.
  • Added upload and download failure events into the EventLog entity set.
  • Added support for async style OfflineDataService APIs.

What's New in Version 9.0

SAP BTP SDK for iOS version 9.0 supports iOS 15+ and Xcode 14.

Version 8.0.x will continue to support iOS 14 and Xcode 13.

Theming

Administrators can change the appearance of an iOS application by managing Application Themes in SAP Mobile Services.

The SAP BTP SDK for iOS SAPFioriFlows framework provides APIs to download and apply a theme from SAP Mobile Services. , i.e. SAPcpmsThemeManager and NUIStyleSheetApplyStep.

Projects generated by the SAP BTP SDK Assistant for iOS will use these APIs correctly out-of-the-box.

Fiori for iOS Version 9.0

FUISwitchFormCell

FUISwitchFormCell is updated with a new look and feel, including color, font, and size.

FUIStepperFormCell

FUIStepperFormCell is added as a new UI control allowing the user to increment or decrement a value.

FUIRangeSliderFormCell

FUIRangeSliderFormCell is added as a new UI control allowing the user to select range values from the slider, e.g. a range as "from 10 to 30".

FUISortFilterViewController

FUISortFilterViewController is added as a new View Controller, allowing the user to narrow down results from a long list by setting criteria. Users are able to reset filters and return to the initial list.

Collection View Cell Support

The following components are added to be used as UICollectionViewCell: FUISwitchCollectionViewCell, FUISimplePropertyFormCell, FUIInlineSignatureCollectionViewCell, FUIStepperCollectionViewCell, FUISegmentedControlCollectionViewCell, FUIListPickerCollectionViewCell, FUIRangeSliderCollectionViewCell, FUISliderCollectionViewCell, FUIOrderPickerCollectionViewCell, FUIRatingControlCollectionViewCell, and FUIButtonCollectionViewCell.

UITabBar Support for SAP Fiori Theming

An extension, applyFioriStyle(), is added to UITabBar to support SAP Fiori theming by default. Developers can also customize the theming using the .nssfile.

UINavigationBar Enhancement

FUIBarButtonItem is enhanced to add a few convenience init()s to return a newly initialized SAPFiori Style, UIBarButtonItem. It has the SAPFiori styles, font and color for title and icon, .quaternaryFill background color for .highlighted state, and a minimum 44x44 touch area.

FUIFilterFormCell Enhancement

The FUISegmentedControlFormCell feature has been combined with FUIFilterFormCell. FUIFilterFormCell can now support fixed and flexible button styles, as well as single and multiple selection mode. The check mark icon has also been added to improve accessibility.

Chart Color Update

Chart colors for chart1 to chart11 are updated.

Offline OData Library for SAP BTP SDK for iOS Version 9.0

  • Support "deep insert to many end" when the back end can respond with child entities in the same order as the request.
  • Support reporting client-side metrics in the mobile services cockpit, including total synchronization time, network time, server processing time, and success and failure count.
  • Initial support for OData 4.01.

What's New in Release 8.0

Fiori for iOS for SAP BTP SDK for iOS Version 8.0

Color Palette

The color palette has been updated to version V7. This version is now the default for all components.

Text Input

FUITextFieldFormCell is updated to support a new layout that allows the key and value fields to be stacked. It also supports a new state called isReadOnly.

Note Form Cell

Version 8.0 provides a new implementation of FUINoteFormCell, replacing the previous one. This implementation supports the cell height to be adjusted automatically to allow the entire content of the note form cell to be displayed.

Key Value Form Cell

Version 8.0 provides a new implementation of FUIKeyValueFormCell, replacing the previous one. This implementation provides a keyName field and an editable value text field, allowing the user to enter the value for this property. This implementation supports the cell height to be adjusted automatically to allow the entire content of the key value form cell to be displayed.

Data Table Card

FUIDataTableCardView now supports a new chart type to display the data as a table.

Object Header

FUIObjectHeaderView supports a new layout. It also supports additional new properties, including statusLayout, statusImageViewAlignment, substatusImageViewAlignment, kpiView, labelItems, numberOfLabelItems, etc.

Button

FUIButton provides new and enhanced functionality:

  • FUIButton has been updated to have a new look and feel.
  • New button styles, including Primary, Secondary, and Tertiary.
  • Button semantic attributes: normal, tint, and negative.
  • Image and icon on the button, along with the button label.
  • Button style dependent on control state, color scheme, and configuration change.
  • Button shadow that can be enabled and disabled by the application.

Onboarding

This version of the SDK provides the following onboarding features and functionality enhancements:

  • Enhanced passcode input field and new show/hide passcode mode.
  • New FUIButton styles.

Object Cell

FUIObjectTableViewCell has been updated to support a new layout, with changed location of tags, support for overlapped footnote icons, and overlapped avatar images for detailed image view.

Object Card

FUIObjectCardView is a new UI component that supports button-driven actions from the card. The card content supports displaying data for a business object, including title, subtitle, footnote status, detailImageView, and body.

List Card

FUIListCardView is a new UI component that supports button-driven actions from the card. The card content supports displaying data for a list of business objects.

Security

QR Codes can now be digitally signed in SAP Mobile Services so that the SAP BTP SDK for iOS verifies the signature before proceeding with the onboarding process. SAPFoundation.DigitalSignatureVerifier is a new class which can be used to verify any kind of signed data.

Feature Vector Policy (Feature Restriction Policy)

Using SAP Mobile Services, administrators can set feature flags (also called "feature restriction policies" on the server side) for applications. Starting with this version of the iOS SDK, you can use the two new classes, SAPcpmsFeatureVectorPolicy and SAPcpmsFeature, in SAPFoundation to read these policies (called "feature vector policies" on the SDK side).

Developers can retrieve the values from the info dictionary of OnboardingContext using sapcpmsFeatureVectorPolicies OnboardingInfoKey.

Authorization Code Grant Flow Using PKCE

The authorization code grant flow now supports PKCE (Proof Key for Code Exchange) to prevent authorization code interception attack. PKCE uses three parameters: code verifier, code challenge, and code challenge method. Developers set the code challenge method in the ConfigurationProvider.plist generated by the SAP BTP SDK Assistant for iOS. By default, S256(SHA256) is used as the code challenge method. The SAP BTP SDK for iOS also supports S512 and plain. SAP mobile service cockpit only supports S256 and plain methods.

Offline OData Library for SAP BTP SDK for iOS Version 8.0

  • Enhanced OfflineODataError and OfflineODataException.
  • Formatted some client error messages. Applications parsing these error messages may need to update their parsing implementation.
  • Support defining refresh order by SDK.
  • Support automatic client registration to mobile back-end tools.
  • Support undo pending changes with custom headers.

What's New in Release 7.0

SAP BTP SDK for iOS version 7.0 supports iOS 14+ and Xcode 13.

Version 6.0.x will continue to support iOS 13 and Xcode 12.5

M1 Support Update for 7.0

Use the SAP BTP SDK for iOS frameworks on Mac computers with Apple silicon without the need for Rosetta.

Cross-Context SSO with OAuth Update for 7.0

The cross-context SSO feature makes onboarding easier for users by transferring OAuth tokens from an established session to their mobile app built with the SAP BTP SDK for iOS.

For example, a user opens the SSO onboarding URL on their desktop. The user can open the native app, navigate to the QR code scanning screen, and scan the QR code before it expires. If successful, the native app will get onboarded automatically. The user does not have to enter their credentials again.

Application Versioning Update for 7.0

Administrators can activate or deactivate specific versions of an application in SAP Mobile Services. The SAP BTP SDK for iOS provides ApplicationVersionObserver in SAPFoundation and ApplicationVersionStep in SAPFioriFlows to stop the user from onboarding if the version of the application is inactive.

Lock App Based on Timeout in Passcode Policy Update for 7.0

Administrators can maintain a Lock Timeout as part of the passcode policy configuration in SAP Mobile Services. Previously this information was ignored by the SDK. Now the SDK will enforce this setting by calling ApplicationUIManaging.hideApplicationScreen(completionHandler:) (if implemented by the app) when the user leaves the app in background for longer than the lock timeout allows.

OData Library for SAP BTP SDK for iOS Version 7.0

OData CSDL documents with JSON Format Version 4.01 are now supported, including the corresponding new JSON payload syntax @xxx (instead of @odata.xxx) for OData instance annotations.

Offline OData Library for SAP BTP SDK for iOS Version 7.0

The Offline OData Library provides the following new functionality:

  • getLastDownloadTime() and getLastUploadTime() APIs for OfflineODataProvider.
  • setDefiningQueryGroups() API to group defining queries from the client side.
  • Default encryption support for the offline store.
  • Additional OData version 4 feature support: Collection-valued property.

Fiori for iOS for SAP BTP SDK for iOS Version 7.0

Feature Description
New color palette .latest palette version is v6.
New typeface Support for SAP 72 font family, a new typeface designed for SAP and SAP Fiori.
FUIListPickerFormCell Add a boolean property alwaysShowValueTextOnBottom to enforce showing value text underneath key label.
Remove contrast background Affected components: FUIObjectHeader, FUIProfileHeader, FUIKPIHeader, FUINavigationBar.
Large title The SDK enables a large title by default and provides default styles for the title.
FUIAttachmentFormCell Support for inline validation messages.
FUIEULAViewController Added a Boolean property, disablesConfirmActionUntilScrollingToEnd.
FUIOrderPickerFormCell A new type of form cell for picking the sorting criteria.
FUIHierarchyView Support for selecting items in the hierarchy view.
FUIDurationPickerFormCell Support for setting the duration to zero.
FUIPasscodePolicy Added lockTimeout, a new property for re-authenticating users after a period of time.
FUITimelineNowIndicatorCell A new type of timeline cell for indicating the current time in the timeline.
FUIInlineSignatureFormCell Provide additional customization options.

SAP BTP SDK Assistant for iOS for SAP BTP SDK for iOS Version 7.0

Feature Description
Generator CLI Added a CLI-based tool that generates the client side project using a single command.
Improved Security Added features to request a user's consent before accessing directories using the Assistant.

Additional Open Source Projects Update for 7.0

Feature Description
SAP Conversational AI (CAI) SDK for iOS Connect to a bot on the SAP Conversational AI chatbot platform using the open-source SAPCAI Swift package.
FioriAR Create AR annotations using the open-source FioriAR Swift package.
FioriSwiftUI Use SwiftUI components of the open-source FioriSwiftUI Swift package to augment and, in some cases, replace the UIKit-based implementation contained in the SAPFiori framework of the SAP BTP SDK for iOS.

Note

These Swift Packages are not distributed as binary frameworks.

What's New in Release 6.0

Security Update for 6.0

  • Introduced the Obfuscator module in SAPCommon for securing the storage and transmission of secret keys (API keys) in the application code.
  • Introduced SecurityManager and AuxiliaryCommunication components in SAPFoundation to enable secure and reliable communications between the app and the app extension processes.

Authentication Update for 6.0

  • Introduced support for anonymous access for mobile applications on Cloud Foundry using the new API Key Only method.
  • Added support for the API Key Only authentication method to the SAP BTP SDK Assistant for iOS.

See API Key Only (Anonymous Access) for details.

Crash Reporting Update for 6.0

  • Introduced crash reporting capabilities for mobile applications on Cloud Foundry.
  • Added support for generating an app with crash reporting capabilities in the SAP BTP SDK Assistant for iOS.

See Crash Reporting Overview for details.

Support for App Extensions Update for 6.0

  • Introduced SecurityManager and AuxiliaryCommunication components in SAPFoundation to enable secure and reliable communication between the app and the app extension processes.
  • Added support for creating widget extensions in the SAP BTP SDK Assistant for iOS.

See Widget Extensions for details.

Offline OData Library for SAP BTP SDK for iOS Version 6.0

  • Support to remove a non-stream defining query (a stream-defining query pertains to a downloaded media entity, and is only used to download a media stream) from the opened offline store when allow_defining_query_removal is enabled on the server.
  • Introduced new API getDefiningQueries from class OfflineODataProvider, which returns all existing defining queries.

See Removing Defining Queries for details.

  • Support OData version 4 with two new features:

    • Enum type
    • Stream property
  • Support OData version 4 with the following limitations:

    • OData Atom (xml) is not supported
    • Content-ID referencing in body and Content-ID referencing across change sets are not supported
    • Binds for a collection of value navigation properties in a PATCH request are not supported
    • Modification operations in batches outside of change sets are not supported
    • Bound actions and functions are not supported
    • Unbound actions and functions are not supported
    • Collection properties are not supported
    • Spatial types are not supported
    • Singleton is not supported
    • Derived entities are not supported
    • Containment navigation properties are not supported
    • $filter operations on date (such as add and sub) are not supported
    • System query options $search and $index are not supported
    • Built-in functions or literals: case, $level, $all, $each, $it, and $root are not supported
    • Upserting an entity is not supported

See OData Version 4.0 Support and Limitations for details.

  • Support localized progress default messages.

See Progress API for details.

Fiori for iOS for SAP BTP SDK for iOS Version 6.0

Floor Plan Update for 6.0

Floor plan provides a quick and easy way to build a full-screen list (FUIListFloorplan) or sectioned page (FUIObjectFloorplan) that complies with the List Report and Object patterns, respectively, in the SAP Fiori Design Guidelines.

See List floor plan and Object floor plan for details.

Chart Enhancement Update for 6.0

  • All chart types now support pinch and zoom.
  • Minor UI updates.
  • Performance improvement.

Color Palette Update for 6.0

Introduced a new palette (version 5) in which some existing color styles have been updated and new color styles for elevated colors have been added.

Chart in Object Header Update for 6.0

Enhanced FUIObjectHeaderChartView layout to better support long KPI text.

See the FUIObjectHeaderChartView API for details.

Passcode Screen Update for 6.0

Added new APIs in FUIPasscodeController for more customization options.

See the FUIPasscodeController API for details.

Grid Table Update for 6.0

Enforce column layout in compact mode by setting useColumnLayoutInCompact.

See the FUIGridTableViewCell API for details

Copyable Content Update for 6.0

Add the isContentCopyable API to enable/disable the ability to copy content in components conforming to the FUIContentCopyable protocol.

Multi-User Onboarding Screen Update for 6.0

Introduce FUIMultiUserPasscodeController to support the multi-user onboarding use case.

See the FUIMultiUserPasscodeController API for details.

SAP BTP SDK Assistant for iOS for SAP BTP SDK for iOS Version 6.0

  • Added an end-user license agreement (EULA) consent screen to the Assistant. For fresh installations of the Assistant, it is mandatory to consent to the end-user license agreement to be able to use the Assistant.

  • Added support for predefined sample destinations during app creation on Cloud Foundry. For building sample apps easily, sample OData destinations configured with a sample OData Enterprise Sales and Procurement Model (ESPM) service are available, for both OData V2 and V4.

  • Added improvements to the structure of the app generated by the Assistant. The app code has been separated into individual components/frameworks to make it easy to plug-in/plug-out individual components (such as generated proxy classes). Such modularization is also helpful in reusing code between the app and app extensions (such as app widgets).


Last update: November 28, 2023