Create app extensions that allow users to send text, stickers, media files, and interactive messages.


You can use the Messages framework to create two types of app extensions: Sticker packs and iMessage apps. Both extension types can be created as standalone apps or as app extensions within a containing iOS app.

For more information on creating and working with app extensions, see App Extension Programming Guide.

Sticker Packs

Sticker packs simply provide static sets of stickers, images that users can send inline as messages or peel off and attach to message bubbles in the transcript. Sticker packs do not require any code. You add stickers by dragging image files into the Sticker Pack folder inside the Stickers asset catalog. Valid image files must meet the following specifications:

  • The image must be a PNG, APNG, GIF, or JPEG file.

  • The file must be less than 500 KB.

  • For the best results, the image should not be smaller than 100 x 100 points or larger than 206 x 206 points.

Messages supports three sticker sizes, which are displayed in a grid-based browser. In the Xcode Attributes inspector, pick one of the following sizes for your sticker pack:

  • Small. 100 x 100 points @3x (300 x 300 pixels).

  • Medium. 136 x 136 points @3x (408 x 408 pixels).

  • Large. 206 x 206 points @3x (618 x 618 pixels).

For optimal quality and performance, provide sticker images of the size you choose.

To learn more about creating animated stickers, see Creating Stickers with Motion.

To learn more about submitting sticker packs to the App Store, see Preparing Sticker Submissions.

iMessage Apps

iMessage apps leverage the full framework to interact with the Messages app.

Use iMessage apps to:

To learn more about submitting iMessage Apps to the App Store, see Preparing Your iMessage App for Submission.


Effects Support

Adding Sticker Packs and iMessage Apps to Effects in Messages and FaceTime

Enable your Sticker pack or iMessage app in the media context.

Custom Sticker Packs


A view controller that provides dynamic content to the standard sticker browser.


A browser view that displays a dynamically generated list of stickers.


A view for displaying a sticker.


The size of the stickers in the browser view.

Custom iMessage App Interface

IceCreamBuilder: Building an iMessage Extension

Allow users to collaborate on the design of ice cream sundae stickers.


The principal view controller for iMessage apps.


A protocol that provides support for displaying live messages in the transcript of the Messages app.


Presentation styles that describe your iMessage app’s appearance.

Message Content


An object that represents a conversation in the Messages app.


A sticker that can be sent as a new message or attached to an existing balloon in the Messages app’s transcript.

Interactive Messages


A custom message object.


A session object used to create and update messages.


An abstract base class that defines the appearance of MSMessage objects in the conversation transcript.


A template-based layout for custom messages.


A layout that provides a custom, interactive view inside the transcript.



The error domain for stickers.


The error domain for iMessage apps.


The error codes used in NSError objects generated by the Messages framework.