Repository navigation
Releases: reception-sh/reception-ios
Releases · reception-sh/reception-ios
Release list
1.6.0
Changed
- The device registers with Reception when the app launches or returns to the foreground, not only when the person first writes, so every install appears in the dashboard's Users page and the team can start a conversation. Nothing is sent before
configure; registration carries the same device details as before. - A registered device checks for unread messages on launch and foreground even before the person has written, and a tapped notification counts as a conversation. A conversation the team started therefore loads in the chat, polls and badges like one the person started. Before, the app ignored the team's message until the person wrote first.
Fixed
- Swiping down over the messages while typing now dismisses the keyboard instead of the whole chat sheet; the sheet can be swiped away again once the keyboard is gone.
- On iOS 26 the messages fade out under the chat title instead of being cut off by a hard band, and messages show through the glass composer all the way to the bottom of the sheet.
- Links in messages are tappable, a long press on a bubble offers Copy, a reply that arrives while the chat is open gives a light haptic, and bubbles and the send button animate with springs.
- The chat moves like Messages: on iOS 18 and later the newest message stays pinned above the composer while the keyboard opens and closes, and new messages scroll in with an animation instead of a jump. iOS 17 scrolls into place once the keyboard has settled.
- Device preferences (paywalls, language, badge setting) synchronize for a registered device that has not written yet.
1.5.0
Added
Reception.shared.track(_:opensChat:)reports app events, such as a closed paywall, for automations set up in the dashboard. An automation's message arrives in the chat once; withopensChat: truethe chat opens when the message is sent and again at later events for people who received it.- While an automation listens for them, the SDK reports
trial_cancelled,trial_expired,subscription_cancelled,billing_issueandsubscription_expiredfrom the App Store when the app becomes active. - Device registration and updates report whether the person has paid access in the App Store.
- The team's typing indicator shows briefly before an automation's message appears in a chat it opened.
Fixed
- The chat no longer opens on a screen that is being dismissed, where it would close with that screen.
- An automation opens the chat once the app is active again and the screen in front has finished opening or closing, as long as that comes within five seconds of the event. A cancelled purchase is reported while the App Store sheet is still closing, and a closed paywall often comes straight back; before, the chat stayed closed in both cases and the message waited unread.
1.4.1
Fixed
- The live connection no longer stops for good after eight drops over the life of a session. A stream that stayed up for ten seconds now starts a fresh backoff when it drops, eight failures in a row only slow retries to once a minute while the chat stays open, and reopening the chat, sending a message or the network coming back retries at once. Before, the chat could show “Connecting” without trying again until the app went to the background and returned.
1.4.0
Added
ReceptionPaywalltakes an optionalsource(.revenueCat,.superwall,.adapty,.app, or any lowercase name for another vendor), up to 10products(product ID, localized price, ISO 8601 renewal period and free trial; 40 across all paywalls) andpresentable(defaulttrue;falselists an offering without a paywall for your team: it is always reported, never checked withpaywallAvailabilityand never opened by a card). Registration sends them so the dashboard shows where each paywall is built and what it sells. All are optional with defaults, so existingReceptionPaywall(id:title:)code is unchanged; an invalid product detail or source is dropped, never the paywall.
1.3.0
Added
- Device registration and updates report the appearance your app sets in code (
Reception.shared.appearance, as values that differ from the defaults, plus the asset-catalog accent color andusesRemoteAppearance). The dashboard's chat design editor starts from that design instead of the built-in defaults. Bundled images are reported only as present, never uploaded. Remote appearance precedence is unchanged.
1.2.0
Added
- Non-prompting APNs registration and notification-delegate helpers; existing push APIs are unchanged.
- Bundled resources load when the SDK is compiled through CocoaPods, as in the React Native package.
Fixed
- The composer stays inside embedded chat bounds on iOS 26.
1.1.1
Fixed
- Team replies without a known author no longer show an empty avatar circle.
1.1.0
Added
welcomeIconCornerRadiusrounds local and uploaded welcome images, with an optional dashboard override. Symbols are unchanged.welcomeIconwithReception.WelcomeIcon(.symbol(_:),.image(_:),.hidden), pluswelcomeIconColor,welcomeIconSizeandwelcomeIconOffset, so the welcome icon can use an image bundled with your app.hidesTitle,hidesWelcomeTitleandhidesWelcomeText.closeImagefor a close button image bundled with your app.-ReceptionPreview welcomeand-ReceptionPreview conversationlaunch arguments open the chat with local example data in Debug simulator builds, so coding agents can screenshot it without tapping. They send and save nothing.
Fixed
- Team names restore alongside cached photos before the first network response, including when only names are enabled. Refreshed names and removed members update the same session-scoped cache.
- Previously loaded team photos appear immediately after app restarts from a bounded, session-scoped disk cache. Photo removal, chat resets, logout and data deletion clear the relevant cached photos.
- Team photos stay in memory across chat openings, reuse unchanged photos when signed links refresh, and replace changed photos without flashing the placeholder. Removed photos are cleared when team details refresh.
- Replies reserve their avatar space while team details and photos load, preventing horizontal layout jumps when team photos are enabled.
- Automatic push environment detection now selects APNs sandbox on the simulator instead of ignoring its token. Physical-device detection is unchanged.
- A hidden chat title no longer reappears as plain navigation title text.
- Published visibility can show or hide elements independently of local appearance; unset visibility keeps the app's setting.
- A published close symbol overrides a local close image, and a published font design overrides a local custom font.
1.0.0
First public release.
Added
Reception.configure(appId:)connects your app with its public App ID from the Reception dashboard.- Native support chat with text and photos, opened with
Reception.shared.openChat()or embedded asReceptionChatView. - Unread counts for your own entry point, with optional app icon badge.
identify(userId:name:email:),setMetadata(_:),logout()anddeleteData()for accounts, customer context, sign-out and account deletion.- Identity verification with
identify(token:)for tokens signed by your own server, and theidentityRejectedevent. - Push notifications for replies through
setPushToken(_:)andhandlePushNotification(userInfo:openChat:), without a permission prompt. - App Store review cards and paywall cards. Register
Reception.shared.paywalls, present your own paywall fromonPaywall, and limit offers withpaywallAvailability. - Local appearance options, plus remote appearance, texts, team photos and names published from the dashboard.
- Built-in text in 48 languages, following the app's language, with
languageOverridefor in-app language settings. - Events through
onEventfor your analytics. - Automatic retries for interrupted sends and rate-limit waits that keep drafts and resume on their own.
- Setup check in Debug simulator builds that verifies message delivery.
- Device sessions with short-lived access, credentials in the Keychain, and a privacy manifest.