Post

Replies

Boosts

Views

Activity

VoIP app (CallKit) not relaying incoming call notifications to paired Apple Watch
Incoming calls reported via reportNewIncomingCall on a CXProvider are correctly presented on the iPhone via CallKit, but are never relayed to the paired Apple Watch. Native cellular calls relay to the Watch correctly on the same devices. What does a VoIP app's CXProvider need to satisfy for callservicesd to consider it eligible for phone continuity relay to paired Apple Watch?
1
0
28
21h
Both internal testing and external testing in TestFlight
I have two release trains going in TestFlight: The App Store version v1.0(0) with bug fixes v1.0(1), v1.0(2), etc. The next feature version with additional functionalities of the app v1.1(0), v1.1(1), v1.1(2), etc. Is there any way to have v1.0(x) be for internal testing, and have v1.1(x) be for external testing? I really need to start external testing the next release of the app in TestFlight, while also bug fixing the current version of the app in TestFlight. Thanks!
0
0
605
Feb ’24
urlSession(_:task:didCompleteWithError:) does not fire when session configured for background
Hardware: iPhone 12/iOS 15.1.1 I am having problems getting urlSession(_:task:didCompleteWithError:) to fire when session configured for background. I set up my background session and uploadTask as such: let config = URLSessionConfiguration.background(withIdentifier: "my.unique.session.identifier") config.isDiscretionary = false config.sessionSendsLaunchEvents = true config.allowsCellularAccess = true config.httpMaximumConnectionsPerHost = 1 config.timeoutIntervalForRequest = 30 config.timeoutIntervalForResource = 60 let session = URLSession(configuration: config, delegate: yourDelegate, delegateQueue: nil) let task = session.uploadTask(with: request, from: data) task.resume() First, I confirmed that I can upload using the above code. Then to simulate a timeout, I set a breakpoint in Charles Proxy on the response. When triggered, I just wait. urlSession(_:task:didCompleteWithError:) is never called, no matter how long I wait. I can "see" the background session periodically retrying the upload, because I having logging in urlSession(_:task:didSendBodyData:). Every time didSendBodyData is called, it triggers the breapoint in Charles Proxy. And I wait. didCompleteWithError never gets called. One more observation: if I change the session config from 'background' to 'default', didCompleteWithError is triggered. Thanks!
1
0
817
Jan ’24
VoIP app (CallKit) not relaying incoming call notifications to paired Apple Watch
Incoming calls reported via reportNewIncomingCall on a CXProvider are correctly presented on the iPhone via CallKit, but are never relayed to the paired Apple Watch. Native cellular calls relay to the Watch correctly on the same devices. What does a VoIP app's CXProvider need to satisfy for callservicesd to consider it eligible for phone continuity relay to paired Apple Watch?
Replies
1
Boosts
0
Views
28
Activity
21h
Both internal testing and external testing in TestFlight
I have two release trains going in TestFlight: The App Store version v1.0(0) with bug fixes v1.0(1), v1.0(2), etc. The next feature version with additional functionalities of the app v1.1(0), v1.1(1), v1.1(2), etc. Is there any way to have v1.0(x) be for internal testing, and have v1.1(x) be for external testing? I really need to start external testing the next release of the app in TestFlight, while also bug fixing the current version of the app in TestFlight. Thanks!
Replies
0
Boosts
0
Views
605
Activity
Feb ’24
urlSession(_:task:didCompleteWithError:) does not fire when session configured for background
Hardware: iPhone 12/iOS 15.1.1 I am having problems getting urlSession(_:task:didCompleteWithError:) to fire when session configured for background. I set up my background session and uploadTask as such: let config = URLSessionConfiguration.background(withIdentifier: "my.unique.session.identifier") config.isDiscretionary = false config.sessionSendsLaunchEvents = true config.allowsCellularAccess = true config.httpMaximumConnectionsPerHost = 1 config.timeoutIntervalForRequest = 30 config.timeoutIntervalForResource = 60 let session = URLSession(configuration: config, delegate: yourDelegate, delegateQueue: nil) let task = session.uploadTask(with: request, from: data) task.resume() First, I confirmed that I can upload using the above code. Then to simulate a timeout, I set a breakpoint in Charles Proxy on the response. When triggered, I just wait. urlSession(_:task:didCompleteWithError:) is never called, no matter how long I wait. I can "see" the background session periodically retrying the upload, because I having logging in urlSession(_:task:didSendBodyData:). Every time didSendBodyData is called, it triggers the breapoint in Charles Proxy. And I wait. didCompleteWithError never gets called. One more observation: if I change the session config from 'background' to 'default', didCompleteWithError is triggered. Thanks!
Replies
1
Boosts
0
Views
817
Activity
Jan ’24