Skip to content

Commit aecc74a

Browse files
authored
Merge pull request #264 from Iterable/MOB-1032
[MOB-1032] update docs
2 parents 35726df + 5e98a37 commit aecc74a

File tree

6 files changed

+119
-104
lines changed

6 files changed

+119
-104
lines changed

CHANGELOG.md

Lines changed: 29 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,19 @@
22
All notable changes to this project will be documented in this file.
33
This project adheres to [Semantic Versioning](http://semver.org/).
44

5+
## 6.2.0
6+
#### Added
7+
- Moved Mobile Inbox support to GA (no longer in beta), and:
8+
- Added support for various ways to customize the default interface for a mobile inbox
9+
- Added a sample project that demonstrates how to customize the default interface for a mobile inbox
10+
- Added tracking for inbox sessions (when the inbox is visible in the app) and inbox message impressions (when a individual message's item is visible in the mobile inbox message list)
11+
- Added support for Swift Package Manager
12+
13+
#### Deprecated
14+
Please see each method's source code documentation for details.
15+
- `IterableAPI.track(inAppOpen messageId: String)`
16+
- `IterableAPI.track(inAppClick messageId: String, buttonURL: String)`
17+
518
## 6.1.5
619
#### Fixed
720
- Fixed in-apps where display types that were not `fullScreen` were not displaying properly or becoming unresponsive.
@@ -14,49 +27,45 @@ This project adheres to [Semantic Versioning](http://semver.org/).
1427
## 6.1.3
1528
#### Changed
1629
- Converted a log message variable to be interpreted as an UTF8 String (thanks, chunkyguy!)
17-
- Enabled BUILD_LIBRARY_FOR_DISTRIBUTION for better compatibility across development environments
30+
- Enabled `BUILD_LIBRARY_FOR_DISTRIBUTION` for better compatibility across development environments
1831

1932
## 6.2.0-beta1
2033
#### Added
21-
- [Mobile inbox](https://github.com/Iterable/swift-sdk/tree/inbox#mobile-inbox)
22-
- [Mobile Inbox related events](https://github.com/Iterable/swift-sdk/tree/inbox#mobile-inbox-events-and-the-events-lifecycle)
34+
- [Mobile Inbox](https://github.com/Iterable/swift-sdk/#mobile-inbox)
35+
- [Mobile Inbox related events](https://github.com/Iterable/swift-sdk/#mobile-inbox-events-and-the-events-lifecycle)
2336

2437
#### Removed
2538
- `IterableAPI.spawnInAppNotification(_:)`
26-
- In-app messages are automatically shown by SDK now. Please check our [migration guide](https://github.com/iterable/swift-sdk/#migrating-in-app-messages-from-the-previous-version-of-the-sdk).
39+
- In-app messages are automatically shown by SDK now. Please check our [migration guide](https://github.com/iterable/swift-sdk/#migrating-in-app-messages-from-the-previous-version-of-the-sdk).
2740
- `IterableAPI.get(inAppMessages:)`
28-
- Use `IterableAPI.inAppManager.getMessages()` instead
41+
- Use `IterableAPI.inAppManager.getMessages()` instead
2942

3043
#### Changed
3144
- There is no need to set `IterableConfig.pushIntegrationName` for new projects.
3245

3346
#### Deprecated
3447
Please see method documentation for details about how to replace them.
35-
3648
- `IterableAPI.inAppConsume(messageId:)`
3749
- `IterableAPI.showSystemNotification(..)`
3850
- `IterableAPI.getAndTrack(deeplink:callbackBlock:)`
3951

40-
#### Fixed
41-
- nothing yet
42-
4352
## 6.1.2
4453
#### Fixed
4554
- Fixed a bug in token to hex conversion code.
4655

4756
## 6.1.1
4857
#### Changed
49-
- Use WKWebView instead of deprecated class UIWebView.
50-
- Migrated all Objective C code to Swift.
58+
- Use `WKWebView` instead of deprecated class `UIWebView`.
59+
- Migrated all Objective-C code to Swift.
5160

5261
## 6.2.0-dev1
5362
#### Added
5463
- Inbox
55-
- Brand new inbox functionality. Please see documentation for more details.
64+
- Brand new inbox functionality. Please see documentation for more details.
5665

5766
## 6.1.0
5867
#### Changed
59-
- In this version we have changed the way we use in-app notifications. In-app messages are now being sent asynchronously and your code can control the order and time in which an in-app notification will be shown. There is no need to poll for new in-app messages. Please refer to the **in-app messages** section of README file for how to use in-app messages. If you are already using in-app messages, please refer to [migration guide](https://github.com/iterable/swift-sdk##migrating-from-a-version-prior-to-610) section of README file.
68+
- In this version we have changed the way we use in-app notifications. In-app messages are now being sent asynchronously and your code can control the order and time in which an in-app notification will be shown. There is no need to poll for new in-app messages. Please refer to the **in-app messages** section of README file for how to use in-app messages. If you are already using in-app messages, please refer to [migration guide](https://github.com/iterable/swift-sdk#migrating-from-a-version-prior-to-610) section of README file.
6069

6170
## 6.1.0-beta4
6271
#### Changed
@@ -70,22 +79,22 @@ Please see method documentation for details about how to replace them.
7079
## 6.1.0-beta2
7180
#### Added
7281
- Support for `action://your-custom-action-name` URL scheme for calling custom actions
73-
- For example, to have `IterableCustomActionDelegate` call a custom `buyCoffee` action when a user taps on an in-app message's **Buy** button.
82+
- For example, to have `IterableCustomActionDelegate` call a custom `buyCoffee` action when a user taps on an in-app message's **Buy** button.
7483
- Support for reserved `itbl://sdk-custom-action` scheme for SDK internal actions.
75-
- URL scheme `itbl://sdk-custom-action` is reserved for internal SDK actions. Do not use it for custom actions.
76-
- For example, future versions of the SDK may allow buttons to call href `itbl://delete` to delete an in-app message.
84+
- URL scheme `itbl://sdk-custom-action` is reserved for internal SDK actions. Do not use it for custom actions.
85+
- For example, future versions of the SDK may allow buttons to call href `itbl://delete` to delete an in-app message.
7786

7887
#### Fixed
7988
- Carthage support with Xcode 10.2
80-
- XCode 10.2 Warnings
89+
- Xcode 10.2 Warnings
8190
- URL Query parameters encoding bug
8291

8392
## 6.1.0-beta1
8493
#### Added
8594
- We have improved the in-app messaging implementation significantly.
86-
- The SDK now maintains a local queue and keep it in sync with the server-side queue automatically.
87-
- Iterable servers now notify apps via silent push messages whenever the in-app message queue is updated.
88-
- In-app messages are shown by default whenever they arrive.
95+
- The SDK now maintains a local queue and keep it in sync with the server-side queue automatically.
96+
- Iterable servers now notify apps via silent push messages whenever the in-app message queue is updated.
97+
- In-app messages are shown by default whenever they arrive.
8998
- It should be straightforward to migrate to the new implementation. There are, however, some breaking changes. Please see [migration guide](https://github.com/iterable/swift-sdk#Migrating-in-app-messages-from-the-previous-version-of-the-SDK) for more details.
9099

91100
#### Removed
@@ -133,17 +142,3 @@ Please see method documentation for details about how to replace them.
133142

134143
#### Fixed
135144
- Fixed issue that affects clients who are upgrading from Objective C Iterable SDK to Swift SDK. If you have attribution info stored in the previous Objective C SDK, it was not being deserialized in Swift SDK.
136-
137-
## [Unreleased]
138-
#### Added
139-
- nothing yet
140-
141-
#### Removed
142-
- nothing yet
143-
144-
#### Changed
145-
- nothing yet
146-
147-
#### Fixed
148-
- nothing yet
149-

Iterable-iOS-AppExtensions.podspec

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ Pod::Spec.new do |s|
1717

1818
s.name = "Iterable-iOS-AppExtensions"
1919
s.module_name = "IterableAppExtensions"
20-
s.version = "6.2.0-beta1"
20+
s.version = "6.2.0"
2121
s.summary = "App Extensions for Iterable SDK"
2222

2323
s.description = <<-DESC
@@ -48,9 +48,7 @@ Pod::Spec.new do |s|
4848
#
4949

5050
s.author = { "Tapash Majumder" => "[email protected]",
51-
"Victor Babenko" => "[email protected]",
52-
"Jay Kim" => "[email protected]",
53-
"David Truong" => "[email protected]" }
51+
"Jay Kim" => "[email protected]" }
5452

5553
# ――― Platform Specifics ――――――――――――――――――――――――――――――――――――――――――――――――――――――― #
5654
#

Iterable-iOS-SDK.podspec

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ Pod::Spec.new do |s|
1717

1818
s.name = "Iterable-iOS-SDK"
1919
s.module_name = "IterableSDK"
20-
s.version = "6.2.0-beta1"
20+
s.version = "6.2.0"
2121
s.summary = "Iterable's official SDK for iOS"
2222

2323
s.description = <<-DESC
@@ -48,9 +48,7 @@ Pod::Spec.new do |s|
4848
#
4949

5050
s.author = { "Tapash Majumder" => "[email protected]",
51-
"Victor Babenko" => "[email protected]",
52-
"Jay Kim" => "[email protected]",
53-
"David Truong" => "[email protected]" }
51+
"Jay Kim" => "[email protected]" }
5452

5553
# ――― Platform Specifics ――――――――――――――――――――――――――――――――――――――――――――――――――――――― #
5654
#

README.md

Lines changed: 80 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@
77

88
- [Installation](#installation)
99
- [Installing with a dependency manager](#installing-with-a-dependency-manager)
10-
- [Carthage](#carthage)
10+
- [Swift Package Manager](#swift-package-manager)
1111
- [CocoaPods](#cocoapods)
12+
- [Carthage](#carthage)
1213
- [Manual Installation](#manual-installation)
13-
- [Beta versions](#beta-versions)
1414
- [Migrating from a version prior to 6.1.0](#migrating-from-a-version-prior-to-610)
1515
- [Sample projects](#sample-projects)
1616
- [Configuring the SDK](#configuring-the-sdk)
@@ -34,68 +34,29 @@ The Iterable iOS SDK is a Swift implementation of an iOS client for Iterable, fo
3434

3535
Before starting with the SDK, you will need to set up Iterable push notifications for your app.
3636

37-
For more information, read Iterable's [Setting up iOS Push Notifications](https://support.iterable.com/hc/articles/115000315806-Setting-Up-iOS-Push-Notifications) guide.
37+
For more information, read Iterable's [Setting up iOS Push Notifications](https://support.iterable.com/hc/articles/115000315806) guide.
3838

3939
## Installation
4040

41-
To install this SDK, use [Carthage](https://github.com/Carthage/Carthage),
42-
[CocoaPods](https://cocoapods.org/), or install it manually.
43-
44-
### Carthage
45-
46-
To use Carthage to install the SDK, first [install Carthage](https://github.com/Carthage/Carthage#installing-carthage).
47-
Then, follow these steps:
48-
49-
1. If it does not yet exist, create a file named **Cartfile** in the same
50-
directory as your Xcode project.
51-
52-
2. Edit **Cartfile**, adding the following line:
53-
54-
```
55-
github "Iterable/swift-sdk" ~> 6.1.4
56-
```
57-
58-
3. In the terminal, in the same directory as your **Cartfile**, run the
59-
following command:
60-
61-
```
62-
carthage update
63-
```
64-
65-
4. In Xcode, navigate to the **Build Phases** section for your app's target.
66-
Click the **+** icon and select **New Run Script Phase**. A **Run Script**
67-
section will appear.
68-
69-
5. In the **Run Script** section, below the **Shell** input, add the
70-
following command:
41+
To install this SDK, use [Carthage](https://github.com/Carthage/Carthage), [CocoaPods](https://cocoapods.org/), [Swift Package Manager](https://swift.org/package-manager/) (through Xcode or command line), or install it manually.
7142

72-
```
73-
/usr/local/bin/carthage copy-frameworks
74-
```
75-
6. In the **Input Files** section, click **+** and add the following path:
43+
### Swift Package Manager
7644

77-
```
78-
$(SRCROOT)/Carthage/Build/iOS/IterableSDK.framework
79-
```
45+
In Xcode 11, Apple integrated the Swift Package Manager into Xcode—an
46+
intuitive, easy way to add dependencies to your project.
8047

81-
7. In the **Output Files** section, add the path to the copied framework:
48+
1. To include Iterable's SDK, navigate in Xcode to **File** >
49+
**Swift Packages** > **Add Package Dependency**.
8250

83-
```
84-
$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/IterableSDK.framework
85-
```
51+
2. Enter `https://github.com/iterable/swift-sdk` as the package repository URL.
8652

87-
8. Add **&lt;Xcode project directory&gt;/Carthage/Build/iOS/IterableSDK.framework**
88-
to your Xcode project by dragging it into the Xcode Project Navigator.
89-
When prompted by Xcode, add the framework to your app's target.
53+
3. Select the version of the SDK you'd like to install (the default settings
54+
will be set to the latest stable version).
9055

91-
9. If your app will be using push notifications that contain media
92-
attachments (images, etc.), repeat steps 6 through 8, substituting
93-
**IterableAppExtensions.framework** for **IterableSDK.framework**. In step 8,
94-
add **IterableAppExtensions.framework** to your project's Notification
95-
Service Extension target (instead of the app target).
56+
4. Select **IterableSDK**. If necessary for your use case, also select
57+
**IterableAppExtensions**.
9658

97-
For more information, take a look at the [Carthage](https://github.com/Carthage/Carthage)
98-
documentation.
59+
5. Click **Finish**.
9960

10061
### CocoaPods
10162

@@ -154,6 +115,63 @@ extensions, if necessary):
154115
For more information, take a look at the [CocoaPods](https://cocoapods.org/)
155116
documentation.
156117
118+
### Carthage
119+
120+
To use Carthage to install the SDK, first [install Carthage](https://github.com/Carthage/Carthage#installing-carthage).
121+
Then, follow these steps:
122+
123+
1. If it does not yet exist, create a file named **Cartfile** in the same
124+
directory as your Xcode project.
125+
126+
2. Edit **Cartfile**, adding the following line:
127+
128+
```
129+
github "Iterable/swift-sdk" ~> 6.2.0
130+
```
131+
132+
3. In the terminal, in the same directory as your **Cartfile**, run the
133+
following command:
134+
135+
```
136+
carthage update
137+
```
138+
139+
4. In Xcode, navigate to the **Build Phases** section for your app's target.
140+
Click the **+** icon and select **New Run Script Phase**. A **Run Script**
141+
section will appear.
142+
143+
5. In the **Run Script** section, below the **Shell** input, add the
144+
following command:
145+
146+
```
147+
/usr/local/bin/carthage copy-frameworks
148+
```
149+
150+
6. In the **Input Files** section, click **+** and add the following path:
151+
152+
```
153+
$(SRCROOT)/Carthage/Build/iOS/IterableSDK.framework
154+
```
155+
156+
7. In the **Output Files** section, add the path to the copied framework:
157+
158+
```
159+
$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/IterableSDK.framework
160+
```
161+
162+
8. Add **&lt;Xcode project directory&gt;/Carthage/Build/iOS/IterableSDK.framework**
163+
to your Xcode project by dragging it into the Xcode Project Navigator.
164+
When prompted by Xcode, add the framework to your app's target.
165+
166+
9. If your app will be using push notifications that contain media
167+
attachments (images, etc.), repeat steps 6 through 8, substituting
168+
**IterableAppExtensions.framework** for **IterableSDK.framework**. In step 8,
169+
add **IterableAppExtensions.framework** to your project's Notification
170+
Service Extension target (instead of the app target).
171+
172+
For more information, take a look at the [Carthage](https://github.com/Carthage/Carthage)
173+
documentation.
174+
157175
### Manual installation
158176
159177
Attached to the release, you will find two framework bundles:
@@ -579,7 +597,7 @@ func handle(iterableURL url: URL, inContext context: IterableActionContext) -> B
579597
#### Email deep links
580598

581599
For Universal Links to work with email link rewriting,
582-
[set up an **apple-app-site-association** file](https://support.iterable.com/hc/articles/115000440206-Setting-up-iOS-Universal-Links)
600+
[set up an **apple-app-site-association** file](https://support.iterable.com/hc/articles/115000440206)
583601
in your Iterable project.
584602

585603
When a user clicks a link in an email, the SDK will call the
@@ -808,11 +826,16 @@ Iterable will track uninstalls with no additional work by you.
808826

809827
To do this, Iterable sends a silent push notification some time (currently, 12 hours) after a campaign has been sent. Based on this silent push notification, if Iterable receives feedback that the device token is no longer valid, it assigns an uninstall to the device based on the prior campaign. Similarly, if a "real" campaign uncovers an invalid device token, it will also check for a prior (within 12 hours) campaign to mark as the cause for the uninstall. If there was no recent campaign, Iterable still tracks the uninstall, but does not attribute it to a campaign.
810828

811-
> &#x26A0; Apple has changed the way device tokens expire, so they may take up to 8 days to detect if they are invalid. This does mean that uninstall tracking may not be accurately attributable to campaigns sent within that period of time.
829+
> &#x26A0; **IMPORTANT**
830+
> Apple has changed the way device tokens expire, so they may take up to 8 days to detect if they are invalid. This does mean that uninstall tracking may not be accurately attributable to campaigns sent within that period of time.
812831
813832
## Additional information
814833

815-
For more information, read Iterable's [Mobile Developer Guides](https://support.iterable.com/hc/categories/360002288712)
834+
For more information, take a look at:
835+
836+
- Iterable's [iOS SDK Release Notes](https://support.iterable.com/hc/articles/360027798391)
837+
- Iterable's [Setting Up iOS Push Notifications](https://support.iterable.com/hc/articles/115000315806) guide
838+
- Iterable's [Push Notification Setup FAQs](http://support.iterable.com/hc/articles/206791196)
816839

817840
## License
818841

swift-sdk/Internal/InAppDisplayer.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ class InAppDisplayer: InAppDisplayerProtocol {
7474
return .shown(createResult.futureClickedURL)
7575
}
7676

77+
// deprecated - will be removed in version 6.3.x or above
7778
static func showSystemNotification(withTitle title: String,
7879
body: String,
7980
buttonLeft: String?,

0 commit comments

Comments
 (0)