Contacts

RSS for tag

Access the user's contacts and format and localize contact information using Contacts.

Posts under Contacts tag

194 Posts

Post

Replies

Boosts

Views

Activity

Public Contact Info
I wanted to create a public contact card so when my clients click a button on my website it traverses them through the iMessage API and instantly adds a contact card with photo and name as a background task. If there is implications my next question was going to be if there is a possible way to create a public contact card where for example I could redirect a client to iMessage and when starting a new conversation if they type in a name it pops up instead of needing to utilize a phone number? I am trying to explain my thought process as much as possible but I have been typing for hours. In simple terms is there a possibility to create a public contact card that can be accessed or texted by anyone who types in a name into new conversation bar?
1
0
530
Dec ’24
Siri Prioritizing Incorrect Contact When Default Account is Set
Hello, I’m experiencing an issue with Siri on iOS where it prioritizes a contact from the wrong account, even though I’ve set a default account for Contacts. Details of the issue: I have two contact groups: Exchange (Outlook) — my default account. iCloud. There’s a contact, "Alena Jorse," which exists in both groups: In the Exchange group, the name is saved as Alena Jorse. In the iCloud group, it is saved as Alena Jorse with double-strike formatting (e.g., "Alena Jorse**"). Both contacts have the same phone number. When I ask Siri to call "Alena Jorse," it selects the iCloud contact ("Alena Jorse**") instead of the Exchange contact, despite Exchange being set as the default Contacts account in my iOS settings. Expected Behavior: Siri should prioritize the contact from the default account (Exchange) and ignore other accounts unless specified. Steps to Reproduce: Have duplicate contacts in two groups (Exchange and iCloud) with the same phone number. Set Exchange as the default Contacts account. Ask Siri to call the contact. Troubleshooting Steps Taken: Ensured the default account is set to Exchange. Verified both contacts have the same phone number. Tested by disabling iCloud temporarily, which resolves the issue (but is not a viable long-term solution). Request: Could you please advise if this is intended behavior or a bug? If it’s a configuration issue, how can I ensure Siri prioritizes the default account for contacts? If it’s a bug, could this be investigated further? Thank you for your assistance.
1
0
495
Dec ’24
Accessing Contacts in App
I am developing an app that would like to access the contacts on the user's device. There was a recent article published that said Apple was restricting access to a user's contacts on their device. This was due to some current apps accessing the contacts and using that list for spam email and texts. Is that they case? if so, are there specific cases that allow an App to access the contacts?
2
0
565
Dec ’24
Support Status and Specific Implementation Methods for ContactProviderExtension with NotificationServiceExtension
I am considering an implementation to provide OS Contacts information in real-time using data from push notifications. Through a TSI (Technical Support Incident), Apple Support recommended combining ContactProviderExtension and NotificationServiceExtension. However, the following threads indicate that this combination is not supported, as confirmed by Apple DTS (Thread 1, Thread 2). Question 1: Latest Support Status for Using ContactProviderExtension with NotificationServiceExtension Additionally, there is limited documentation on implementing ContactProviderExtension, and I am specifically struggling with the following points: Question 2: Specific Implementation Guidance for ContactProviderExtension The method to call when providing Contacts information to the OS How to add and delete Contacts information provided to the OS How to verify the Contacts information currently provided to the OS Any insights on the latest support status or specific implementation methods for these extensions would be greatly appreciated.
0
0
603
Nov ’24
callkit and contact app
Hello, I am a developer currently working on a personal contact management app. What is the app? My app stores additional information beyond basic contact details. Therefore, instead of using the Contacts framework, I manage contact objects using Core Data. What am I trying to achieve? I want to display additional information on the caller ID screen when a call is received from a number stored in my app. What have I tried? I’ve attempted the following methods without success: 1. Call Directory Extension: I thought using this method would allow me to display additional information from Core Data on the call screen. However, I learned that when a call is received, the iOS system first searches for the phone number in the Contacts app and only looks to the Extension app if no match is found. Therefore, displaying contact information from my app seems unfeasible. 2. Custom Call UI: Using CallKit seemed like a viable option to display the necessary information during a call, but it appears to only be possible with VoIP apps. My app does not support VoIP calls, so this method was also not implementable. I am wondering if there are any technologies available that could help me achieve my goal, or if there’s something I might be missing. Any advice would be greatly appreciated. Thank you! If a similar question has been asked, I apologize for the repetition.
3
0
1.2k
Oct ’24
Timer driven refresh
I have an app that needs to refresh a server whenever a Contacts record is updated. I can observe Contacts, but that only seems to work when my app is running (and in foreground, which it cannot be on iPhone if the Contacts app is being updated). I want it to process, even if my app is in background, or has been terminated (swiped away), or after a phone restart. The only way I can think of is to periodically push a notification to the app from an external server. Is there any way to run a timer that sends a notification to the app on a periodic basis? The timers you can set seem to run even if the Clock app is swiped away, or following a phone restart. Is there anything like that I could use to wake my app periodically?
1
0
670
Oct ’24
Request .full contacts authorization after being granted .limited
We're adjusting to the new iOS 18 .limited contacts access mode. In our app, we don't request contacts right away. We have a search bar where users can search through their own contacts and select one using the ContactAccessButton. If they do select one, then they're prompted to "Grant Limited Access", not "Grant Full Access", as the screenshot shows below. Later on, we want to offer the ability for users to sync their entire contact book with our app. This will improve their experience on the app by automatically finding all their friends already on the app, without them having to do the manual work of clicking on every single contact in the ContactsAccessPicker. Is this possible right now? It doesn't seem like it—when I call ContactsStore.requestAccess(for: .contacts) while in .limited access mode, nothing happens. But I would like to show a prompt that gives the user the ability to grant all their contacts to improve their experience.
1
0
734
Sep ’24
Using ContactAccessButton freezes the entire app
When using both the ContactsAccessButton demo project, as well as when implementing it in my own, the whole app freezes after entering a few characters and searching through contacts. I don't know if this is necessarily reproducable because it's probably related to the contacts in my contact book. Typing in "Lex" does not freeze the app, but typing in "Adam No" freezes it. I get the following console error before my app freezes and I'm forced to force quit it: #ContactsButton Failed to get service proxy: Error Domain=NSCocoaErrorDomain Code=4097 "connection to service with pid 3387 named com.apple.ContactsUI.ContactsButtonXPCService" UserInfo={NSDebugDescription=connection to service with pid 3387 named com.apple.ContactsUI.ContactsButtonXPCService} #ContactsButton Failed to get remote content: nil (got this a number of times ContactsAccessButton really doesn't seem production ready...
2
2
553
Sep ’24
iOS 18 Beta 2 XCTest: Unable to record and play contacts permission system dialog
Unable to record and play the new contacts permission system dialog. App: https://developer.apple.com/documentation/contacts/accessing-a-person-s-contact-data-using-contacts-and-contactsui func handleContactsAccessAlert() { let springboard = XCUIApplication(bundleIdentifier: "com.apple.springboard") let allowButton = springboard.buttons["Allow Full Access"] allowButton.tap() let access6ContactsButton = springboard.alerts["Allow full access to 6 contacts?"].scrollViews.otherElements.buttons["Allow"] access6ContactsButton.tap() } func handleContactsPermissionAlert() { let springboard = XCUIApplication(bundleIdentifier: "com.apple.springboard") let allowButton = springboard.buttons["Continue"] if allowButton.exists { allowButton.tap() sleep(5) handleContactsAccessAlert() } } func testContactPermissions() { let app = XCUIApplication() app.launch() app.buttons["Request Access"].tap() sleep(5) handleContactsPermissionAlert() sleep(5) app.collectionViews/*@START_MENU_TOKEN@*/.staticTexts["Kate Bell"]/*[[".cells.staticTexts[\"Kate Bell\"]",".staticTexts[\"Kate Bell\"]"],[[[-1,1],[-1,0]]],[0]]@END_MENU_TOKEN@*/.tap() }
3
1
1.4k
Sep ’24
ContactAccessButton and ContactAccessPicker issues
We are trying to adopt the new iOS18 ContactAccessButton and ContactAccessPicker in our app and we are facing below issues and requirements in UI and functionality. is there a way to optionally hide the ContactAccessButton UI when there is no matching results ?. The search button in the ContactAccessButton UI is not working when showing no matches and browse contacts. The console showing below error #ContactsButton response after touch -- Should not show UI #ContactsButton: match for callback was unexpectedly nil? The ContactAccessPicker view and contact selection view opened from ContactAccessButton - view results are not presented properly. The presented view not fully covered the presenting screen and blank screen appears in edges Cancel button in ContactAccessPicker UI when list shown is not working.
9
3
998
Sep ’24
Contact Prodvider Extension key 'com.apple.contact.provider.extension' not accepting in Testflight submission
ERROR ITMS-90349: "Invalid Info.plist value. The value of the EXExtensionPointldentifier key, com.apple.contact.provider.extension, in the Info.plist of "MainApp.app/Extensions/ContactProviderExtension.appex" is invalid. We were working on new iOS18 Contacts Provider extension and when try to test the feature in testflight we were unable to submit the build and getting the above error. The extensionPointldentifier 'com.apple.contact.provider.extension' was auto generated by xcode and apple doc mentioned the same value to use for Contacts Provider extension support. But it is not accepting in testflight. https://developer.apple.com/documentation/contactprovider/contactproviderextension Any help will be appreciated.
0
1
725
Sep ’24
Allow specifying regex to match an e-mail address to a contact.
Is your feature request related to a problem? Please describe. Everywhere where Apple offers it, I use Apple's Private Relay e-mail addresses. However, they can't be manually generated, so for the rest, I use https://anonaddy.me. Because it offers infinite aliases, I use a different alias every time I give my e-mail address to someone. However, I ensure that they're all under the @rokejulianlockhart.anonaddy.com (.com and .me are equivalent in this case) domain so that they can be identified as me by a human. I use different aliases to combat spam, not be anonymous. Additionally, when messaging others, I ensure that I add a sub-address with my name to their e-mail address so that they can filter all messages from me (even if I'm using a different alias for my own filtering purposes). Others use the same when communicating with me, especially family. The current identification system doesn't take sub-addresses into account whatsoever. Describe the solution you'd like I should therefore be able to set RY7I0I+RY7I0R@rokejulianlockhart.anonaddy.com as an e-mail address, and beneath it add, for instance [A-Za-z0-9]+\+[A-Za-z0-9]+@rokejulianlockhart\.anonaddy\.com in another input form to ensure that Nextcloud identifies any (in this case sub-addressed) alias as me. Describe alternatives you've considered The sole current alternative is to list literal tens of thousands of aliases as myself, which is insane. It also wouldn't work, because https://anonaddy.me generates a new alias when someone else uses one, so I'd have to retroactively add those whenever someone else uses one. It also wouldn't account for sub-addresses. Additional context Like most more powerful features of Nextcloud, this only need be visible when clicked on. Adding a button beside each e-mail address to show a form which allows the user to enter custom regex is enough. Additionally requested at: https://feedbackportal.microsoft.com/feedback/idea/ed4261f8-af28-ee11-a81c-6045bd8534ad. https://discussions.apple.com/thread/255016441. https://github.com/nextcloud/contacts/issues/3530#issue-1816825315.
2
1
1.1k
Aug ’24
iOS 18 recent update
I updated to the newest version of iOS 18 Beta this morning. One feature I preferred on the previous version was that when you're going into the call screen, you had to press the small phone icon rather than the persons name, to make the call. It stopped me accidentally calling people a lot of the time.. This feature seems to have gone on the newest version, or is that a bug? Essentially, the little (i) icon become a phone icon, and you used that to call, rather than the main contact name box.
0
1
618
Aug ’24
[AppKit] CNPropertyNotFetchedException when using CNContactFormatter on CNContact retrieved from CNContactPicker
I am using CNContactPicker (with "CNContactKey.PostalAddresses" as "displayedKeys") to allow users to pick a contact + postal address. Upon selection, I am retrieving the postal address using CNPostalAddressFormatter - this works without problems. However, when trying to retrieve the contact name using CNContactFormatter, this only works when the contact type is "Person". When it is "company", the app crashes with "CNPropertyNotFetchedException Reason: A property was not requested when contact was fetched" (because the formatter attempts to access "organizationName", which it apparently can't. There also doesn't seem to be a way to "retrieve" this information without having to request contacts permissions manually. The same code (just using CNContactPickerViewController, but also without requesting contacts permissions) works without issue on iOS.
2
0
969
Aug ’24
Contact Provider Extension "enumerateContent" Method Called Multiple Times
I'm facing an issue with the enumerateContent method in my Contact Provider extension. The method is being called multiple times before I call the first observer.didEnumerate.. Here's a sample of my code: class TestContactProviderRootContainerEnumerator : ContactItemEnumerator { let handler = TestContactProviderUsecaseHandler() func configure(for domain: ContactProviderDomain) { log.error("---> configure") } func enumerateContent(in page: ContactItemPage, for observer: ContactItemContentObserver) { let requestPage = getPageIndex(from: page.offset, pageSize: observer.suggestedPageSize) log.error("---> Begin Enumerate Content page=\(requestPage) pageSize =\(observer.suggestedPageSize)") func completion(items: [ContactItem], hasMore: Bool) { observer.didEnumerate(items) do { let generationMarker = try getGenerationMarker(page: page) if hasMore { let nextPage = ContactItemPage(generationMarker: generationMarker, offset: page.offset + items.count) log.error("---> nextPage set offset \(page.offset + items.count) nextPage: \(getPageIndex(from: page.offset + items.count, pageSize: observer.suggestedPageSize))") observer.didFinishEnumeratingPage(upTo: nextPage) }else { observer.didFinishEnumeratingContent(upTo: generationMarker) } }catch { observer.didFinishEnumeratingContentWithError(error) return } } log.error("---> Start Request page=\(requestPage) pageSize =\(observer.suggestedPageSize)") handler.requestForRecordsList(page: requestPage, perPage: observer.suggestedPageSize, sortBy: Field.Contact.lastName, modifiedSince: nil, completion: { contactItems, hasMore, error in log.error("---> Finish Request page=\(requestPage) pageSize =\(observer.suggestedPageSize)") if let error { log.error("---> Error: \(error)") observer.didFinishEnumeratingContentWithError(error) return } completion(items: contactItems, hasMore: hasMore) log.error("---> End Enumerate Content page=\(requestPage) pageSize =\(observer.suggestedPageSize)") }) } } Below are the logs that I'm seeing: ---> configure ---> Begin Enumerate Content page=1 pageSize =20 ---> Start Request page=1 pageSize =20 ---> Begin Enumerate Content page=1 pageSize =20 ---> Begin Enumerate Content page=1 pageSize =20 ---> Begin Enumerate Content page=1 pageSize =20 ....10+times ---> Begin Enumerate Content page=1 pageSize =20 ---> Finish Request page=1 pageSize =20 ---> Begin Enumerate Content page=1 pageSize =20​​ ​---> nextPage set offset 20 nextPage: 2​​ ​---> Begin Enumerate Content page=1 pageSize =20 ---> Begin Enumerate Content page=1 pageSize =20​ ​---> Begin Enumerate Content page=2 pageSize =20 ---> Begin Enumerate Content page=2 pageSize =20​ ​---> Start Request page=2 pageSize =20​ ​---> Begin Enumerate Content page=2 pageSize =20 ---> Begin Enumerate Content page=2 pageSize =20​ ​....10+times ---> Begin Enumerate Content page=2 pageSize =20 ---> Begin Enumerate Content page=2 pageSize =20 Has anyone else experienced this issue? Any ideas on why this is happening or how to fix it.
2
0
792
Aug ’24
Its not possible to use a Contact Provider Extension from within a Notification Service Extension
A Notification Service Extension is one of the more capable extensions, and there's a lot that can be done within it (for example, it can invoke a Call Extension). However its not possible to use a Contact Provider Extension within it. If a CPE has been enabled by the main app, then if a push is sent to the NSE, then within the NSE the ContactProviderManager class reports that the CPE is disabled and its not possible to anything with it. For example a call to ContactProviderManager.signalEnumerator() will hang and not complete. I was hoping to create a contact and make it available to the system on receipt of a push, but this isn't going to possible. Is this intentional and by design, or just due to the immaturity of this feature/iOS beta? The documentation of a Contact provider Extension says: "signalEnumerator() An example of using this call is to handle a push notification to your app when the provided contacts from your server update" It therefore seems strange that the main cited use case for ContactProviderManager.signalEnumerator() isn't actually possible if the push is delivered to an extension rather than the app.
3
0
815
Aug ’24
Public Contact Info
I wanted to create a public contact card so when my clients click a button on my website it traverses them through the iMessage API and instantly adds a contact card with photo and name as a background task. If there is implications my next question was going to be if there is a possible way to create a public contact card where for example I could redirect a client to iMessage and when starting a new conversation if they type in a name it pops up instead of needing to utilize a phone number? I am trying to explain my thought process as much as possible but I have been typing for hours. In simple terms is there a possibility to create a public contact card that can be accessed or texted by anyone who types in a name into new conversation bar?
Replies
1
Boosts
0
Views
530
Activity
Dec ’24
Siri Prioritizing Incorrect Contact When Default Account is Set
Hello, I’m experiencing an issue with Siri on iOS where it prioritizes a contact from the wrong account, even though I’ve set a default account for Contacts. Details of the issue: I have two contact groups: Exchange (Outlook) — my default account. iCloud. There’s a contact, "Alena Jorse," which exists in both groups: In the Exchange group, the name is saved as Alena Jorse. In the iCloud group, it is saved as Alena Jorse with double-strike formatting (e.g., "Alena Jorse**"). Both contacts have the same phone number. When I ask Siri to call "Alena Jorse," it selects the iCloud contact ("Alena Jorse**") instead of the Exchange contact, despite Exchange being set as the default Contacts account in my iOS settings. Expected Behavior: Siri should prioritize the contact from the default account (Exchange) and ignore other accounts unless specified. Steps to Reproduce: Have duplicate contacts in two groups (Exchange and iCloud) with the same phone number. Set Exchange as the default Contacts account. Ask Siri to call the contact. Troubleshooting Steps Taken: Ensured the default account is set to Exchange. Verified both contacts have the same phone number. Tested by disabling iCloud temporarily, which resolves the issue (but is not a viable long-term solution). Request: Could you please advise if this is intended behavior or a bug? If it’s a configuration issue, how can I ensure Siri prioritizes the default account for contacts? If it’s a bug, could this be investigated further? Thank you for your assistance.
Replies
1
Boosts
0
Views
495
Activity
Dec ’24
Accessing Contacts in App
I am developing an app that would like to access the contacts on the user's device. There was a recent article published that said Apple was restricting access to a user's contacts on their device. This was due to some current apps accessing the contacts and using that list for spam email and texts. Is that they case? if so, are there specific cases that allow an App to access the contacts?
Replies
2
Boosts
0
Views
565
Activity
Dec ’24
Carplay Phone how to change favourites tab to recent calls
For years every time I click on the phone app in my car it use to show resent calls now it opens favourites by default. how can I change it?
Replies
1
Boosts
0
Views
430
Activity
Nov ’24
Support Status and Specific Implementation Methods for ContactProviderExtension with NotificationServiceExtension
I am considering an implementation to provide OS Contacts information in real-time using data from push notifications. Through a TSI (Technical Support Incident), Apple Support recommended combining ContactProviderExtension and NotificationServiceExtension. However, the following threads indicate that this combination is not supported, as confirmed by Apple DTS (Thread 1, Thread 2). Question 1: Latest Support Status for Using ContactProviderExtension with NotificationServiceExtension Additionally, there is limited documentation on implementing ContactProviderExtension, and I am specifically struggling with the following points: Question 2: Specific Implementation Guidance for ContactProviderExtension The method to call when providing Contacts information to the OS How to add and delete Contacts information provided to the OS How to verify the Contacts information currently provided to the OS Any insights on the latest support status or specific implementation methods for these extensions would be greatly appreciated.
Replies
0
Boosts
0
Views
603
Activity
Nov ’24
IOS 18 contact updates extremely slow
I have an application that updates bulk contacts it used to take 2 seconds to update 100 contacts on < IOS 18. After IOS 18 it takes almost 2 minutes and is highly affecting our app performance.
Replies
1
Boosts
0
Views
577
Activity
Nov ’24
callkit and contact app
Hello, I am a developer currently working on a personal contact management app. What is the app? My app stores additional information beyond basic contact details. Therefore, instead of using the Contacts framework, I manage contact objects using Core Data. What am I trying to achieve? I want to display additional information on the caller ID screen when a call is received from a number stored in my app. What have I tried? I’ve attempted the following methods without success: 1. Call Directory Extension: I thought using this method would allow me to display additional information from Core Data on the call screen. However, I learned that when a call is received, the iOS system first searches for the phone number in the Contacts app and only looks to the Extension app if no match is found. Therefore, displaying contact information from my app seems unfeasible. 2. Custom Call UI: Using CallKit seemed like a viable option to display the necessary information during a call, but it appears to only be possible with VoIP apps. My app does not support VoIP calls, so this method was also not implementable. I am wondering if there are any technologies available that could help me achieve my goal, or if there’s something I might be missing. Any advice would be greatly appreciated. Thank you! If a similar question has been asked, I apologize for the repetition.
Replies
3
Boosts
0
Views
1.2k
Activity
Oct ’24
Timer driven refresh
I have an app that needs to refresh a server whenever a Contacts record is updated. I can observe Contacts, but that only seems to work when my app is running (and in foreground, which it cannot be on iPhone if the Contacts app is being updated). I want it to process, even if my app is in background, or has been terminated (swiped away), or after a phone restart. The only way I can think of is to periodically push a notification to the app from an external server. Is there any way to run a timer that sends a notification to the app on a periodic basis? The timers you can set seem to run even if the Clock app is swiped away, or following a phone restart. Is there anything like that I could use to wake my app periodically?
Replies
1
Boosts
0
Views
670
Activity
Oct ’24
Contacts missing after ios18.1 beta update in Korea
I backed up my data in iCloud.com and tried to use the past contact archives but it didnt work. Also tried adding them one by one but didn’t save into my contact list. Please help
Replies
0
Boosts
0
Views
537
Activity
Sep ’24
Request .full contacts authorization after being granted .limited
We're adjusting to the new iOS 18 .limited contacts access mode. In our app, we don't request contacts right away. We have a search bar where users can search through their own contacts and select one using the ContactAccessButton. If they do select one, then they're prompted to "Grant Limited Access", not "Grant Full Access", as the screenshot shows below. Later on, we want to offer the ability for users to sync their entire contact book with our app. This will improve their experience on the app by automatically finding all their friends already on the app, without them having to do the manual work of clicking on every single contact in the ContactsAccessPicker. Is this possible right now? It doesn't seem like it—when I call ContactsStore.requestAccess(for: .contacts) while in .limited access mode, nothing happens. But I would like to show a prompt that gives the user the ability to grant all their contacts to improve their experience.
Replies
1
Boosts
0
Views
734
Activity
Sep ’24
Using ContactAccessButton freezes the entire app
When using both the ContactsAccessButton demo project, as well as when implementing it in my own, the whole app freezes after entering a few characters and searching through contacts. I don't know if this is necessarily reproducable because it's probably related to the contacts in my contact book. Typing in "Lex" does not freeze the app, but typing in "Adam No" freezes it. I get the following console error before my app freezes and I'm forced to force quit it: #ContactsButton Failed to get service proxy: Error Domain=NSCocoaErrorDomain Code=4097 "connection to service with pid 3387 named com.apple.ContactsUI.ContactsButtonXPCService" UserInfo={NSDebugDescription=connection to service with pid 3387 named com.apple.ContactsUI.ContactsButtonXPCService} #ContactsButton Failed to get remote content: nil (got this a number of times ContactsAccessButton really doesn't seem production ready...
Replies
2
Boosts
2
Views
553
Activity
Sep ’24
ContactAccessButton Dark Mode Bugs
The ContactAccessButton doesn't seem to work correctly in dark mode. The background color is black and looks buggy even in the Apple provided sample app. When access is denied, the ContactAccessButton text isn't even visible. Light mode vs dark mode:
Replies
2
Boosts
0
Views
452
Activity
Sep ’24
iOS 18 Beta 2 XCTest: Unable to record and play contacts permission system dialog
Unable to record and play the new contacts permission system dialog. App: https://developer.apple.com/documentation/contacts/accessing-a-person-s-contact-data-using-contacts-and-contactsui func handleContactsAccessAlert() { let springboard = XCUIApplication(bundleIdentifier: "com.apple.springboard") let allowButton = springboard.buttons["Allow Full Access"] allowButton.tap() let access6ContactsButton = springboard.alerts["Allow full access to 6 contacts?"].scrollViews.otherElements.buttons["Allow"] access6ContactsButton.tap() } func handleContactsPermissionAlert() { let springboard = XCUIApplication(bundleIdentifier: "com.apple.springboard") let allowButton = springboard.buttons["Continue"] if allowButton.exists { allowButton.tap() sleep(5) handleContactsAccessAlert() } } func testContactPermissions() { let app = XCUIApplication() app.launch() app.buttons["Request Access"].tap() sleep(5) handleContactsPermissionAlert() sleep(5) app.collectionViews/*@START_MENU_TOKEN@*/.staticTexts["Kate Bell"]/*[[".cells.staticTexts[\"Kate Bell\"]",".staticTexts[\"Kate Bell\"]"],[[[-1,1],[-1,0]]],[0]]@END_MENU_TOKEN@*/.tap() }
Replies
3
Boosts
1
Views
1.4k
Activity
Sep ’24
ContactAccessButton and ContactAccessPicker issues
We are trying to adopt the new iOS18 ContactAccessButton and ContactAccessPicker in our app and we are facing below issues and requirements in UI and functionality. is there a way to optionally hide the ContactAccessButton UI when there is no matching results ?. The search button in the ContactAccessButton UI is not working when showing no matches and browse contacts. The console showing below error #ContactsButton response after touch -- Should not show UI #ContactsButton: match for callback was unexpectedly nil? The ContactAccessPicker view and contact selection view opened from ContactAccessButton - view results are not presented properly. The presented view not fully covered the presenting screen and blank screen appears in edges Cancel button in ContactAccessPicker UI when list shown is not working.
Replies
9
Boosts
3
Views
998
Activity
Sep ’24
Contact Prodvider Extension key 'com.apple.contact.provider.extension' not accepting in Testflight submission
ERROR ITMS-90349: "Invalid Info.plist value. The value of the EXExtensionPointldentifier key, com.apple.contact.provider.extension, in the Info.plist of "MainApp.app/Extensions/ContactProviderExtension.appex" is invalid. We were working on new iOS18 Contacts Provider extension and when try to test the feature in testflight we were unable to submit the build and getting the above error. The extensionPointldentifier 'com.apple.contact.provider.extension' was auto generated by xcode and apple doc mentioned the same value to use for Contacts Provider extension support. But it is not accepting in testflight. https://developer.apple.com/documentation/contactprovider/contactproviderextension Any help will be appreciated.
Replies
0
Boosts
1
Views
725
Activity
Sep ’24
Allow specifying regex to match an e-mail address to a contact.
Is your feature request related to a problem? Please describe. Everywhere where Apple offers it, I use Apple's Private Relay e-mail addresses. However, they can't be manually generated, so for the rest, I use https://anonaddy.me. Because it offers infinite aliases, I use a different alias every time I give my e-mail address to someone. However, I ensure that they're all under the @rokejulianlockhart.anonaddy.com (.com and .me are equivalent in this case) domain so that they can be identified as me by a human. I use different aliases to combat spam, not be anonymous. Additionally, when messaging others, I ensure that I add a sub-address with my name to their e-mail address so that they can filter all messages from me (even if I'm using a different alias for my own filtering purposes). Others use the same when communicating with me, especially family. The current identification system doesn't take sub-addresses into account whatsoever. Describe the solution you'd like I should therefore be able to set RY7I0I+RY7I0R@rokejulianlockhart.anonaddy.com as an e-mail address, and beneath it add, for instance [A-Za-z0-9]+\+[A-Za-z0-9]+@rokejulianlockhart\.anonaddy\.com in another input form to ensure that Nextcloud identifies any (in this case sub-addressed) alias as me. Describe alternatives you've considered The sole current alternative is to list literal tens of thousands of aliases as myself, which is insane. It also wouldn't work, because https://anonaddy.me generates a new alias when someone else uses one, so I'd have to retroactively add those whenever someone else uses one. It also wouldn't account for sub-addresses. Additional context Like most more powerful features of Nextcloud, this only need be visible when clicked on. Adding a button beside each e-mail address to show a form which allows the user to enter custom regex is enough. Additionally requested at: https://feedbackportal.microsoft.com/feedback/idea/ed4261f8-af28-ee11-a81c-6045bd8534ad. https://discussions.apple.com/thread/255016441. https://github.com/nextcloud/contacts/issues/3530#issue-1816825315.
Replies
2
Boosts
1
Views
1.1k
Activity
Aug ’24
iOS 18 recent update
I updated to the newest version of iOS 18 Beta this morning. One feature I preferred on the previous version was that when you're going into the call screen, you had to press the small phone icon rather than the persons name, to make the call. It stopped me accidentally calling people a lot of the time.. This feature seems to have gone on the newest version, or is that a bug? Essentially, the little (i) icon become a phone icon, and you used that to call, rather than the main contact name box.
Replies
0
Boosts
1
Views
618
Activity
Aug ’24
[AppKit] CNPropertyNotFetchedException when using CNContactFormatter on CNContact retrieved from CNContactPicker
I am using CNContactPicker (with "CNContactKey.PostalAddresses" as "displayedKeys") to allow users to pick a contact + postal address. Upon selection, I am retrieving the postal address using CNPostalAddressFormatter - this works without problems. However, when trying to retrieve the contact name using CNContactFormatter, this only works when the contact type is "Person". When it is "company", the app crashes with "CNPropertyNotFetchedException Reason: A property was not requested when contact was fetched" (because the formatter attempts to access "organizationName", which it apparently can't. There also doesn't seem to be a way to "retrieve" this information without having to request contacts permissions manually. The same code (just using CNContactPickerViewController, but also without requesting contacts permissions) works without issue on iOS.
Replies
2
Boosts
0
Views
969
Activity
Aug ’24
Contact Provider Extension "enumerateContent" Method Called Multiple Times
I'm facing an issue with the enumerateContent method in my Contact Provider extension. The method is being called multiple times before I call the first observer.didEnumerate.. Here's a sample of my code: class TestContactProviderRootContainerEnumerator : ContactItemEnumerator { let handler = TestContactProviderUsecaseHandler() func configure(for domain: ContactProviderDomain) { log.error("---> configure") } func enumerateContent(in page: ContactItemPage, for observer: ContactItemContentObserver) { let requestPage = getPageIndex(from: page.offset, pageSize: observer.suggestedPageSize) log.error("---> Begin Enumerate Content page=\(requestPage) pageSize =\(observer.suggestedPageSize)") func completion(items: [ContactItem], hasMore: Bool) { observer.didEnumerate(items) do { let generationMarker = try getGenerationMarker(page: page) if hasMore { let nextPage = ContactItemPage(generationMarker: generationMarker, offset: page.offset + items.count) log.error("---> nextPage set offset \(page.offset + items.count) nextPage: \(getPageIndex(from: page.offset + items.count, pageSize: observer.suggestedPageSize))") observer.didFinishEnumeratingPage(upTo: nextPage) }else { observer.didFinishEnumeratingContent(upTo: generationMarker) } }catch { observer.didFinishEnumeratingContentWithError(error) return } } log.error("---> Start Request page=\(requestPage) pageSize =\(observer.suggestedPageSize)") handler.requestForRecordsList(page: requestPage, perPage: observer.suggestedPageSize, sortBy: Field.Contact.lastName, modifiedSince: nil, completion: { contactItems, hasMore, error in log.error("---> Finish Request page=\(requestPage) pageSize =\(observer.suggestedPageSize)") if let error { log.error("---> Error: \(error)") observer.didFinishEnumeratingContentWithError(error) return } completion(items: contactItems, hasMore: hasMore) log.error("---> End Enumerate Content page=\(requestPage) pageSize =\(observer.suggestedPageSize)") }) } } Below are the logs that I'm seeing: ---> configure ---> Begin Enumerate Content page=1 pageSize =20 ---> Start Request page=1 pageSize =20 ---> Begin Enumerate Content page=1 pageSize =20 ---> Begin Enumerate Content page=1 pageSize =20 ---> Begin Enumerate Content page=1 pageSize =20 ....10+times ---> Begin Enumerate Content page=1 pageSize =20 ---> Finish Request page=1 pageSize =20 ---> Begin Enumerate Content page=1 pageSize =20​​ ​---> nextPage set offset 20 nextPage: 2​​ ​---> Begin Enumerate Content page=1 pageSize =20 ---> Begin Enumerate Content page=1 pageSize =20​ ​---> Begin Enumerate Content page=2 pageSize =20 ---> Begin Enumerate Content page=2 pageSize =20​ ​---> Start Request page=2 pageSize =20​ ​---> Begin Enumerate Content page=2 pageSize =20 ---> Begin Enumerate Content page=2 pageSize =20​ ​....10+times ---> Begin Enumerate Content page=2 pageSize =20 ---> Begin Enumerate Content page=2 pageSize =20 Has anyone else experienced this issue? Any ideas on why this is happening or how to fix it.
Replies
2
Boosts
0
Views
792
Activity
Aug ’24
Its not possible to use a Contact Provider Extension from within a Notification Service Extension
A Notification Service Extension is one of the more capable extensions, and there's a lot that can be done within it (for example, it can invoke a Call Extension). However its not possible to use a Contact Provider Extension within it. If a CPE has been enabled by the main app, then if a push is sent to the NSE, then within the NSE the ContactProviderManager class reports that the CPE is disabled and its not possible to anything with it. For example a call to ContactProviderManager.signalEnumerator() will hang and not complete. I was hoping to create a contact and make it available to the system on receipt of a push, but this isn't going to possible. Is this intentional and by design, or just due to the immaturity of this feature/iOS beta? The documentation of a Contact provider Extension says: "signalEnumerator() An example of using this call is to handle a push notification to your app when the provided contacts from your server update" It therefore seems strange that the main cited use case for ContactProviderManager.signalEnumerator() isn't actually possible if the push is delivered to an extension rather than the app.
Replies
3
Boosts
0
Views
815
Activity
Aug ’24