Text Replacements synchronisation between iOS and OS X does not work properly
Note: As pointed out by Andreas Fischlin this entire QA is using incorrect terminology.
I have changed the main title to correctly reflect the discussion is about Text Replacements not Shortcuts. A shortcut is Cmd ⌘ S to save a document etc.
Rather than correct the terminology right the way through, I thought it easier to add this note.
I use keyboard shortcuts on my iPhone a lot. For example, @g
which results in @gmail.com
, or addr
for my home address. I have got multiple OS X and iOS systems. I believe shortcuts in sync via iCloud.
On OS X some of my shortcuts are quite annoying because typing @g
always results in @gmail.com
without giving me a suggestion first (like it does on iOS) (btw, it took me quite some effort to type this sentence as it was continuously extending @g
...)
When I delete a keyboard shortcut on device A (OS X), just one day later, the removed shortcuts are back! Furthermore, created shortcuts on device B (iOS) appear on device A, but removed shortcuts from device B are not removed on device A.
I do not understand the logic of syncing keyboard shortcuts:
- Is it possible to disable automatically completing my shortcuts on OS X?
- Should the shortcuts be in sync between OS X and iOS?
- Why are removed shortcuts keep coming back?
- How can I fix the synchronisation between shortcuts on my machines?
On OS X, I have 'Correct spelling automatically' disabled.
iOS gives the keyboard shortcut as a suggestion.
On iOS go to: Settings > General > Keyboard > Shortcuts
On OS X go to: System Preferences > Keyboard > Shortcuts > Text
First, to answer your questions:
- Keyboard shortcuts do sync between OS X and iOS. However, in my experience this has always been quite slow, with the Mac taking a long time to recognize keyboard shortcuts I added on the phone.
- Turning the synchronization off would require disabling the syncing of documents and preferences, which would also disable quite a lot of things that should be synced, so this is not really an option.
- It seems that shortcuts are stored in several locations on an iPhone. Some of these can be deleted (which is what happens when you delete a shortcut), but some of them can't. These not-really-deleted shortcuts then sync again to iCloud, causing your problems. There is an Apple Forum post detailing how to delete the shortcuts, that you might wanna try (on your own risk, though.)
Now, for some fixes:
- You could change your shortcuts. E.g. having a prefix like
;;
in front of your shortcuts would make sure you only expand what you really want to. Also, it's not that much effort for typing. Similarly, I usel@g
for expanding my email-address, which doesn't make any problems since I never typel@
anywhere else. This could be called a workaround, but as it seems it's the only option that should work reliably. - Using TextExpander you should be able to configure the sync more easily. However, I don't have any experience with it, and I'd recommend the first solution.
The entire discussion is based on very confusing terminology. The term keyboard shortcut should be reserved to true shortcuts, e.g. Cmd-S for saving a document. What you discuss here, however, are not keyboard shortcuts but what Apple calls Text Replacements. The purpose is to replace some rather cryptic abbreviation to a wanted long text. This is also often referred to as expansion.
Under iOS these expanding text replacements are to be defined and edited here: "General -> Keyboard -> Text Replacement" Under OS X, e.g. OS X 10.11.x (El Capitan) these text replacement are found here: "Black Apple -> Systems Preferences... -> Keyboard -> Text" (note the nearby tab 'Shortcuts' serves NOT the purpose of expanding text replacements, but allows to manage the actual keyboard shortcuts such as aforementioned Cmd-S).
On my Systems the expanding text replacements do also all not sync properly. I am still trying to figure out some method to overcome that, but fear from all what I learned so far that text replacements are among one of the rather buggy syncing features, where hope of a solution seems futile (at least I would not hold my breath for Apple resolving this). Unfortunately syncing in general, the fashionable it currently is, is far from working robustly in all cases. I am speaking from experience with Dropbox, Sugarsync, mycloud etc. where Apple's iCloud software is not the least an exception. In my experience on Apple Systems only calendar entries and address book records sync fine since several years. Everything else experiences repeatedly hickups or even fails drastically sooner or later.
Not a full answer, but a working method...
if you use common phrases for text replacements, accept that you will get conflicts.
Use something that would not naturally occur in your writing.
myeml would be a fair trigger for your email address, myaddy for your snail mail, etc.
I find that I remember them better if they are normally a common word; that however would cause conflicts, so instead I prefix all my triggers with 'nc' [originally because I kept things like this on notecards & also because I know of no word that starts with nc, so it removes potential conflicts] so ncapple would generate the Apple symbol etc.
The synchronisation issue is separate & as far as I'm aware is indeed a bug, albeit one that has remained consistent for many years.
Changing a text replacement on the Mac will sync via iCloud to my iPhone. However, it will also trigger a re-sync back in the other direction & the sync is incorrectly [imo] merged rather than replaced, so you get old triggers syncing back to the Mac rather than being replaced by the new version you just made, leaving you with the .
The only solution to this I have found is to go immediately to your iDevice & delete the unwanted triggers before the sync occurs.
Settings > General > Keyboard > Text Replacement.
A nuisance, but a repeatable solution.