Mac AddressBook replacement?

It looks like AddressBook was recently deprecated, with no replacement. I’ve been searching for several days and haven’t found a replacement, other than MBS. I would purchase an MBS license if I had use for literally anything beyond one tiny AddressBook screen in my app, but unfortunately I cannot afford $120 for this one simple feature. Is there really no other way to access the Mac’s system contacts? Has anyone come up with a class that can do it in Xojo without plugins? I really appreciate anyone’s help.

Next week you may be lucky to get a license for a discounted price for Black Friday.


The API that AddressBook uses has been deprecated by Apple. There is a newer framework, but this requires Xojo to move resources away from their current tasks to support this new API.

Just because something is deprecated does not mean you can’t use it. I would continue to use it until Xojo supports the new framework from Apple. I am sure they will.

The other thing you could do is get good with declares! :slight_smile:

Correct, deprecated doesn’t mean deleted. But unfortunately it is now completely deleted. My app no longer compiles with Xojo 2020, so it simply cannot be used. Very unfortunate.


I have never used AddressBook and just put a couple of AddressBook commands in an app in 2020 and it compiled fine. I’m not getting any usable data out of it, but like I said I’ve never used it.

And if it doesn’t work, you can always run an earlier version of Xojo.

It looks like Xojo removed System.AddressBook which looks to be essential to getting the address book data. Maybe the pulled it b/c Apple removed the API. Apple is known to abruptly pull APIs.

You have to change a little the way you go. Before you wrote :

    Dim CeBook as AddressBook
    Dim CesContacts(-1) as AddressBookContact
    CeBook = System.AddressBook
    CesContacts = CeBook.Contacts

Now you have to write :

Dim CeBook as New AddressBook
Dim CesContacts(-1) as AddressBookContact
CesContacts = CeBook.Contacts

But I would be happy if Xojo team clarify the situation. 2 of my softwares use AddressBook but I don’t have any donations for them and I can’t spend more money with MBS for that (even if I’m sure MBS works well).
Xojo should write “Deprecated with replacement” as it is already and if not “Deprecated without replacement to come” or “Deprecated with replacement to come”


Thank you so much, your solution worked perfectly. Much appreciated!

We do have Contacts classes and they use the newer APIs for macOS and iOS.
See CNContactStoreMBS and CNContactMBS classes.