Installation
Install with Swift Package Manager
For the Xcode 27 and iOS 27 supported release 2026.1.2, follow the shared iOS SDK installation guide. It covers customer token authentication, adding the Core package in Xcode, and installing Core alongside WYSIWYS.
Continue with Configure the SDK below after installation. Obtain the SDK license, Security Server endpoint and, for contract operations, Workflow Engine endpoint for your environment.
Legacy manual installation
The instructions in this section cover the manually distributed SmartContract iOS SDK 2026.0.3, not the 2026.1.2 registry packages. Use the requirements and artifacts delivered with your selected SDK version when integrating an older release.
Prerequisites
- An application targeting iOS 16.6 or newer for 2026.0.3.
- Xcode with an iOS SDK that supports the application's deployment target and a toolchain compatible with the supplied SDK distribution.
- The SDK distribution and a license for the application's Bundle Identifier.
Add the SDK
Add SENSESmartContract.xcframework from the SDK distribution to the application's General → Frameworks, Libraries, and Embedded Content section.
The 2026.0.3 artifact contains static libraries. Select Do Not Embed for this XCFramework. It contains these slices:
| Slice | Destination |
|---|---|
ios-arm64 | iOS devices |
ios-arm64_x86_64-simulator | Apple Silicon and Intel simulators |
Legacy linker settings
For the consuming application target, preserve $(inherited) in Other Linker Flags and include:
$(inherited) -lz -lxml2 -lc++ -all_loadFor Objective-C application targets that consume Swift-containing SDK binaries, ensure Library Search Paths also preserves $(inherited) and includes $(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME).
Configure the SDK
Configure the SDK before creating a session or making SDK requests. The following examples belong in an application method that prepares the signing flow. The configuration owner is SSCConfiguration; Configuration is the object returned by its configuration property.
import SENSESmartContract
guard let configuration = SSCConfiguration.sharedManager().configuration else {
return
}
configuration.secServerUrl = "https://<hostname>/sense/appserver/Server"
configuration.license = "your-sdk-license"
configuration.workflowEngineUrl = "https://<workflow-hostname>/<workflow-path>"
configuration.transmitDeviceSensitiveInformation = falseUse the complete endpoints provided for your environment. The license must match your application's Bundle Identifier. Device-sensitive information transmission is disabled by default; enable it only when required by your integration.
HTTP configuration and proxied hosts
Additional HTTP settings are available through the same configuration object:
guard let configuration = SSCConfiguration.sharedManager().configuration else {
return
}
configuration.httpConfiguration.userAgent = "your-user-agent"
configuration.httpConfiguration.httpHeaders = ["Example-Header": "Example-Value"]
configuration.httpConfiguration.addProxiedHost("example.com")Add hostnames, without a scheme or path, for requests that should use the SDK proxy. The SDK adds the Workflow Engine host when preparing a contract request.
Continue with Getting started to initialize the SDK and open a session.