Proof
No visual proof cases have been published for this package yet. The registry summary below describes what the compat layer implements.expo-contacts
native-seam: upstream expo-contacts JS runs from the bundle; the seam now seeds the standard Apple sample address book the bare reference iOS Simulator ships (Kate Bell, Daniel Higgins, John Appleseed, Anna Haro, Hank Zakroff, David Taylor — the long-stable *@mac.com sample set), so getContactsAsync/getContactByIdAsync return the same contacts a real RN app sees on the conformance Simulator instead of an empty list. add/update/remove then mutate that store like CNContactStore.80%
API coverageWorking (10)
reference-Simulator default address book seeded (queryable by name/id, sorted/paginated); upstream enums/constants and JS validationadd/update/remove contactsgetContactsAsync/getPagedContactsAsync with query/sort/paginationgetContactByIdAsynchasContactsAsyncpresentFormAsyncpresentContactPickerAsyncwriteContactToFileAsync data URIcontainers/default containerpermission functions; validated through real RN and sootsim add/update/query/remove smoke
Missing (7)
contact-change observer (CNContactStoreDidChange) callbacksreal image fetching for contact thumbnails (imageAvailable false)vCard import/export fidelity beyond JSON-as-data-URIgroups membership persistencelimited-access picker semanticsexact field-format parity with a specific live iOS build (names/emails are the stable documented sample set; phone/address formatting may vary by iOS version)no cross-reload persistence