Skip to content

Commit 379855e

Browse files
committed
Release 1.1.2
1 parent 943152e commit 379855e

File tree

185 files changed

+1135
-172
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

185 files changed

+1135
-172
lines changed

CHANGELOG.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,14 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [1.1.2] - 2025-03-06
9+
10+
### Changed
11+
- Enhanced the session analytics feature to work better across different environments.
12+
13+
### Removed
14+
- Removed the support for automatic processing of DevRev push notifications. For more info, please refer to the integration guide (README.md).
15+
816
## [1.1.1] - 2025-02-25
917

1018
### Fixed

DevRevSDK.doccarchive.zip

-19 Bytes
Binary file not shown.

DevRevSDK.podspec

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
Pod::Spec.new do |spec|
22
spec.name = "DevRevSDK"
3-
spec.version = "1.1.1"
3+
spec.version = "1.1.2"
44
spec.summary = "DevRev SDK, used for integrating DevRev services into your iOS app."
55
spec.homepage = "https://devrev.ai"
66
spec.license = "Apache 2.0"
77
spec.author = { "DevRev" => "[email protected]" }
88
spec.platform = :ios, "15.0"
99
spec.source = {
10-
http: "https://github.com/devrev/devrev-sdk-ios/releases/download/v1.1.1/DevRevSDK.xcframework.zip",
10+
http: "https://github.com/devrev/devrev-sdk-ios/releases/download/v1.1.2/DevRevSDK.xcframework.zip",
1111
type: :zip,
1212
headers: [
1313
"Accept: application/octet-stream",

DevRevSDK.xcframework.zip

-34.8 KB
Binary file not shown.

MIGRATION.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# Migration Guide
2+
This guide and chart should help facilitate the transition from the legacy UserExperior SDK to the new DevRev SDK in your iOS application, providing insights into feature equivalents and method changes.
3+
4+
## Feature Equivalence Chart
5+
6+
| Feature | UserExperior SDK | DevRev SDK |
7+
|-|-|-|
8+
| Installation | `pod 'UserExperior', '~> <version>` | SPM: `https://github.com/devrev/devrev-sdk-ios`<br />CocoaPods: `pod 'DevRevSDK', '~> <version>` |
9+
| Initialization | `UserExperior.startRecording(_ versionKey: String)` | `DevRev.configure(appID: String)` |
10+
| User Identification | `UserExperior.setUserIdentifier(_ userIdentifier: String)` | `DevRev.identifyAnonymousUser(userID: String)`<br />`DevRev.identifyUnverifiedUser(_ identity: Identity)`<br />`DevRev.updateUser(_ identity: Identity)`<br /> `identifyVerifiedUser( _ userID: String, sessionToken: String)`<br />`DevRev.logout(deviceID: String)` |
11+
| Event Tracking | `UserExperior.logEvent(_ eventName: String)` | `DevRev.trackEvent(name: String, properties: [String: String])` |
12+
| Session Recording | `UserExperior.stopRecording()`<br />`UserExperior.pauseRecording()`<br />`UserExperior.resumeRecording()` | `DevRev.startRecording()`<br />`DevRev.stopRecording()`<br />`DevRev.pauseRecording()`<br />`DevRev.resumeRecording()`<br />`DevRev.processAllOnDemandSessions()` |
13+
| Opting in/out | `UserExperior.consentOptIn()`<br />`UserExperior.consentOptOut()`<br />`UserExperior.getConsentStatus`<br />`UserExperior.getOptOutStatus` | `DevRev.stopAllMonitoring()`<br />`DevRev.resumeAllMonitoring()` |
14+
| Session Properties | `UserExperior.setUserProperties(_ properties: [String: Any])` | `DevRev.addSessionProperties(properties: [String: String])`<br />`DevRev.clearSessionProperties()` |
15+
| Masking Sensitive Data | `UserExperior.markSensitiveViews(_ viewsToSecure: NSArray)`<br />`UserExperior.unmarkSensitiveViews(_ viewsToSecure: NSArray)` | `DevRev.markSensitiveViews(_ sensitiveViews: [UIView])`<br />`DevRev.unmarkSensitiveViews(_ sensitiveViews: [UIView])` |
16+
| Timers | `UserExperior.startTimer(_ timerName: String)`<br />`UserExperior.endTimer(_ timerName: String)` | `DevRev.startTimer(_ name: String, properties: [String: String])`<br />`DevRev.stopTimer(_ name: String, properties: [String: String])` |
17+
| PLuG support chat | Not supported. | `DevRev.showSupport(isAnimated: Bool)`<br />`DevRev.showSupport(from parentViewController: UIViewController, isAnimated: Bool)`<br />`DevRev.showSupport(from navigationController: UINavigationController, isAnimated: Bool)`<br />`DevRev.createSupportConversation(isAnimated: Bool)`<br />`DevRev.shouldDismissModalsOnOpenLink`<br />`DevRev.inAppLinkHandler` |
18+
| Push Notifications | Not supported. | `DevRev.registerDeviceToken(_ deviceToken: Data, deviceID: String)`<br />`DevRev.processPushNotification(_ userInfo: [String: String])` |

Package.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ let package = Package(
1818
targets: [
1919
.binaryTarget(
2020
name: "DevRevSDK",
21-
url: "https://github.com/devrev/devrev-sdk-ios/releases/download/v1.1.1/DevRevSDK.xcframework.zip",
22-
checksum: "549a08539cf2601ec7e73b67ae5a58979d917b3f4daa5f30ebf3e66b74315095"
21+
url: "https://github.com/devrev/devrev-sdk-ios/releases/download/v1.1.2/DevRevSDK.xcframework.zip",
22+
checksum: "53381d4c965b14a7b37a0a77cf3647bac3a97bfd7f1e8921406a1f4d294cec31"
2323
)
2424
]
2525
)

README.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -457,12 +457,15 @@ Task {
457457
```
458458

459459
#### Handle push notifications
460-
To properly handle push notifications, implement the following method, typically in either the `UNUserNotificationCenterDelegate.userNotificationCenter(_:didReceive:)` or `UIApplicationDelegate.application(_:didReceiveRemoteNotification:fetchCompletionHandler:)`:
460+
Push notifications coming to the DevRev SDK need to be handled manually. To properly handle them, implement the following method, typically in either the `UNUserNotificationCenterDelegate.userNotificationCenter(_:didReceive:)` or `UIApplicationDelegate.application(_:didReceiveRemoteNotification:fetchCompletionHandler:)`:
461461

462462
```swift
463463
DevRev.processPushNotification(_:)
464464
```
465465

466+
> [!IMPORTANT]
467+
> For convenience, this method provides two overloads that accept `userInfo` as either `[AnyHashable: Any]` or `[String: any Sendable]` dictionary types.
468+
466469
##### Example
467470
```swift
468471
func userNotificationCenter(

Samples/SampleSwiftUI/HomeView.swift

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
import Foundation
2+
import SwiftUI
3+
import DevRevSDK
4+
5+
struct HomeView: View {
6+
@SwiftUI.State private var isConfigured = false
7+
@SwiftUI.State private var isUserIdentified = false
8+
@SwiftUI.State private var isMonitoringEnabled = false
9+
10+
var body: some View {
11+
NavigationView {
12+
List {
13+
Section(header: Text("Status")) {
14+
StatusRow(
15+
status: "Is the SDK configured?",
16+
isComplete: $isConfigured
17+
)
18+
StatusRow(
19+
status: "Is the user identified?",
20+
isComplete: $isUserIdentified
21+
)
22+
StatusRow(
23+
status: "Is session monitoring enabled?",
24+
isComplete: $isMonitoringEnabled
25+
)
26+
}
27+
28+
Section(header: Text("Features")) {
29+
NavigationLink(destination: IdentificationView()) {
30+
Text("Identification")
31+
}
32+
NavigationLink(destination: PushNotificationsView()) {
33+
Text("Push Notifications")
34+
}
35+
NavigationLink(destination: SupportView()) {
36+
Text("Support")
37+
}
38+
NavigationLink(destination: SessionAnalyticsView()) {
39+
Text("Session Analytics")
40+
}
41+
}
42+
43+
Section(header: Text("Debug")) {
44+
Button(
45+
action: {
46+
print("The app will crash now!")
47+
let array = [Int]()
48+
_ = array[1]
49+
}
50+
) {
51+
Text("Force a crash")
52+
}
53+
}
54+
}
55+
.navigationTitle("DevRev SDK")
56+
.navigationBarItems(trailing: RefreshButton(action: updateStatuses))
57+
.refreshable {
58+
await updateStatuses()
59+
}
60+
.task {
61+
await updateStatuses()
62+
}
63+
}
64+
}
65+
66+
private func updateStatuses() async {
67+
isConfigured = await DevRev.isConfigured
68+
isUserIdentified = await DevRev.isUserIdentified
69+
isMonitoringEnabled = DevRev.isMonitoringEnabled
70+
}
71+
}
72+
73+
#Preview {
74+
HomeView()
75+
}

Samples/SampleSwiftUI/SampleApp.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ struct SampleApp: App {
77

88
var body: some Scene {
99
WindowGroup {
10-
ContentView()
10+
HomeView()
1111
}
1212
}
1313
}

Samples/SampleUIKit/.DS_Store

-2 KB
Binary file not shown.

0 commit comments

Comments
 (0)