Skip to content

Commit 3f6181d

Browse files
authored
Merge pull request #179 from docusign/release/4.0.0
Release 4.0.0: ## [v4.0.0] New Native signing module - 03/03/2025 ### Added * Added Configuration `DSM_SETUP_ENABLE_OFFLINE_NORMALIZE_ROTATED_DOCUMENTS_KEY` to allow SDK to detect page rotation on documents and adjust it to ensure tags are rendered upright. ### Changed * Native signing Library for offline signing has been totally refactored, improving usablilty and performance of SDK, also reduced SDK size by *75%*. * Replaced methods for offline envelope signing and offline template sending. Please Refer to migration guide here [MigrationGuidev4.0.0.md](https://github.com/docusign/native-ios-sdk/blob/master/MigrationGuidev4.0.0.md). ### Deprecated * Compose Envelope using UI flow `presentComposeEnvelopeControllerWithPresentingController`. * Non PDF files conversion (eg. .docx and .jpeg etc.) when creating an Envelope using `DSMEnvelopeDefinition`.
2 parents a5e17af + 5335013 commit 3f6181d

File tree

4 files changed

+74
-6
lines changed

4 files changed

+74
-6
lines changed

CHANGELOG.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,18 @@
11
# DocuSign Native iOS SDK Changelog
22

3+
## [v4.0.0] - 03/03/2025
4+
5+
### Added
6+
* Configuration `DSM_SETUP_ENABLE_OFFLINE_NORMALIZE_ROTATED_DOCUMENTS_KEY` to allow the SDK to detect page rotation on documents and adjust it to ensure tags are rendered upright.
7+
8+
### Changed
9+
* The native signing library for offline signing has been completely refactored, improving usability and performance of the SDK, and **reducing the SDK size by 75%**.
10+
* Replaced methods for offline envelope signing and offline template sending. Please refer to migration guide here [MigrationGuidev4.0.0.md](https://github.com/docusign/native-ios-sdk/blob/master/MigrationGuidev4.0.0.md).
11+
12+
### Deprecated
13+
* Compose envelopes using UI flow `presentComposeEnvelopeControllerWithPresentingController`.
14+
* Non-PDF files conversion (eg. .docx and .jpeg etc.) when creating an envelope using `DSMEnvelopeDefinition`.
15+
316
## [v3.5.0] - 01/06/2025
417

518
### Added

DocuSign.podspec

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
Pod::Spec.new do |s|
55
s.name = 'DocuSign'
6-
s.version = '3.5.0'
6+
s.version = '4.0.0'
77
s.summary = 'Docusign Native iOS Framework to sign and send in your iOS apps'
88

99
s.description = <<-DESC
@@ -29,5 +29,5 @@ Pod::Spec.new do |s|
2929
"DocuSignAPI.xcframework"]
3030
s.resource = 'DocuSignSDK.xcframework/**/DocuSignSDK.bundle'
3131
# Update the source path for new release
32-
s.source = { :http => "https://docucdn-a.akamaihd.net/prod/docusigniossdk/3.5.0/DocuSignCombined.zip"}
32+
s.source = { :http => "https://docucdn-a.akamaihd.net/prod/docusigniossdk/4.0.0/DocuSignCombined.zip"}
3333
end

