How do you get iPhone to share contacts with Mac Messages app?
I have been having this same problem and as I go through this thread I found that I could answer yes to everything, but the problem persisted.
I ended up opening the Contacts page on my Mac and while the contacts I needed were in "All Contacts" they were not in the "On My Mac" so I highlighted them all under "All Contacts" and did a drag and drop into "On My Mac" it fixed almost all my problems.
The ones that it didn't fix I found out that the formatting on the phone number themselves were not correct. For example the one on Mac messenger was 1(234)567-8900 while the contact card did not have a 1... so, (234)567-8900. Changing those two things fixed everything.
I found that going onto system preferences/icloud then selecting the Contacts to uncheck it then selecting it again helps to sync it!
This is not an iCloud syncing issue, it's an issue related to the default account used for Contacts on your phone / iPad.
After searching for a long time, I finally figured out the missing info - I wasn't able to find this anywhere else, so am posting here. A brief explanation, solution is below the separating line.
If you've got iCloud sharing set up & are confident that it's not a login/logout issue etc then it is probably that your phone / iPad is adding new contacts to an account that is not your iCloud account.
If you're like me, you might not have realized that the iOs Contacts even distinguished between different groups. Even if you did notice the "Groups" button, nothing inside iOs Contacts.app tells you that there is a default account. Even if you view a particular contact card, it won't tell you the group it's in.
- On your iOs device, go to preferences > Contacts (when I search "contacts" in preferences, it gave me three options, take the one that has the same icon as the Contacts.app not* iCloud, **not privacy).
- Click "Default Account" and set it to "iCloud" (if it was already set to iCloud, then you are having syncing issues).
Now, when you add a new contact, it will be added to your iCloud contacts by default, and so will sync properly.
N.B. This won't fix previously added contacts. It will just eliminate the problem, moving forward. You'll have to be sure that the previous default account is added to Max OS Contacts.app and can try dragging and dropping to iCloud, but mine was set to an Exchange account which is supposed to be synced with my Macbook, and those contacts aren't showing up; new contacts added to iCloud do.
Hope this helps someone else - can't believe it's not explained better on Apple's support pages.
I assume your contact sync all fine. Match telephone number work a little bit different with iOS and OS X, please check the person's telephone number format. and very important, check "system preferences"->Language & Region" settings, make sure OS X could match the telephone number format.