How iOS 7 Affects TextExpander touch

Philip Blog, iPhone, TextExpander, TextExpander Tips

When you update to iOS 7, you may find that TextExpander doesn't work in some apps which did work on iOS 6. Due to a change in iOS 7, those apps no longer have access to shared snippets. We have communicated with developers whose apps support TextExpander, and we've provided them an updated SDK with a new way to share snippet data. Many developers are working hard to ensure their apps are updated. Bear in mind that review times and other issues are beyond their control.

Please update to TextExpander touch 2.1.1, and allow it access to your Reminders. After you install iOS 7, we recommend that you turn on automatic app updating so that when app developers deliver updated TextExpander support, you'll get it right away.

Thanks for using TextExpander and the apps with TextExpander support. We've done our best to work through a situation mostly beyond our control. Our fellow  developers have been very supportive, and we anticipate they will deliver apps using the updated TextExpander SDK promptly. (More technical details regarding the change and our solution are below, if you are interested.)

We maintain a list of apps with TextExpander support. As developers update their apps to work with TextExpander in iOS 7, we will add them to the list. If you have any questions, just drop us an email at

Here's what you can do:

– Update to TextExpander touch 2.1.1
– Let developers know that you use TextExpander in their app
– Ask those developers if they plan to update to the TextExpander 2.1 SDK
– Be patient with developers as they work hard to update their TextExpander support
– If your developer is not aware of this issue, point them to this blog post

What changed? Some technical details

Prior to iOS 7, TextExpander stored shared snippet data in a persistent pasteboard named “TextExpander”. The TextExpander code in supported apps read from the “TextExpander” pasteboard. Unfortunately, other libraries used these persistent named pasteboards to store and retrieve information used to track users across apps, without their knowledge or consent.

Apple decided to put a stop to that by prepending one's team ID to their named pasteboards, e.g. “Smile.TextExpander”. This allows shared pasteboards within one's own company's apps but not across unrelated apps. For example, if Drafts requested the “TextExpander” pasteboard, iOS 7 updates the request to “AgileTortoise.TextExpander” such that Drafts cannot access the shared TextExpander snippet data. (In fact, the new pasteboard names are more complex than this example.)

Smile has responded to this by discussing the issue with Apple engineers at WWDC, filing a bug (#14168862), and checking up on the status of that bug. We also developed a workaround by storing the TextExpander data in a new place. Reminders requires user consent to store and retrieve data. Completed reminders are not normally shown in its interface. Long-past reminders appear at the bottom of the completed reminders.

TextExpander touch 2.1 (and later) supports storing shared snippet data in a long-past, completed reminder. We produced an updated SDK and kept our developers posted on its progress. Our final SDK was ready within a few hours of the end of Apple's official iOS 7 announcement.