Post not yet marked as solved
I am creating in the application support for the Unwanted Communication Reporting extension. All I found is this guide from Apple: https://developer.apple.com/documentation/sms_and_call_reporting/sms_and_call_spam_reporting and i follow it.
I've done:
Instantiates my ViewController from ILClassificationUIExtensionViewController.
Calls controller’s prepare(for:) method to customize UI.
Create button to notify the system when you have completed gathering information (setting setting isReadyForClassificationResponse property to true.)
Configure classificationResponse(for:) method after pressing Done button.
I want to send a response over the network so I add an associated domain to extension by following this instruction: https://developer.apple.com/documentation/xcode/supporting-associated-domain and advises from interenet.
Create file apple-app-site-association, use classificationreport instead of webcredentials when specifying the domains.
{
"applinks": {
"apps": [],
"details": [
{
"appID": “XXXX.com.project.UnwantedCommunicationExtension",
"paths": ["*"]
}
]
},
"classificationreport": {
"apps": ["XXXX.com.project.UnwantedCommunicationExtension"]
}
}
Add domain to the entitlement:
Specify the network endpoint’s address using the ILClassificationExtensionNetworkReportDestination key in extension’s Info.plist file:
Create test server and sent the apple-app-site-association file to this server.
Debugging and proxying my app, it doesn’t send any requests to the server. I can’t find any information about what request type should be sent, what data type will the server receive. Can anyone help to find information about it? Maybe advice what I did wrong, what settings should be on the server?
Post not yet marked as solved
Hi,
I just have seen an issue in my project that the Unwanted Communication Reporting extension sends response over the network connection only ONCE after installing. In the second try, after pressing the Done button, I don't see any request sent to my external server. To send response again, I have to re-install the app.
But using SMS is still ok. Every time I press the Done button, the view used to compose SMS appears.
This is my Info.plist to send response over network connection:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>NSExtension</key>
<dict>
<key>NSExtensionAttributes</key>
<dict>
<key>ILClassificationExtensionNetworkReportDestination</key>
<string>https://example.com/api</string>
</dict>
<key>NSExtensionPointIdentifier</key>
<string>com.apple.identitylookup.classification-ui</string>
<key>NSExtensionPrincipalClass</key>
<string>$(PRODUCT_MODULE_NAME).UnwantedCommunicationReportingExtension</string>
</dict>
</dict>
</plist>
The classificationResponse() function is still hit every time I press the Done button, but no request is sent to my external server, except the first try. This is my sample code used to confirm that behavior:
// Provide a classification response for the classification request
override func classificationResponse(for request:ILClassificationRequest) -> ILClassificationResponse {
return ILClassificationResponse.init(action: .reportJunk)
}
In addition, the Message Filtering extension (in same app) is running as expected.
I'm using:
iOS 15
Xcode 13
Any comment is highly appreciated. Thanks.
Post not yet marked as solved
I have followed every step to make sure UnwantedCommunicationReportingExtension will work with my app. Let me list here
Adding a new target UnwantedCommunicationReportingExtension to my project
Adding API endpoint to Info.plist
<dict>
<key>NSExtension</key>
<dict>
<key>NSExtensionAttributes</key>
<dict>
<key>ILClassificationExtensionNetworkReportDestination</key>
<string>https://api.mycompany.net/call/v2/main/report</string>
</dict>
<key>NSExtensionMainStoryboard</key>
<string>MainInterface</string>
<key>NSExtensionPointIdentifier</key>
<string>com.apple.identitylookup.classification-ui</string>
</dict>
</dict>
</plist>
Added classificationreport to Associate domain in Capability section.
classificationreport:api.mycompany.net
Created an apple-app-site-association file without json extension and returned this when api.mycompany.net called. I don't know whether to add app's bundle id or extension's bundle id. So added both. Complete apple-app-site-association below
{
"classificationreport": {
"apps": [
"XXXXXX.com.company.appname.CallReport",
"XXXXXX.com.company.appname"
]
}
}
Checked the following website to ensure the file can be accessed. Both are displaying the file
https://app-site-association.cdn-apple.com/a/v1/api.mycompany.net
https://api.mycompany.net/.well-known/apple-app-site-association
But I cannot call API https://api.mycompany.net/call/v2/main/report. It always fails with the following error
Can anyone tell me what I'm missing? I tried for a week and was exhausted .
Post not yet marked as solved
Hi,
Sharing the requirement and issues that we are facing with ANCS.
Requirement - On the hardware (Support BLE) along with GATT protocol, ANCS and AMC is implemented. On the display - Caller name, Duration, Status should come.
Usecase - On an incoming call hardware is getting the username/contact number and same is showing on the display, But after the call accept- no data access ANCS is providing; also once call is accepted, hardware is not able to get the call duration, caller name/number and disconnect the call.
What can be the solution here to get these information? Is there any other protocol or BLE support is needed to upgrade or any apple profile that does provide these information and control?
Thanks
Post not yet marked as solved
Hi,
I have some scenario in which I need to reportIncoming to CallKit with same UUID 2 times. So I just need to know that, it will cause an issue of CallKit or with application.
Post not yet marked as solved
Hi,
Since iOS 16, when we present a keyboard in the sms/call reporting extension, the app will crash with error:
failure in NSXPCConnectionWithEndpoint:configurator: of BSServiceConnection:0x1efcd9a78 (BSServiceConnection+NSXPCConnection.m:20) : Invalid condition not satisfying: endpoint
In ideas?
Furthermore, when reporting mms message with image, the sender phone is empty. And we are unable to determine what the number is that needs reporting.
Post not yet marked as solved
This issue did not occur until we mandated our workforce update to 17.2 to be compliant. Once users who had large contact lists updated, they started to experience delayed / freezing calls.
We utilize Microsoft Intune as our MDM, but I have to assume this is hitting other MDM's as well since this is a policy that the management profile portion of the software either has toggled on or off. The policy triggering this issue, if enabled is "Block viewing corporate documents in unmanaged apps".
I've linked a dummy google account with an imported contact list of 16k contacts (yes somehow we have a handful of folks who have this) and the issue replicates with this policy enabled.
With a mirrored configuration profile, minus this setting enabled, calls flow as they should. Even with the large contact list.
I have no clue if this is right place for this, but the issue still persists after updating my device to 17.3
Post not yet marked as solved
When there is an ongoing call, if the user gets another one, we don't want to support multi-call and directly send the new call to the voicemail. For this operation what should be CXCallEndedReason?
My understanding is that remoteEnded is used when the call connected and then ended. unanswered might be the choice for me but would it cause any issue if i directly reject a call with this status (the difference between the incoming call and reject time would be too short)? There is also declinedElsewhere , which might be suitable
Post not yet marked as solved
I'm new to iOS development, and not currently ready to pay Apple $99/y for the privilege of playing around with some APIs.
I would like to create an SMS/Call filter and reporting extension but got to a point where the "associated domain" entitlement is required.
Is there a way to get the entitlement for local development without enrolling for the Apple Developer Program?
Post not yet marked as solved
Dear Appple Dev Team,
we have developed an app to identify incoming phone calls via CallKit (https://developer.apple.com/documentation/callkit/cxcalldirectoryextensioncontext). This function works great. However, we are missing a similar function for SMS/iMessage sender identification. Is it possible to integrate this function into iOS.
Thanks
Markus
Post not yet marked as solved
Hi,
I have implemented VOIP calling feature in my application using OpenTok SDK and CallKit framework. Calling feature is working most of the time. But there is one strange issue I have come across.
During a call, if any external cellular call appears and if I decline that external call then my running voip call also disconnects. This is happening some of the iPhone devices.
iPhone config is as follows
Model : iPhone 11
iOS Version : 17.3
I have added loggers CXEndCallAction and -provider:performEndCallAction and debugged at my end . I found that CXEndCallAction is not executing from my end but still -provider:performEndCallAction is triggered by iOS along with my ongoing callUUID
This is very strange behaviour I am observing in one of my iPhone device. I have tested this in around 3-4 iPhone devices but i am facing this issue only in 1 iPhone .
Kindly help me here if anyone has solution around it .
Thanks
Post not yet marked as solved
At present, I am developing a multimedia messaging application, but I have found that when sending messages through a mobile phone, Android can receive them, but iPhone cannot. By using Wireshark to capture packets, I can see that I have received a mms packet, but the log shows that the message parsing has failed(Because of unknown fields). Do you have any solutions?