Skip to content

Commit cbd64f1

Browse files
committed
Version 2.2
1 parent 47614c4 commit cbd64f1

38 files changed

+1142
-67
lines changed

CHANGES

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,15 @@
1+
= 2.2 (2015-03-23)
2+
3+
* Includes support for real-time (https://www.intercom.io/real-time-messaging).
4+
* Added support for the custom message responder.
5+
* Fixed a display bug in the conversation list where the wrong name could be shown.
6+
* Fixed bug which could cause the wrong number to be displayed in the unread counter within a conversation.
7+
* Fixed an issue where retrying the sending of a message could sometimes fail.
8+
* Fixed a race condition that meant sometimes a new user could not be registered after [Intercom reset] was called.
9+
110
= 2.1.1 (2015-03-10)
211

3-
* Modified the podfile and repo structure to hopefully address some cocoapod related install errors.
12+
* Modified the podspec and repo structure to hopefully address some cocoapod related install errors.
413

514
= 2.1 (2015-03-02)
615

Intercom.framework/Versions/A/Headers/Intercom.h

Lines changed: 82 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11

22
//
33
// Intercom.h
4-
// Intercom for iOS SDK - Version 2.1.1
4+
// Intercom for iOS SDK - Version 2.2
55
//
66
// Created by Intercom on 8/01/2015.
77
// Copyright (c) 2014 Intercom. All rights reserved.
@@ -11,14 +11,9 @@
1111
#import <UIKit/UIKit.h>
1212

1313
#if __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_7_0
14-
#error This version (2.1.1) of the Intercom iOS SDK supports iOS 7.0 upwards.
14+
#error This version (2.2) of the Intercom iOS SDK supports iOS 7.0 upwards.
1515
#endif
1616

17-
__attribute__ ((deprecated))
18-
@protocol IntercomSessionListener <NSObject>
19-
- (void)intercomSessionStatusDidChange:(BOOL)isSessionOpen;
20-
@end
21-
2217
// Use these values to constrain an incoming notification view to a defined section of the window.
2318
typedef NS_ENUM(NSUInteger, ICMPreviewPosition){
2419
ICMPreviewPositionBottomLeft = 0,
@@ -49,7 +44,7 @@ typedef NS_ENUM(NSUInteger, ICMPreviewPosition){
4944
5045
[Intercom registerUserWithEmail:@"[email protected]"];
5146
52-
## Can I track unidentifed users?
47+
## Can I track unidentified users?
5348
5449
Yes, absolutely. If you have an application that doesn't require users to log in, you can call:
5550
@@ -62,7 +57,7 @@ typedef NS_ENUM(NSUInteger, ICMPreviewPosition){
6257
## I'm using a previous SDK version and this looks different, what has changed?
6358
6459
We have re-architected the internals of the iOS SDK to ensure it is as reliable as possible while tracking
65-
your users. We have focused on removing the asychronous behaviour of the SDK for example you no longer need
60+
your users. We have focused on removing the asynchronous behaviour of the SDK. For example you no longer need
6661
to wait for the completion blocks of the old `beginSession` calls before logging events or updating user data.
6762
In doing so the SDK is more nimble and reliable than ever before.
6863
@@ -85,7 +80,7 @@ typedef NS_ENUM(NSUInteger, ICMPreviewPosition){
8580
and opens the SDK if required. You do not need to implement any additional code in order to launch the SDK.
8681
8782
To do this we [safely swizzle](http://blog.newrelic.com/2014/04/16/right-way-to-swizzle/) the public methods
88-
in `UIApplicationDelegate` that handle receiving push notifications. We do not user any private APIs to do this.
83+
in `UIApplicationDelegate` that handle receiving push notifications. We do not use any private APIs to do this.
8984
9085
## More information
9186
@@ -128,9 +123,9 @@ typedef NS_ENUM(NSUInteger, ICMPreviewPosition){
128123
/*!
129124
If you call registerUnidentifiedUser, all activity will be tracked anonymously. If you choose to subsequently
130125
identify that user, all that anonymous activity will be merged into the identified user. This means that you
131-
will no longer see the anonymous user in Intercom, but rather the identified one.
132-
133-
@note We recommend this is called from within the application delegate's didFinishLaunchingWithOptions: method.
126+
will no longer see the anonymous user in Intercom, but rather the identified one.
127+
128+
We recommend this is called from within the application delegate's didFinishLaunchingWithOptions: method.
134129
135130
@note You must call one of the user registration methods in order to start communicating with Intercom.
136131
*/
@@ -145,7 +140,12 @@ typedef NS_ENUM(NSUInteger, ICMPreviewPosition){
145140
This is a userId, supplied by you (e.g. from an existing web service for your product) to represent your
146141
user in Intercom, once set it cannot be changed.
147142
148-
@param userId A unique identifer for your user.
143+
If you are putting the Intercom SDK into an app that has persisted an authentication token or equivalent
144+
so your users don't have to log in repeatedly (like most apps) then we advise putting the user registration
145+
call in the `didBecomeActive:` method in your application delegate. This won't have any negative impact if
146+
you also add it to your authentication success method elsewhere in your app.
147+
148+
@param userId A unique identifier for your user.
149149
@param email Your user's email address.
150150
@note You must call one of the user registration methods in order to start communicating with Intercom.
151151
*/
@@ -154,7 +154,7 @@ typedef NS_ENUM(NSUInteger, ICMPreviewPosition){
154154
/*!
155155
Register a user just with their userId.
156156
157-
@param userId A unique identifer for your user.
157+
@param userId A unique identifier for your user.
158158
@note You must call one of the user registration methods in order to start communicating with Intercom.
159159
*/
160160
+ (void)registerUserWithUserId:(NSString *)userId;
@@ -239,9 +239,6 @@ typedef NS_ENUM(NSUInteger, ICMPreviewPosition){
239239
Metadata Objects support a few simple types that Intercom can present on your behalf, see the
240240
[Intercom API docs](http://doc.intercom.io/api/#event-metadata-types)
241241
242-
@param name The name of the event you wish to track.
243-
@param metadata contains simple types to present to Intercom
244-
245242
[Intercom logEventWithName:@"ordered_item" metaData:@{
246243
@"order_date": @1392036272,
247244
@"stripe_invoice": @"inv_3434343434",
@@ -250,7 +247,8 @@ typedef NS_ENUM(NSUInteger, ICMPreviewPosition){
250247
@"url": @"https://example.org/orders/3434-3434"
251248
}];
252249
253-
@param completion The completion block to be executed after the event is logged.
250+
@param name The name of the event you wish to track.
251+
@param metaData contains simple types to present to Intercom
254252
*/
255253
+ (void)logEventWithName:(NSString *)name metaData:(NSDictionary *)metaData;
256254

@@ -294,7 +292,7 @@ typedef NS_ENUM(NSUInteger, ICMPreviewPosition){
294292

295293
/*!
296294
Depending on the layout of your app you may need to modify the position of the message preview relative to the
297-
preview's position. Use this method to add sufficent padding using x and y values.
295+
preview's position. Use this method to add sufficient padding using x and y values.
298296
299297
@param x A horizontal padding value.
300298
@param y A vertical padding value.
@@ -342,10 +340,12 @@ UIKIT_EXTERN NSString *const IntercomWindowDidShowNotification;
342340
UIKIT_EXTERN NSString *const IntercomWindowWillHideNotification;
343341
UIKIT_EXTERN NSString *const IntercomWindowDidHideNotification;
344342

345-
/*!
346-
## Version 2.1 Deprecations
347-
*/
343+
@end
348344

345+
__attribute__ ((deprecated))
346+
@protocol IntercomSessionListener <NSObject>
347+
- (void)intercomSessionStatusDidChange:(BOOL)isSessionOpen;
348+
@end
349349

350350
typedef NS_ENUM(NSUInteger, ICMPresentationMode){
351351
ICMPresentationModeBottomLeft = 0,
@@ -354,37 +354,96 @@ typedef NS_ENUM(NSUInteger, ICMPresentationMode){
354354
ICMPresentationModeTopRight = 3
355355
};
356356

357+
/** Deprecated methods are listed here.
358+
359+
All methods listed in this document have been deprecated.
360+
361+
@warning Deprecated methods will be removed in version 2.4.
362+
*/
363+
@interface Intercom (Deprecated)
364+
357365
typedef void(^ICMCompletion)(NSError *error) __attribute((deprecated));
358366

367+
/*!
368+
@deprecated Use setSecureOptions: instead
369+
*/
359370
+ (void)setApiKey:(NSString *)apiKey forAppId:(NSString *)appId securityOptions:(NSDictionary*) securityOptions __attribute((deprecated("Use method 'setSecureOptions:' instead")));
360371

372+
/*!
373+
@deprecated Use registerUserWithEmail: instead
374+
*/
361375
+ (void)beginSessionForUserWithEmail:(NSString *)email completion:(ICMCompletion)completion __attribute((deprecated("Use method 'registerUserWithEmail:' instead")));
362376

377+
/*!
378+
@deprecated Use registerUserWithUserId: instead
379+
*/
363380
+ (void)beginSessionForUserWithUserId:(NSString *)userId completion:(ICMCompletion)completion __attribute((deprecated("Use method 'registerUserWithUserId:' instead")));
364381

382+
/*!
383+
@deprecated Use registerUnidentifiedUser instead
384+
*/
365385
+ (void)beginSessionForAnonymousUserWithCompletion:(ICMCompletion)completion __attribute((deprecated("Use method 'registerUnidentifiedUser' instead")));
366386

387+
/*!
388+
@deprecated Use reset instead
389+
*/
367390
+ (void)endSession __attribute((deprecated("Use method 'reset' to reset your local install instead")));
368391

392+
/*!
393+
@deprecated Use updateUserWithAttributes: instead
394+
*/
369395
+ (void)updateUserWithAttributes:(NSDictionary *)attributes completion:(ICMCompletion)completion __attribute((deprecated("Use method 'updateUserWithAttributes:' instead")));
370396

397+
/*!
398+
@deprecated Use logEventWithName: instead
399+
*/
371400
+ (void)logEventWithName:(NSString *)name completion:(ICMCompletion)completion __attribute((deprecated("Use method 'logEventWithName:' instead")));
372401

402+
/*!
403+
@deprecated Use logEventWithName:metaData: instead
404+
*/
373405
+ (void)logEventWithName:(NSString *)name optionalMetaData:(NSDictionary *)metadata completion:(ICMCompletion)completion __attribute((deprecated("Use method 'logEventWithName:metaData:' instead")));
374406

407+
/*!
408+
@deprecated This is no longer supported
409+
*/
375410
+ (void)checkForUnreadMessages __attribute((deprecated("This is no longer supported.")));
376411

412+
/*!
413+
@deprecated Use setPreviewPaddingX:y: instead
414+
*/
377415
+ (void)setPresentationInsetOverScreen:(UIEdgeInsets)presentationInset __attribute((deprecated("Use method 'setPreviewPaddingX:y:' instead")));
378416

417+
/*!
418+
@deprecated Use setPreviewPosition: instead
419+
*/
379420
+ (void)setPresentationMode:(ICMPresentationMode)presentationMode __attribute((deprecated("Use method 'setPreviewPosition:' instead")));
380421

422+
/*!
423+
@deprecated This is no longer supported. You can change your app's theme through settings on Intercom in the web.
424+
*/
381425
+ (void)setBaseColor:(UIColor *)color __attribute((deprecated("This is no longer supported.")));
382426

427+
/*!
428+
@deprecated Use setMessagesHidden: instead
429+
*/
383430
+ (void)hideIntercomMessages:(BOOL)hidden __attribute((deprecated("Use method 'setMessagesHidden:' instead")));
384431

432+
/*!
433+
@deprecated Use presentConversationList or presentMessageComposer instead
434+
*/
385435
+ (void)presentMessageViewAsConversationList:(BOOL)showConversationList __attribute((deprecated("Use method 'presentConversationList & presentMessageComposer' instead")));
386436

437+
/*!
438+
@deprecated This is no longer supported.
439+
*/
387440
+ (void)setSessionListener:(id<IntercomSessionListener>)sessionListener __attribute((deprecated("This is no longer supported.")));
388441

442+
/*!
443+
@deprecated Use method setDeviceToken instead.
444+
*/
389445
+ (void)registerForRemoteNotifications __attribute((deprecated("Use method 'setDeviceToken' instead.")));
446+
390447
@end
448+
449+
94.1 KB
Binary file not shown.

Intercom.podspec

Lines changed: 16 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,18 @@
11
Pod::Spec.new do |s|
2-
s.name = 'Intercom'
3-
s.version = '2.1.1'
4-
s.summary = 'The Intercom iOS SDK, for integrating Intercom into your iOS application.'
5-
s.license = { :type => "Apache license", :file => "LICENSE" }
6-
s.authors = {"Adam McCarthy"=>"[email protected]", "James Treanor"=>"[email protected]"}
7-
s.homepage = 'https://github.com/intercom/intercom-ios'
8-
s.description = 'The Intercom iOS SDK, for integrating Intercom into your iOS application. The SDK supports iOS 7 and iOS 8.'
9-
s.frameworks = ["Foundation", "UIKit", "Security", "SystemConfiguration", "MobileCoreServices", "ImageIO", "AVFoundation", "QuartzCore", "CoreGraphics"]
10-
s.requires_arc = true
11-
s.source = { :git => 'https://github.com/intercom/intercom-ios.git', :tag => s.version.to_s }
12-
13-
s.platform = :ios, '7.0'
14-
s.ios.platform = :ios, '7.0'
15-
s.ios.preserve_paths = 'Intercom.framework'
16-
s.ios.public_header_files = 'Intercom.framework/Versions/A/Headers/*.h'
17-
s.ios.resource = 'Intercom.framework/Versions/A/Resources/**/*'
18-
s.ios.vendored_frameworks = 'Intercom.framework'
2+
s.name = 'Intercom'
3+
s.version = '2.2'
4+
s.summary = 'The Intercom iOS SDK, for integrating Intercom into your iOS application.'
5+
s.license = { :type => "Apache license", :file => "LICENSE" }
6+
s.authors = {"Adam McCarthy"=>"[email protected]", "James Treanor"=>"[email protected]"}
7+
s.homepage = 'https://github.com/intercom/intercom-ios'
8+
s.description = 'The Intercom iOS SDK, for integrating Intercom into your iOS application. The SDK supports iOS 7 and iOS 8.'
9+
s.frameworks = ["Foundation", "UIKit", "Security", "SystemConfiguration", "MobileCoreServices", "ImageIO", "AVFoundation", "QuartzCore", "CoreGraphics"]
10+
s.library = "icucore"
11+
s.requires_arc = true
12+
s.source = { :git => 'https://github.com/intercom/intercom-ios.git', :tag => s.version.to_s }
13+
s.platform = :ios, '7.0'
14+
s.preserve_paths = 'Intercom.framework'
15+
s.public_header_files = 'Intercom.framework/Versions/A/Headers/Intercom.h'
16+
s.resource = 'Intercom.framework/Versions/A/Resources/Intercom.bundle'
17+
s.vendored_frameworks = 'Intercom.framework'
1918
end

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ Add the Intercom pod into your Podfile and run a `pod install` or `pod update`.
1414

1515
2. Sometimes Xcode won't correctly add the `Intercom.bundle` so make sure to add it to your target's Copy Bundle Resources build phase. Reveal the `Intercom.framework` in Finder and you'll find the bundle in the `Intercom.framework/Versions/A/Resources` folder.
1616

17-
3. Make sure you are linking the following frameworks: `ImageIO`, `MobileCoreServices`, `SystemConfiguration`, `AVFoundation`, `QuartzCore`, `Security` and `CoreGraphics`.
17+
3. Make sure you are linking the following: `ImageIO`, `MobileCoreServices`, `SystemConfiguration`, `AVFoundation`, `QuartzCore`, `Security`, `CoreGraphics` and `libicucore.dylib`.
1818

1919
4. Intercom is now a framework, not a static library so be sure to import Intercom correctly using the following `#import <Intercom/Intercom.h>` statement.
2020

-25 KB
Binary file not shown.
-641 Bytes
Binary file not shown.
-3.78 KB
Binary file not shown.

io.intercom.Intercom-iOS-SDK-2.1.1.docset/Contents/Info.plist renamed to io.intercom.Intercom-iOS-SDK-2.2.docset/Contents/Info.plist

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@
55
<key>CFBundleDevelopmentRegion</key>
66
<string>en</string>
77
<key>CFBundleIdentifier</key>
8-
<string>io.intercom.Intercom-iOS-SDK-2.1.1</string>
8+
<string>io.intercom.Intercom-iOS-SDK-2.2</string>
99
<key>CFBundleName</key>
10-
<string>Intercom iOS SDK 2.1.1 Documentation</string>
10+
<string>Intercom iOS SDK 2.2 Documentation</string>
1111
<key>CFBundleShortVersionString</key>
1212
<string>1.0</string>
1313
<key>CFBundleVersion</key>
@@ -17,7 +17,7 @@
1717

1818

1919
<key>DocSetFeedName</key>
20-
<string>Intercom iOS SDK 2.1.1 Documentation</string>
20+
<string>Intercom iOS SDK 2.2 Documentation</string>
2121

2222
<key>DocSetMinimumXcodeVersion</key>
2323
<string>3.0</string>
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
<div class="container" class="hide-in-xcode">
1515

1616
<h1 id="library-title">
17-
<a href="../index.html">Intercom iOS SDK 2.1.1 </a>
17+
<a href="../index.html">Intercom iOS SDK 2.2 </a>
1818
</h1>
1919

2020
<p id="developer-home">
@@ -80,7 +80,7 @@ <h1 class="title">ICMCompletion Block Reference</h1>
8080
<footer>
8181
<div class="footer-copyright">
8282

83-
<p class="copyright">Copyright &copy; 2015 Intercom. All rights reserved. Updated: 2015-03-10</p>
83+
<p class="copyright">Copyright &copy; 2015 Intercom. All rights reserved. Updated: 2015-03-23</p>
8484

8585

8686
<p class="generator">Generated by <a href="http://appledoc.gentlebytes.com">appledoc 2.2.1 (build 1333)</a>.</p>

0 commit comments

Comments
 (0)