IMPORTANT: Due to a repository migration 7/2022, your netrc machine
should be updated to rbsc.repositories.cloud.sap
. You will likely experience authentication failure without making this change.
This repository contains the CocoaPods specifications for frameworks in the SAP Business Technology Platform SDK for iOS. Frameworks downloaded here are identical to those available through SAP Service Marketplace, and on the SAP Developer Site.
If you want to consume the binary frameworks through Apple's Swift Package Manager (SPM) then visit https://github.com/SAP/cloud-sdk-ios.
- Ruby
- Cocoapods dependency manager
- Technical user & password, for repositories.cloud.sap
- Apple Xcode IDE
- For SDK version >=5 on Mac Catalyst, script
codesign.py
from SAP BTP SDK for iOS Assistant
Ruby versions 2.0 and above are included by default in macOS releases since at least El Capitan (10.11). Additional installation techniques are documented here.
Homebrew is a commonly used package manager on macOS. Installing Ruby using Homebrew is easy:
brew install ruby
Cocoapods is a dependency manager for Swift and Objective-C Cocoa projects.
Documentation is available at cocoapods.org.
Installation is a Ruby gem install
command; updates are done with gem
as well.
$ sudo gem install cocoapods
Xcode may be installed via the Mac App Store, or, specific versions may be downloaded at developer.apple.com/download.
The current version of Xcode which is supported by the latest SAP binaries is Xcode 11.
The SDK binaries are hosted in SAP's Internet-facing repository, which requires authenticated access. Before running pod update
, you must visit the Technical Users' UI Home Page to obtain a technical username/password.
SAP Customers & Partners: use your S-User credentials
SAP Employees: use your SAP email username & GLOBAL credentials
Open, or create a new file at ~/.netrc
.
Add an entry which includes the username password credential pair, as follows:
machine rbsc.repositories.cloud.sap
login sap-xxxxxx
password xxxxxxxxxxxxxxxxxx
The
machine
name was updated 7/2022 torbsc.repositories.cloud.sap
. Existing netrc entries should be updated accordingly. The existing technical user credentials should remain valid. If not, please re-generate and update in the netrc file.
The netrc credential technique is a stand cURL API. For complete documentation, see gnu.org.
Specs for the following pods are registered in the repository source: https://github.com/SAP-samples/cloud-sdk-ios-specs
.
SAPFoundation
SAPCommon
SAPFiori
SAPFioriFlows
SAPOData
SAPOfflineOData
SAPML
source 'https://github.com/SAP-samples/cloud-sdk-ios-specs'
platform :ios, '14.0'
use_frameworks!
target 'MyApp' do
pod 'SAPCommon', '~> 6.0'
pod 'SAPFoundation', '~> 6.0'
pod 'SAPFiori', '~> 6.0'
pod 'SAPFioriFlows', '~> 6.0'
pod 'SAPOfflineOData', '~> 6.0'
pod 'SAPML', '~> 6.0'
end
The dependency manifest file for a Cocoapods-managed project is a Podfile.
The Podfile is a specification that describes the dependencies of the targets of one or more Xcode projects. The file should simply be named Podfile
, and should be stored in the same directory as the associated xcodeproj
file(s).
Each dependency supported by Cocoapods is called a Pod. To add a pod as a dependency of a Target, write the entry into the Podfile
.
platform :ios, '11.0'
use_frameworks!
target 'MyApp' do
pod 'SwiftConfettiView'
end
Each Pod should support semantic versioning, such that developers may specify a particular version of a dependency, a minimum, maximum, or range. For pods whose source is available, the version may also be a particular git branch or commit.
SAP framework dependencies are distributed as binaries, and thus support only major, minor, patch versioning. For the SAP BTP SDK for iOS, these equate to: major = major version, minor = service pack ("SP"), patch = patch level ("PL").
3.0 SP01 PL03 == 3.1.3
Cocoapods maintains a central repository of 'specifications' for each pod (a podspec) which is publicly published. When parsing the Podfile, cocoapods checks the central repository by default, for specs associated with each pod
listed for the Target.
Since SAP's binaries require authentication for access, their specifications cannot be published to the central repository. Therefore, this github repo serves as a secondary spec repository source.
To add pods from the SAP spec repository to your Podfile, you should list this source, either in the header of the Podfile, or in-line with the associated pod(s).
If you are adding the
/SAP-samples/cloud-sdk-ios-specs
source to the Podfile header, cocoapods will not be able to locate pods documented in the central repository, unless you also explicitly add the central repository as a source.source 'https://github.com/CocoaPods/Specs.git' source 'https://github.com/SAP-samples/cloud-sdk-ios-specs'Alternatively, list the source in-line:
target 'MyApp' do pod 'SAPCommon', '~> 5.0', :source => 'https://github.com/SAP-samples/cloud-sdk-ios-specs' pod 'SwiftConfettiView'
Cocoapods provides the install
and update
commands for importing dependencies. Either will pull new dependencies; install
does not check the spec repository for new versions, while update
checks the remote spec repositories for new podspec files, before downloading dependencies.
For additional details on using cocoapods, see the guides.
Version 5.0.x of the SDK introduces the .xcframework artifact type, replacing .framework. There is no effect in switching from framework to xcframework on iOS platform, but Mac Catalyst introduces a new Hardened Runtime feature, which requires binaries to be commonly signed. A python script is available in the SAP BTP SDK for iOS to facilitate this signing. The simplest configuration is to mkdir scripts
in the root of your project directory, and export the script there.
To install it to an application configured with Cocoapods, add a Run Script Build Phase to your target, after the [CP] Prepare Artifacts phase.
For more info, see blog.
This service is not available for Trial versions of the SDK.
Quoting the SAP support site, “you can download the SAP products that are associated with your S-user ID. While every visitor can browse the list of software products without any special permissions, downloading files requires the Software Download authorization; to request it, contact a user administrator in your company.” This restriction also applies to the cloud shipment channel.
Root Cause:
- Folder
~/.cocoapods/repos/sap-samples-cloud-sdk-ios-specs
is either missing or not up-to-date.
Solution:
- Make sure that you added
source 'https://github.com/SAP-samples/cloud-sdk-ios-specs'
to your Podfile header. - Delete folder
~/.cocoapods/repos/sap-samples-cloud-sdk-ios-specs
- Run
pod repo update
to get the latest specifications.
None.
For an issue related to the contents of this repository, please file an Issue.
For issues related to any of the referenced resources and binaries, please file a support ticket to SAP through the regular channels.
If you wish to make a contribution to the repository, please submit a Pull Request. It will be reviewed by the maintainers, however, we cannot commit to merging all contributions.
Support for Carthage binary distribution
Copyright (c) 2009-2020 SAP SE or an SAP affiliate company. All rights reserved. This project is licensed under the Apache Software License, version 2.0 except as noted otherwise in the LICENSE file.