iMessage Extension Development: Stickers, Cards, and Games

Users communicate in iMessage, and your service works right inside the chat. No need to leave the Messages app to send a sticker, vote, or make a move in a game. An iMessage extension is a separate Extension target inside an iOS app, embedded in iMessage. Since the technology’s inception, we have de

Development and support of all types of mobile applications:

Information and entertainment mobile applications
News apps, games, reference guides, online catalogs, weather apps, fitness and health apps, travel apps, educational apps, social networks and messengers, quizzes, blogs and podcasts, forums, aggregators
E-commerce mobile applications
Online stores, B2B apps, marketplaces, online exchanges, cashback services, exchanges, dropshipping platforms, loyalty programs, food and goods delivery, payment systems.
Business process management mobile applications
CRM systems, ERP systems, project management, sales team tools, financial management, production management, logistics and delivery management, HR management, data monitoring systems
Electronic services mobile applications
Classified ads platforms, online schools, online cinemas, electronic service platforms, cashback platforms, video hosting, thematic portals, online booking and scheduling platforms, online trading platforms

These are just some of the types of mobile applications we work with, and each of them may have its own specific features and functionality, tailored to the specific needs and goals of the client.

Showing 1 of 1All 1734 services
iMessage Extension Development: Stickers, Cards, and Games
Medium
~3-5 days

Our competencies:

Frequently Asked Questions

Latest works

  • image_mobile-applications_feedme_467_0.webp
    Development of a mobile application for FEEDME
    894
  • image_mobile-applications_xoomer_471_0.webp
    Development of a mobile application for XOOMER
    782
  • image_mobile-applications_rhl_428_0.webp
    Development of a mobile application for RHL
    1216
  • image_mobile-applications_zippy_411_0.webp
    Development of a mobile application for ZIPPY
    1079
  • image_mobile-applications_affhome_429_0.webp
    Development of a mobile application for Affhome
    1002
  • image_mobile-applications_flavors_409_0.webp
    Development of a mobile application for the FLAVORS company
    597

Users communicate in iMessage, and your service works right inside the chat. No need to leave the Messages app to send a sticker, vote, or make a move in a game. An iMessage extension is a separate Extension target inside an iOS app, embedded in iMessage. Since the technology’s inception, we have developed over 20 projects for the App Store, guaranteeing pass of App Store review and avoiding rejections under sections 4.2 and 5.1. On one social app project, we built an interactive poll-sharing extension, reducing message delivery latency from 5 seconds to under 1 second by switching to URL-encoded data and implementing NSCache.

Sticker Pack vs MSMessagesAppViewController

Sticker Pack — the simplest option without code: add an Extension target of type "Sticker Pack Application", upload PNG/APNG/GIF to Stickers.xcassets. Apple generates the UI automatically. Sizes: Small (100×100 pt), Regular (136×136 pt), Large (206×206 pt). APNG — up to 500 KB, GIF — up to 25 MB (not recommended due to quality loss).

MSMessagesAppExtension — a full extension with UIKit or SwiftUI. Entry point is MSMessagesAppViewController. Two modes: Compact (~225 pt) and Expanded (nearly full screen). Switch via requestPresentationStyle(.expanded). Messages are represented by MSMessage objects with URL and MSMessageTemplateLayout (image, caption, subcaption). On tap, the recipient opens the extension if installed.

Why Choose MSMessagesAppViewController?

MSMessagesAppExtension is 10 times more flexible than Sticker Pack: it allows interactive cards, multiplayer games, polls, and integration with purchases via StoreKit 2. Sticker Pack is only suitable for static or animated stickers. If your project requires any interactive scenario—choose MSMessagesAppViewController.

Limits and Constraints of iMessage Extension

The main constraint is RAM: Apple allocates about 100 MB. Exceeding it causes an EXC_RESOURCE crash. Use NSCache with countLimit and totalCostLimit, avoid heavy images in cache, load data asynchronously. Second constraint is the URL size for data transfer: encode data into query parameters or base64, avoid large payloads.

How to Pass Data Between Participants?

Data is encoded into the URL of the MSMessage object: MSMessage.url = URL(string: "yourapp://state?data=\(encodedState)"). The recipient parses the URL in willBecomeActive(with:). You cannot directly use UserDefaults—each participant has their own device. For shared data between the main app and extension, set up an App Group: use the same identifier group.com.yourapp.shared in Capabilities of both targets. Then read/write via UserDefaults(suiteName:) and FileManager.containerURL(forSecurityApplicationGroupIdentifier:).

Comparison of Compact vs Expanded Modes

Feature Compact (~225 pt) Expanded (full screen)
Height ~225 pt Full available screen
Primary use Quick input, preview Complex interfaces, games
Switching Default requestPresentationStyle(.expanded)
Message display Only incoming Can create new messages

Comparison of Sticker Pack vs MSMessagesAppExtension

Feature Sticker Pack MSMessagesAppExtension
Development complexity Very low Medium/high
UI flexibility None Full (UIKit/SwiftUI)
Interactivity No Yes
Time to create 1–3 days 3–10 weeks
Purchase support Free only StoreKit 2 / Billing 6
Common mistakes and solutions

Crash when using UIActivityViewController — use a custom UI. Slow loading due to cache — implement NSCache with countLimit and totalCostLimit. Code Signing errors (provisioning profile) — ensure the App ID includes the iMessage capability. Problems with push notifications (APNs) in the Extension — configure certificates separately for the App Group.

Development Process

  1. Scenario analysis — determine how the user interacts in compact and expanded modes.
  2. Design — architecture considering memory limits and data transfer.
  3. Implementation — write code in Swift/SwiftUI using MSMessagesAppViewController.
  4. Integration — set up App Group, StoreKit 2, push notifications.
  5. Testing — on real devices (at least 2 iPhones with different iOS versions).
  6. Publishing preparation — App Store Connect, TestFlight, metadata.
  7. Support — 30 days of free technical support after release.

What’s Included in the Work

You receive: project source code with comments, configured App Groups and StoreKit, prepared metadata for App Store Connect, a publishing guide, and 30 days of technical support after release. Additionally, we provide full documentation covering architecture, data flow, and App Group setup; access to the repository with version history; training for your team on working with extensions; and a guaranteed submission to the App Store with support during the review process. If needed, we assist with fixing any rejection issues within the warranty period.

Timeline and Budget

Sticker Pack (no code): 1–3 days (design + assembly) — from $500. iMessage Extension with interactive cards: 3 to 5 weeks — from $5,000. Multiplayer game or complex data exchange: 6 to 10 weeks — from $12,000. The cost is determined after scenario analysis—we ensure a transparent budget structure. Contact us for a preliminary timeline and cost estimate. Get a consultation—we’ll assess the complexity of your task and propose an optimal solution. Order development today.

Source: Apple Developer Documentation on Messages