Post

Replies

Boosts

Views

Activity

After unholding CallKit, the audio does not restore.
In my application, I use CallKit and have supportsHolding = true set. During my phone call, another call comes in (e.g., GSM). I accept the incoming call and put the current call on hold. If I end the active call myself, everything is fine, and CallKit calls the method provider(_ provider: CXProvider, didActivate audioSession: AVAudioSession). However, if the other party ends the call, the second call remains on hold. In the application, the user clicks on unhold, and I notify CallKit that the hold has ended. But in this case, the didActivate method is not called at all. If I try to activate the audio myself after unhold, I receive the error: Domain=NSOSStatusErrorDomain Code=561017449 "Session activation failed" UserInfo={NSLocalizedDescription=Session activation failed} AVAudioSessionErrorInsufficientPriority == NSOSStatusErrorDomain Code: 561017449 What needs to be done for CallKit to activate my audio?
1
1
860
Mar ’24
App Store Connect: Your app .... has one or more issues (ITMS-90738)
From appstore receive email with this issues: ITMS-90738: Invalid purpose string value - The “NSPhotoLibraryUsageDescription” value for the NSPhotoLibraryUsageDescription key isn’t allowed in “.....”. Your app’s code references one or more APIs that access sensitive user data, or the app has one or more entitlements that permit such access. The Info.plist file for the “.....” bundle should contain a NSPhotoLibraryUsageDescription key with a user-facing purpose string explaining clearly and completely why your app needs the data. ITMS-90738: Invalid purpose string value - The “NSCameraUsageDescription” value for the NSCameraUsageDescription key isn’t allowed in “....”. Your app’s code references one or more APIs that access sensitive user data, or the app has one or more entitlements that permit such access. The Info.plist file for the “.....” bundle should contain a NSCameraUsageDescription key with a user-facing purpose string explaining clearly and completely why your app needs the data. In Info.plist file have defined: <key>NSCameraUsageDescription</key> <string>NSCameraUsageDescription</string> <key>NSFaceIDUsageDescription</key> <string>NSFaceIDUsageDescription</string> <key>NSMicrophoneUsageDescription</key> <string>NSMicrophoneUsageDescription</string> <key>NSPhotoLibraryAddUsageDescription</key> <string>NSPhotoLibraryAddUsageDescription</string> <key>NSPhotoLibraryUsageDescription</key> <string>NSPhotoLibraryUsageDescription</string> in InfoPlist.strings have this keys: "NSCameraUsageDescription"="xxxxx app uses camera to take photos or videos which should be sent via secure message."; "NSMicrophoneUsageDescription"="xxxxx app uses microphone to make secure voice communication."; "NSPhotoLibraryUsageDescription"="xxxxx app needs access to Photo library to attach your images or videos."; "NSPhotoLibraryAddUsageDescription" = "xxxxx app needs access to Photo library to save your images or videos."; "NSFaceIDUsageDescription"="Enabling Face ID allows quick and secure access to your xxxx app account."; Is some other setting necessary to solve these issues?
3
0
2.1k
Jun ’23
In RPBroadcastSampleHandler not called `processSampleBuffer`
I want to implement screen recording similar to Teams, WhatsApp... I created an Upload Broadcast Extension. If I start the extension, both audio and video will start to be recorded (without CallKit). Issue: During an ongoing call (CallKit), the extension starts, but does not start recording. Called broadcastStarted(withSetupInfo:) but not called processSampleBuffer(_:, with:). The extension stops after a short while. How do I setup ReplayKit to work together with CallKit? Is it possible that the CallKit audio setting does not allow ReplayKit recording? Is it possible to turn off audio in ReplayKit and request only video?
1
0
1.9k
Jan ’23
Unplug the headphones stop audio play and record
When i make a call within our VOIP application (ipadOS app on MacOS and M1 - MBP 16) all is fine. If i make a call with plugged in headphones - all is fine. If i unplug the headphones during the call - whole audio just stop working. If i hang up the call, make the call again - audio is there with no problems. On iPhone and iPad work correctly. Where can be a problem? HALC_ShellDevice::CreateIOContextDescription: failed to get a description from the server HALC_ProxyIOContext::IOWorkLoop: the server failed to start, Error: 0x6E6F7065 HALC_ProxyIOContext::IOWorkLoop: the server failed to start, Error: 0x6E6F7065 HALC_ProxyIOContext::IOWorkLoop: the server failed to start, Error: 0x6E6F7065 AudioObjectGetPropertyDataSize: no object with given ID 73 AudioObjectHasProperty: no object with given ID 66 AudioObjectHasProperty: no object with given ID 66 AudioObjectHasProperty: no object with given ID 0 [auvp] AUVPAggregate.cpp:4413 Failed to get current tap stream physical format, err=2003332927 AudioObjectGetPropertyDataSize: no object with given ID 66 AudioObjectGetPropertyData: no object with given ID 66 AudioObjectHasProperty: no object with given ID 66 AudioObjectRemovePropertyListener: no object with given ID 66 AudioObjectHasProperty: no object with given ID 73 AudioObjectHasProperty: no object with given ID 66 AudioObjectGetPropertyDataSize: no object with given ID 73 AudioObjectHasProperty: no object with given ID 66 AudioObjectHasProperty: no object with given ID 66 HALC_ProxySystem::GetObjectInfo: got an error from the server, Error: 560947818 (!obj) AudioObjectHasProperty: no object with given ID 73 AudioObjectHasProperty: no object with given ID 66 HALC_ShellObject::HasProperty: there is no proxy object AudioObjectHasProperty: no object with given ID 73 AudioObjectHasProperty: no object with given ID 73 [auvp] AUVPAggregate.cpp:6912 error 2003332927 getting input sample rate AudioObjectHasProperty: no object with given ID 73 [auvp] AUVPAggregate.cpp:6922 error 2003332927 getting input latency AudioObjectHasProperty: no object with given ID 73 [auvp] AUVPAggregate.cpp:6932 error 2003332927 getting input safety offset AudioObjectHasProperty: no object with given ID 66 [auvp] AUVPAggregate.cpp:6944 error 2003332927 getting tap stream input latency AudioObjectHasProperty: no object with given ID 66 [auvp] AUVPAggregate.cpp:6954 error 2003332927 getting tap stream input safety offset AudioObjectHasProperty: no object with given ID 73 [auvp] AUVPAggregate.cpp:6965 error 2003332927 getting output sample rate AudioObjectHasProperty: no object with given ID 66 [auvp] AUVPAggregate.cpp:6975 error 2003332927 getting output latency AudioObjectHasProperty: no object with given ID 66 AudioDeviceDuck: no device with given ID [auvp] AUVPAggregate.cpp:6985 error 2003332927 getting output safety offset AudioObjectHasProperty: no object with given ID 73 AudioObjectHasProperty: no object with given ID 73 AudioObjectHasProperty: no object with given ID 73 AudioObjectHasProperty: no object with given ID 66 AudioObjectsPublishedAndDied: no such owning object AudioObjectsPublishedAndDied: no such owning object AudioObjectHasProperty: no object with given ID 73 AudioObjectHasProperty: no object with given ID 66 AudioObjectHasProperty: no object with given ID 73 [auvp] AUVPAggregate.cpp:6912 error 2003332927 getting input sample rate AudioObjectHasProperty: no object with given ID 73 [auvp] AUVPAggregate.cpp:6922 error 2003332927 getting input latency AudioObjectHasProperty: no object with given ID 73 [auvp] AUVPAggregate.cpp:6932 error 2003332927 getting input safety offset AudioObjectHasProperty: no object with given ID 66 [auvp] AUVPAggregate.cpp:6944 error 2003332927 getting tap stream input latency AudioObjectHasProperty: no object with given ID 66 [auvp] AUVPAggregate.cpp:6954 error 2003332927 getting tap stream input safety offset AudioObjectHasProperty: no object with given ID 73 [auvp] AUVPAggregate.cpp:6965 error 2003332927 getting output sample rate AudioObjectHasProperty: no object with given ID 66 [auvp] AUVPAggregate.cpp:6975 error 2003332927 getting output latency AudioObjectHasProperty: no object with given ID 66 [auvp] AUVPAggregate.cpp:6985 error 2003332927 getting output safety offset AudioObjectHasProperty: no object with given ID 73 AudioObjectHasProperty: no object with given ID 73 AudioObjectPropertiesChanged: no such object [auvp] AUVPAggregate.cpp:2799 AggCompChanged wait failed AudioObjectHasProperty: no object with given ID 73 AudioObjectHasProperty: no object with given ID 73 AudioObjectSetPropertyData: no object with given ID 73 [auvp] AUVPUtilities.cpp:472 SetDeviceMuteState(73) false: (err=560947818) AudioObjectHasProperty: no object with given ID 73 AudioObjectHasProperty: no object with given ID 73 [auvp] AUVPUtilities.cpp:560 SetCFNumberValueForKeyInDescriptionDictionary(73); doesn't support 'cdes' AudioObjectHasProperty: no object with given ID 73 AudioObjectHasProperty: no object with given ID 73 AudioObjectHasProperty: no object with given ID 73 AudioObjectHasProperty: no object with given ID 73 AudioObjectGetPropertyDataSize: no object with given ID 73 AudioObjectHasProperty: no object with given ID 66 AudioObjectHasProperty: no object with given ID 66 AudioObjectHasProperty: no object with given ID 66 [auvp] AUVPUtilities.cpp:560 SetCFNumberValueForKeyInDescriptionDictionary(66); doesn't support 'cdes' AudioObjectHasProperty: no object with given ID 66 AudioObjectHasProperty: no object with given ID 66 [auvp] AUVPAggregate.cpp:3523 VP block error num input channels is unexpected (err=-66784) [vp] vpStrategyManager.mm:358 Error code 2003332927 reported at GetPropertyInfo [vp] vpStrategyManager.mm:358 Error code 2003332927 reported at GetPropertyInfo HALC_ProxySystem::GetObjectInfo: got an error from the server, Error: 560947818 (!obj) HALC_ShellDevice::RebuildStreamLists: there is no device [vp] vpStrategyManager.mm:358 Error code 2003332927 reported at GetPropertyInfo [vp] vpStrategyManager.mm:358 Error code 2003332927 reported at GetPropertyInfo
0
0
1.2k
Apr ’22
MyApp not show in CarPlay
MyApp not show in CarPlay. MyApp.entitlements: <?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>com.apple.developer.carplay-calling</key> <true/> <key>com.apple.developer.carplay-communication</key> <true/> <key>com.apple.developer.siri</key> <true/> </dict> </plist> info plist: <key>UIApplicationSceneManifest</key> <dict> <key>UIApplicationSupportsMultipleScenes</key> <true/> <key>UISceneConfigurations</key> <dict> <key>CPTemplateApplicationSceneSessionRoleApplication</key> <array> <dict> <key>UISceneClassName</key> <string>CPTemplateApplicationScene</string> <key>UISceneConfigurationName</key> <string>TemplateSceneConfiguration</string> <key>UISceneDelegateClassName</key> <string>$(PRODUCT_MODULE_NAME).CarPlaySceneDelegate</string> </dict> </array> <key>UIWindowSceneSessionRoleApplication</key> <array> <dict> <key>UISceneConfigurationName</key> <string>Default Configuration</string> <key>UISceneDelegateClassName</key> &#9;&#9;<string>$(PRODUCT_MODULE_NAME).SceneDelegate</string> <key>UISceneStoryboardFile</key> <string>Main</string> </dict> </array> </dict> </dict> This code is never calls: import CarPlay class CarPlaySceneDelegate: UIResponder, CPTemplateApplicationSceneDelegate {     var interfaceController: CPInterfaceController?     func templateApplicationScene(_ templateApplicationScene: CPTemplateApplicationScene,                                   didConnect interfaceController: CPInterfaceController) {         self.interfaceController = interfaceController         let contact = CPContact(name: "TEST", image: UIImage(systemName: "person")!)         let tamplate = CPContactTemplate(contact: contact)         interfaceController.setRootTemplate(tamplate, animated: false, completion: nil)     }     func templateApplicationScene(_ templateApplicationScene: CPTemplateApplicationScene, didDisconnectInterfaceController interfaceController: CPInterfaceController) {         self.interfaceController = nil     } } I have a valid provisioning profile. Please what am i doing wrong? Well thank you
1
0
997
Oct ’20
CallKit Play/Pause button hold
Hello everyone,In our application we are using callKit for VOIP calls and now we need to handle action when Play/Pause button on wired headdset is pressed.But always when this button is pressed we are getting call ended from the callKit (it is the default system action).Is there any way how to disable this default action, or to bypass it somehow to prevent this unneeded ‚call end‘ from CallKit.Thank you
0
0
1.1k
Jun ’20