MigrationGuidev4.0.0.md

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
# Docusign iOS SDK version 4.0 Migration guide
2+
3+
## Summary
4+
5+
This guide is for customers who are using Docusign iOS SDK version below 4.0 in their mobile apps. Please refer to this guide to migrate from an older version of Docusign SDK to version 4.0 (and above).
6+
7+
With this new version of SDK, v4.0, we have moved our Envelope offline signing and Template offline Sending to use modern components, with better performance and smaller footprint.
8+
9+
Due to these changes and in our attempt to modularize our SDK, we introduced a new Framework **DocusignNative**. It is still within the same **DocuSignSDK package**, so there are no changes in how you integrate with our SDK either through Cocoapods or through SPM. However, there are some breaking changes when calling methods from `DSMEnvelopesManager` and `DSMTemplatedManager`. These methods have now moved to `NativeSigningManager` in the DocusignNative Module. Here are the steps to migrate these flows.
10+
11+
### Replaced Functionality:
12+
13+
1. **Offline envelope signing**
14+
The method `resumeSigningEnvelope(withPresenting:, envelopeId:, completion:)` inside `DSMEnvelopesManager`, is now simply replaced with a very similar method `resumeSigning(presentingVC:, envelopeId:)` from `NativeSigningManager`. The parameters are still the same, only change is that it’s from a different Manager now and it supports new swift concurrency
15+
16+
17+
```
18+
do {
19+
let vc = try await NativeSigningManager().resumeSigning(presentingVC: presentingController, envelopeId: id)
20+
} catch let error {
21+
print(error)
22+
}
23+
```
24+
25+
2. **Offline Template Sending (and Signing)**
26+
The method `presentSendTemplateControllerWithTemplate(withId:, envelopeDefaults:, pdfToInsert:, insertAtPosition: , signingMode: , presenting:, animated:, completion:)` inside `DSMTemplatesManager`, is now simply replaced with a very similar method `presentSendTemplate(presentingViewController:, templateId:, envelopeDefaults:, insertAtPosition:, pdfToInsert:, animated:)` from `NativeSigningManager`. The parameters are still the same, only change is that it’s from a different Manager now and it **supports new swift concurrency**.
27+
28+
29+
```
30+
do {
31+
let vc = try await self.mNativeSigningManager?.presentSendTemplate(presentingViewController: presentingVC, templateId: templateId, envelopeDefaults: envelopeDefaults, insertAtPosition: .beginning, pdfToInsert: nil, animated: true)
32+
completion(vc, nil)
33+
} catch {
34+
completion(nil, error)
35+
}
36+
```
37+
38+
### Deprecated Functionality:
39+
40+
- Compose Envelope, UI Flow to create envelopes from scratch, has been fully deprecated.
41+
42+
```
43+
presentComposeEnvelopeControllerWithPresentingController
44+
```
45+
46+
- Non-PDF File conversion: Creating `DSMEnvelopeDefinition` with documents that are non-PDF type will cause an error of type `invalidDocumentFormat`.
47+
48+
### Added Functionality:
49+
50+
- New configuration to allow SDK to detect page rotation on documents and adjust it to ensure tags are rendered upright, default value is `false`. Set to `true` in case tags are showing rotated on documents.
51+
52+
```
53+
DSM_SETUP_ENABLE_OFFLINE_NORMALIZE_ROTATED_DOCUMENTS_KEY
54+
```
55+

Package.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,11 @@ let package = Package(
88
products: [
99
.library(name: "DocuSignSDK", targets: ["DocuSignSDK"]),
1010
.library(name: "DocuSignAPI", targets: ["DocuSignAPI"]),
11+
.library(name: "DocusignNative", targets: ["DocusignNative"]),
1112
],
1213
targets: [
13-
// Targets are the basic building blocks of a package. A target can define a module or a test suite.
14-
// Targets can depend on other targets in this package, and on products in packages this package depends on.
15-
.binaryTarget(name: "DocuSignSDK", url: "https://docucdn-a.akamaihd.net/prod/docusigniossdk/3.5.0/DocuSignSDK.zip", checksum: "200a4c1245afe669ca04913e8d8c3494a64e9e9445302067d74fe9fb44a8a2eb"),
16-
.binaryTarget(name: "DocuSignAPI", url: "https://docucdn-a.akamaihd.net/prod/docusigniossdk/3.5.0/DocuSignAPI.zip", checksum: "e95bf8f205de1f6e68169207a995a29fd3e57c96a16daccd0de93558e19047cb"),
14+
.binaryTarget(name: "DocuSignSDK", url: "https://docucdn-a.akamaihd.net/prod/docusigniossdk/4.0.0/DocuSignSDK.zip", checksum: "786b161ab3f03c44a4236feaa95b5ce7781f9eff071631ab8942e6c175bad5b3"),
15+
.binaryTarget(name: "DocuSignAPI", url: "https://docucdn-a.akamaihd.net/prod/docusigniossdk/4.0.0/DocuSignAPI.zip", checksum: "ebd4d38da5689c06d78dcac2dcc7cbfe73f470bfc032ebd9d8bffce0b5490f7a"),
16+
.binaryTarget(name: "DocusignNative", url: "https://docucdn-a.akamaihd.net/prod/docusigniossdk/4.0.0/DocusignNative.zip", checksum: "7f90ce4e4de951fa71e956ebea30f14d38f16a4a6d82bdc9f69b5989c128f747"),
1717
]
1818
)

0 commit comments

Comments
 (0)