This is tricky, but it seemed to work for me, too. I was expecting to get two Macs sync'ing Address Book to each other via iCloud — instead of dumping a copy of the Address Book and re-importing — and have one of them sync everything with my 3G iOS 4.2.1 iPhone. When I lost all contacts on iPhone, I was scared! Apparently you're right: for this to work, all devices must be "iCloud ready", although I fail to understand why they aren't — except for Apple's marketing purposes, of course: they dislike customers with 6-year-old perfectly working iPhones...
Thanks anyway. I have lived with un-sync'ed Address Books among all my Apple hardware for years, so I can survive for that a bit longer. So long as my late 2006 MacBook can sync with my 2007 iPhone, I'm happy. Your trick seems to allow at least that.
I want to thank you for taking the time to help us out with this "pesky" issue, which I had the most difficult time trying to resolve until I read your post. It worked for me, too!! (I've been waiting, and waiting, and waiting for the new iphone 5 to finally get here, so I haven't upgraded from the 3G to the 4S; and in a few days we may be getting the word on that new iphone release date!!).
What we we Mac users do if it were not for the kindness of people like you who are willing to volunartily take the time out of their busy life to help out others in need of advice?
Thanks for being so kind! And, I'll make sure I do what I CAN to "pass it on" if I'm able to help out someone else in need--whether here or simply carrying something heavy, needing a ride to the store, etc.!!
There is another way to do it. Open Contacts on your Mac. Go to Edit Menu->Select All. Then go to File->Export->Export vCard. It allows you to export all your contact as vCards to a single file on disk. Then go to Preferences and select Account tab. For iCloud account uncheck Enable this account and close Preferences. If you were syncing your contacts from iCloud, your Contacts will be empty. At this point go to File->Import... and select your vCard file on disk. Import all your contacts from that file. Now go to iTunes and check the checkbox that forces a single replacement of your contacts on iPhone 3G with the contacts on your Mac. Select Apply. As soon as this button changes to Sync, click on it. All your contacts will now be synced to iPhone 3G. Return to Contacts app on your iMac. Go to Edit->Select All and select all your contacts. Then do Edit->Delete and delete them all. After that go to Preferences and in Account tab check the checkbox Enable this account for your iCloud account. The contacts will be immediatel;y re-populated from iCloud. Works fine on 10.8.x.
You can try this:
Open Contacts on the Mac.
Make sure All Contacts is selected in the left pane.
Select one of the contacts.
Now click Edit / Select All (command a)
The click File / Export... /Export vCard.
Save the file locally and then email it to an email account that is setup on the iPhone 3g
Open the vCard on the iPhone and click button at top add Contacts (I think)
Takes a while to open the vCard and to add Contacts if you have a lot.
Open contacts on iPhone and they should all be there
All you can do is start over with a clean slate by erasing everything.
Settings/General/Reset/Erase All Contents and Settings
This will, of course, erase all contacts and any settings you have.
You should do a backup in iTunes first.
I am not sure if restoring from a backup will restore your contacts or not, as I have not tried it.
Otherwise, there are 3rd Party programs for windows and osx to edit your contacts but you may have to pay for them.
Thanks for your help!
I'm not wanting to restore this device if all of the messed up contacts will come back with it.
I need make sure I'm backing up locally because 4.2.1 doesn't use iCloud.
I'll have to look at this again because I don't want to have to put all settings/passwords back in if I can avoid it.