Skip to content

Commit

Permalink
Version 3.0.0
Browse files Browse the repository at this point in the history
  • Loading branch information
jtreanor committed Jul 21, 2016
1 parent 13d2009 commit 4481405
Show file tree
Hide file tree
Showing 265 changed files with 5,243 additions and 511 deletions.
13 changes: 13 additions & 0 deletions CHANGELOG.md
100644 → 100755
Original file line number Diff line number Diff line change
@@ -1,5 +1,18 @@
# Intercom

## 3.0.0 (2016-07-21)

Our new Messenger is out of beta! You can read all about the updated design and new functionality [here](https://www.intercom.io/in-app-messaging).
If you are upgrading from an older version of our Messenger you may want to change some of the methods you call. You can read about upgrading to the new version [here](https://docs.intercom.io/messenger-v3/upgrade-to-the-new-messenger-ios).

Lots of functionality has been added and many issues have been fixed, including:

* Added localization support for 38 languages. See [here](https://docs.intercom.io/configure-intercom-for-your-product-or-site/customize-the-intercom-messenger/localize-intercom-to-work-with-multiple-languages) for more information.
* Fixed crashes reported in [#124](https://github.com/intercom/intercom-ios/issues/124).
* Fixed [#130](https://github.com/intercom/intercom-ios/issues/130).
* Improvements to push notifications which will hopefully fix issues such as [#144](https://github.com/intercom/intercom-ios/issues/144).
* Improved handling of status bar state.

## 2.3.20 (2016-05-21)

* Improved compatibility with some push notification implementations.
Expand Down
Binary file removed Intercom.bundle/images/back.png
Binary file not shown.
Binary file removed Intercom.bundle/images/[email protected]
Binary file not shown.
Binary file removed Intercom.bundle/images/[email protected]
Binary file not shown.
Binary file removed Intercom.bundle/images/bubble_left.png
Binary file not shown.
Binary file removed Intercom.bundle/images/[email protected]
Binary file not shown.
Binary file removed Intercom.bundle/images/[email protected]
Binary file not shown.
Binary file removed Intercom.bundle/images/bubble_no_tail.png
Binary file not shown.
Binary file removed Intercom.bundle/images/[email protected]
Binary file not shown.
Binary file removed Intercom.bundle/images/[email protected]
Binary file not shown.
Binary file removed Intercom.bundle/images/bubble_right.png
Binary file not shown.
Binary file removed Intercom.bundle/images/[email protected]
Binary file not shown.
Binary file removed Intercom.bundle/images/[email protected]
Binary file not shown.
Binary file removed Intercom.bundle/images/circle_mask.png
Binary file not shown.
Binary file removed Intercom.bundle/images/[email protected]
Binary file not shown.
Binary file removed Intercom.bundle/images/[email protected]
Binary file not shown.
Binary file removed Intercom.bundle/images/close.png
Binary file not shown.
Binary file removed Intercom.bundle/images/[email protected]
Binary file not shown.
Binary file removed Intercom.bundle/images/[email protected]
Binary file not shown.
Binary file removed Intercom.bundle/images/info.png
Binary file not shown.
Binary file removed Intercom.bundle/images/[email protected]
Binary file not shown.
Binary file removed Intercom.bundle/images/[email protected]
Binary file not shown.
Binary file removed Intercom.bundle/images/intercom_logo.png
Binary file not shown.
Binary file removed Intercom.bundle/images/[email protected]
Binary file not shown.
Binary file removed Intercom.bundle/images/[email protected]
Binary file not shown.
Binary file removed Intercom.bundle/images/message_failed.png
Binary file not shown.
Binary file removed Intercom.bundle/images/[email protected]
Diff not rendered.
Binary file removed Intercom.bundle/images/[email protected]
Diff not rendered.
Binary file removed Intercom.bundle/images/neutral.png
Diff not rendered.
Binary file removed Intercom.bundle/images/[email protected]
Diff not rendered.
Binary file removed Intercom.bundle/images/[email protected]
Diff not rendered.
Binary file removed Intercom.bundle/images/no_conversations.png
Diff not rendered.
Binary file removed Intercom.bundle/images/[email protected]
Diff not rendered.
Binary file removed Intercom.bundle/images/[email protected]
Diff not rendered.
Binary file removed Intercom.bundle/images/sad.png
Diff not rendered.
Binary file removed Intercom.bundle/images/[email protected]
Diff not rendered.
Binary file removed Intercom.bundle/images/[email protected]
Diff not rendered.
Binary file removed Intercom.bundle/images/smile.png
Diff not rendered.
Binary file removed Intercom.bundle/images/[email protected]
Diff not rendered.
Binary file removed Intercom.bundle/images/[email protected]
Diff not rendered.
Binary file removed Intercom.bundle/images/thumbs_down.png
Diff not rendered.
Binary file removed Intercom.bundle/images/[email protected]
Diff not rendered.
Binary file removed Intercom.bundle/images/[email protected]
Diff not rendered.
Binary file removed Intercom.bundle/images/thumbs_up.png
Diff not rendered.
Binary file removed Intercom.bundle/images/[email protected]
Diff not rendered.
Binary file removed Intercom.bundle/images/[email protected]
Diff not rendered.
Binary file removed Intercom.bundle/images/upload_icon.png
Diff not rendered.
Binary file removed Intercom.bundle/images/[email protected]
Diff not rendered.
Binary file removed Intercom.bundle/images/[email protected]
Diff not rendered.
20 changes: 20 additions & 0 deletions Intercom.framework.dSYM/Contents/Info.plist
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleIdentifier</key>
<string>com.apple.xcode.dsym.io.intercom.ios.Intercom</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundlePackageType</key>
<string>dSYM</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleShortVersionString</key>
<string>3.0.0</string>
<key>CFBundleVersion</key>
<string>1</string>
</dict>
</plist>
Binary file not shown.
1 change: 0 additions & 1 deletion Intercom.framework/Headers

This file was deleted.

110 changes: 76 additions & 34 deletions ...m.framework/Versions/A/Headers/Intercom.h → Intercom.framework/Headers/Intercom.h
100644 → 100755
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
//
// Intercom.h
// Intercom for iOS - Version 2.3.21
// Intercom for iOS - Version 3.0.0
//
// Created by Intercom on 8/01/2015.
// Copyright (c) 2014 Intercom. All rights reserved.
Expand All @@ -9,13 +9,12 @@
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>

#if __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_7_0
#error This version (2.3.21) of Intercom for iOS supports iOS 7.0 upwards.
#if __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_8_0
#error This version (3.0.0) of Intercom for iOS supports iOS 8.0 upwards.
#endif

NS_ASSUME_NONNULL_BEGIN

// Use these values to constrain an incoming notification view to a defined section of the window.
typedef NS_ENUM(NSUInteger, ICMPreviewPosition){
ICMPreviewPositionBottomLeft = 0,
ICMPreviewPositionBottomRight = 1,
Expand Down Expand Up @@ -54,14 +53,7 @@ typedef NS_ENUM(NSUInteger, ICMPreviewPosition){
If the user subsequently logs in or you learn additional information about them (e.g. get an email address),
calling any of the other user registration methods will update that user's identity in Intercom and contain
all user data tracked previously.
## I'm using a previous version and this looks different, what has changed?
We have re-architected the internals of Intercom for iOS to ensure it is as reliable as possible while tracking
your users. We have focused on removing asynchronous behaviour. For example you no longer need to wait for the
completion blocks of the old `beginSession` calls before logging events or updating user data.
In doing so it is more nimble and reliable than ever before.
## How do push notifications work?
Intercom for iOS enables your users to receive push notifications for new messages. Simply call:
Expand All @@ -81,7 +73,7 @@ typedef NS_ENUM(NSUInteger, ICMPreviewPosition){
## More information
Full documentation is available [here](http://docs.intercom.io/Install-on-your-mobile-product) and please contact
Full documentation is available [here](https://docs.intercom.io/install-on-your-product-or-site/quick-install/install-intercom-on-your-ios-app) and please contact
us directly via Intercom for any support or questions you may have.
*/
Expand All @@ -106,7 +98,7 @@ typedef NS_ENUM(NSUInteger, ICMPreviewPosition){
Secure Mode helps to make sure that conversations between you and your users are kept private, and that one
user can't impersonate another. In Secure Mode Intercom for iOS will sign all requests going to the Intercom servers
with tokens. It requires your mobile application to have its own server which authenticates the app's users,
and which can store a secret. More information on secure mode can be found [here](http://docs.intercom.io/Install-on-your-mobile-product/enabling-secure-mode-in-intercom-for-ios).
and which can store a secret. More information on secure mode can be found [here](http://docs.intercom.io/Install-on-your-mobile-product/enabling-secure-mode-in-intercom-for-ios)
@note This should be called before any user registration takes place.
@param hmac A HMAC digest of data.
Expand Down Expand Up @@ -182,7 +174,7 @@ typedef NS_ENUM(NSUInteger, ICMPreviewPosition){
relates to customer development, such as price plan, value of purchases, etc. Once these have been sent to
Intercom you can then apply filters based on these attributes.
A detailed list of the fields you can use to [update a user is available here](https://doc.intercom.io/api/#user-model)
A detailed list of the fields you can use to [update a user is available here](https://developers.intercom.io/reference/#user-model )
Attributes such as the user email or name can be updated by calling
Expand Down Expand Up @@ -213,7 +205,7 @@ typedef NS_ENUM(NSUInteger, ICMPreviewPosition){
]}];
id is a required field for adding or modifying a company. A detailed description of the
[company model is available here](https://doc.intercom.io/api/#companies-and--users)
[company model is available here](https://developers.intercom.io/reference/#companies-and--users)
@param attributes This is a dictionary containing key/value pairs for multiple attributes.
@note Attributes may be either a `string`, `integer`, `double`, `unix timestamp` or `bool`.
Expand All @@ -226,15 +218,15 @@ typedef NS_ENUM(NSUInteger, ICMPreviewPosition){
You can log events in Intercom based on user actions in your app. Events are different
to custom user attributes in that events are information on what Users did and when they
did it, whereas custom user attributes represent the User's current state as seen in their
profile. See details about Events [here](http://doc.intercom.io/api/#events).
profile. See details about Events [here](https://developers.intercom.io/reference/#events)
@param name The name of the event that it is going to be logged.
*/
+ (void)logEventWithName:(NSString *)name;

/*!
Metadata Objects support a few simple types that Intercom can present on your behalf, see the
[Intercom API docs](http://doc.intercom.io/api/#event-metadata-types)
[Intercom API docs](https://developers.intercom.io/reference/#event-metadata-types)
[Intercom logEventWithName:@"ordered_item" metaData:@{
@"order_date": @1392036272,
Expand All @@ -253,6 +245,13 @@ typedef NS_ENUM(NSUInteger, ICMPreviewPosition){
/*! @name Show Intercom messages and message composers */
//=========================================================================================================

/*!
Present the Intercom Messenger
Opens the Intercom messenger to automatically to the best place for your users.
*/
+ (void)presentMessenger;

/*!
Present the message composer.
*/
Expand Down Expand Up @@ -280,35 +279,59 @@ typedef NS_ENUM(NSUInteger, ICMPreviewPosition){
//=========================================================================================================

/*!
Use this to constrain an incoming notification view to a defined section of the window. By default, if this is
not set, message previews appear in the bottom left of your application's window.
This method allows you to set a fixed bottom padding for in app messages and the launcher.
It is useful if your app has a tab bar or similar UI at the bottom of your window.
@param previewPosition The ICMPreviewPosition for your incoming notifications.
@param bottomPadding The size of the bottom padding in points.
*/
+ (void)setPreviewPosition:(ICMPreviewPosition)previewPosition;
+ (void)setBottomPadding:(CGFloat)bottomPadding;

//=========================================================================================================
/*! @name Intercom UI Visibility */
//=========================================================================================================

/*!
Depending on the layout of your app you may need to modify the position of the message preview relative to the
preview's position. Use this method to add sufficient padding using x and y values.
Use this to hide all incoming Intercom messages and message previews in the parts of your app where you do
not wish to interrupt users, for example Camera views, parts of a game or other scenarios.
By default, all in app messages will be visible.
@param x A horizontal padding value.
@param y A vertical padding value.
@param visible A boolean indicating if in app messages should be visible.
*/
+ (void)setPreviewPaddingWithX:(CGFloat)x y:(CGFloat)y;
+ (void)setInAppMessagesVisible:(BOOL)visible;

/*!
Use this to show the Intercom launcher selectively within your app. If you choose to display the launcher,
you may want to hide it on some screens where screen space is critical (e.g. parts of a game).
By default, the launcher is hidden.
@param visible A boolean indicating if the launcher should be visible.
*/
+ (void)setLauncherVisible:(BOOL)visible;

/*!
Hide the Intercom messenger, if it is on screen.
This can be useful if your app wishes to get the users attention (e.g. opening an in app link).
*/
+ (void)hideMessenger;

//=========================================================================================================
/*! @name Toggling message visibility */
/*! @name Unread conversations */
//=========================================================================================================

/*!
Use this to hide all incoming Intercom messages and message previews in the parts of your app where you do
not wish to interrupt users, for example Camera views, parts of a game or other scenarios. If any part of
Intercom for iOS's UI is on screen when this is set to YES, it will close itself.
This method provides the current number of unread conversations.
This is useful if you want to display a badge counter on the button where you launch Intercom.
@param hidden A bool that toggles message visibility. Use this to either prevent or allow messages from being
displayed in select parts of your app.
@return The number of unread conversations.
*/
+ (void)setMessagesHidden:(BOOL)hidden;
+ (NSUInteger)unreadConversationCount;

/*!
This notification is fired when the number of unread conversations changes.
*/
UIKIT_EXTERN NSString *const IntercomUnreadConversationCountDidChangeNotification;

//=========================================================================================================
/*! @name Enable logging */
Expand All @@ -330,6 +353,25 @@ typedef NS_ENUM(NSUInteger, ICMPreviewPosition){
*/
+ (void)setNeedsStatusBarAppearanceUpdate;

//=========================================================================================================
/*! @name Deprecated methods */
//=========================================================================================================

/*!
@deprecated +[Intercom setPreviewPosition:] is no longer supported, and will not work.
*/
+ (void)setPreviewPosition:(ICMPreviewPosition)previewPosition __attribute((deprecated("'+[Intercom setPreviewPosition:]' is no longer supported and will not work")));

/*!
@deprecated +[Intercom setPreviewPaddingWithX:y:] is deprecated. Use +[Intercom setBottomPadding:] instead.
*/
+ (void)setPreviewPaddingWithX:(CGFloat)x y:(CGFloat)y __attribute((deprecated("'+[Intercom setPreviewPaddingWithX:y:]' is deprecated. Use '+[Intercom setBottomPadding:]' instead.")));

/*!
@deprecated +[Intercom setMessagesHidden:] is deprecated. Use +[Intercom setInAppMessagesVisible:] instead.
*/
+ (void)setMessagesHidden:(BOOL)hidden __attribute((deprecated("'+[Intercom setMessagesHidden:]' is deprecated. 'Use +[Intercom setInAppMessagesVisible:]' instead.")));

//=========================================================================================================
/*! @name Intercom Notifications */
//=========================================================================================================
Expand Down
Binary file added Intercom.framework/Info.plist
Binary file not shown.
1 change: 0 additions & 1 deletion Intercom.framework/Intercom

This file was deleted.

Binary file added Intercom.framework/Intercom
Binary file not shown.
File renamed without changes.
Binary file added Intercom.framework/Intercom.bundle/images/back.png
Binary file added Intercom.framework/Intercom.bundle/images/close.png
48 changes: 48 additions & 0 deletions Intercom.framework/Intercom.bundle/locales/ar.strings
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
"error.loading.conversation" = "تعذر تحميل المحادثة";
"actionsheet.message.failed.delivery" = "تعذر تسليم الرسالة";
"message.delivered" = "تم التسليم";
"alert.new.sdk.user.button" = "شكرًا";
"profile.time.location.format" = "{time} في {location}";
"message.state.sending" = "إرسال";
"message.placeholder.write.reply" = "كتابة رد";
"twitter.follow.us" = "تابعنا على Twitter";
"alert.new.sdk.user.message" = "تم دمج تطبيقك على iOS مع نظام Intercom الأساسي الآن";
"error.title" = "حدث خطأ ما";
"error.no_conversations.message.no_app_name" = "ليس هناك أي محادثات إلى الآن";
"facebook.like.us" = "أبد إعجابك بنا على Facebook";
"from.app" = "من {name}";
"error.loading.conversations.fallback" = "تعذر تحميل محادثاتك مع فريق {name}";
"message.placeholder.start.conversation" = "بدء محادثة";
"navigation.back" = "رجوع";
"admin.from.app" = "{name} من {company}";
"message.not.seen" = "لم تتم رؤيتها بعد";
"error.no_conversations.title" = "ليس هناك أي محادثات";
"time.difference.delivered" = "تم التسليم";
"actionsheet.try.again" = "إعادة المحاولة";
"alert.new.sdk.user.title" = "تهانينا";
"app_team" = "فربق {name}";
"navbar.title.conversations" = "المحادثات مع {name}";
"actionsheet.cancel" = "إلغاء";
"navigation.close" = "إغلاق";
"message.send" = "إرسال";
"time.difference.format.hours.ago" = "قبل {delta} س";
"time.difference.format.weeks.ago" = "قبل {delta} أ";
"last_active.format.hours.ago" = "نشط قبل {hours} س";
"actionsheet.delete" = "حذف";
"navbar.title.new.conversation" = "محادثة جديدة";
"last_active.over_week_ago" = "نشط قبل أكثر من ساعة";
"time.difference.just.now" = "توًا";
"last_active.minutes.ago" = "نشط قبل {minutes} د";
"last_active.15_minutes" = "نشط خلال آخر {minutes} د";
"message.seen" = "تمت رؤيتها";
"last_active.format.days.ago" = "نشط قبل {days} ي";
"error.starting.conversation.fallback" = "تعذر بدء محادثة جديدة";
"error.no_conversations.message" = "ليس هناك أي محادثات مع فريق {name} إلى الآن";
"time.difference.format.days.ago" = "قبل {delta} ي";
"error.loading.conversations.fallback.no_app_name" = "تعذر تحميل محادثاتك";
"we.run.on.intercom" = "نحن نعمل على Intercom";
"navbar.title.conversations.no_app_name" = "المحادثات";
"time.difference.format.minutes.ago" = "قبل {delta} د";
"error.tap.to.retry" = "إعادة المحاولة";
"reply_from_admin" = "{name} الرد من";
"inbox.you" = "أنت";
48 changes: 48 additions & 0 deletions Intercom.framework/Intercom.bundle/locales/bg.strings
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
"error.loading.conversation" = "Неуспешно зареждане на разговорa";
"actionsheet.message.failed.delivery" = "Съобщението не може да бъде доставено";
"message.delivered" = "Доставено";
"alert.new.sdk.user.button" = "Благодаря";
"profile.time.location.format" = "{time} в {location}";
"message.state.sending" = "Изпращане";
"message.placeholder.write.reply" = "Напишете отговор";
"twitter.follow.us" = "Последвайте ни в Twitter";
"alert.new.sdk.user.message" = "Вашето приложение за iOS вече е интегрирано в платформата Intercom";
"error.title" = "Нещо се обърка";
"error.no_conversations.message.no_app_name" = "Все още няма разговори";
"facebook.like.us" = "Харесайте ни във Facebook";
"from.app" = "от {name}";
"error.loading.conversations.fallback" = "Неуспешно зареждане на разговорите с екип {name}";
"message.placeholder.start.conversation" = "Започнете разговор";
"navigation.back" = "Назад";
"admin.from.app" = "{name} от {company}";
"message.not.seen" = "Все още не е видяно";
"error.no_conversations.title" = "Няма разговори";
"time.difference.delivered" = "Доставено";
"actionsheet.try.again" = "Опитайте отново";
"alert.new.sdk.user.title" = "Поздравления";
"app_team" = "{name} Екип";
"navbar.title.conversations" = "Разговори с {name}";
"actionsheet.cancel" = "Отказ";
"navigation.close" = "Затваряне";
"message.send" = "Изпращане";
"time.difference.format.hours.ago" = "преди {delta}часа";
"time.difference.format.weeks.ago" = "преди {delta}седмици";
"last_active.format.hours.ago" = "Активност преди {hours}часа";
"actionsheet.delete" = "Изтриване";
"navbar.title.new.conversation" = "Нов разговор";
"last_active.over_week_ago" = "Активност преди повече от 1 седмица";
"time.difference.just.now" = "Току-що";
"last_active.minutes.ago" = "Активност преди {minutes}мин.";
"last_active.15_minutes" = "Активност през последните {minutes}мин.";
"message.seen" = "Видяно";
"last_active.format.days.ago" = "Активност преди {days}дни";
"error.starting.conversation.fallback" = "Неуспешно започване на нов разговор";
"error.no_conversations.message" = "Все още няма разговори с екип {name}";
"time.difference.format.days.ago" = "преди {delta}дни";
"error.loading.conversations.fallback.no_app_name" = "Неуспешно зареждане на вашите разговори";
"we.run.on.intercom" = "Ние използваме Intercom";
"navbar.title.conversations.no_app_name" = "Разговори";
"time.difference.format.minutes.ago" = "преди {delta}мин.";
"error.tap.to.retry" = "Повторен опит";
"reply_from_admin" = "Отговор от {name}";
"inbox.you" = "Вие";
Loading

0 comments on commit 4481405

Please sign in to comment.