Delve into the world of built-in app and system services available to developers. Discuss leveraging these services to enhance your app's functionality and user experience.

Posts under General subtopic

Post

Replies

Boosts

Views

Activity

It's not possible to access system PTT UI when app is backgrounded and "Always" location access is activated for app
Hello. Our app uses PTT framework and "Always" location tracking at the same time. By some reason, after backgrounding app, Dynamic Island shows only location tracking icon instead if PTT icon. And when user taps on it - application foregrounding instead of system PTT UI show. Only after first incoming PTT user can access system PTT UI. Is it a bug or intended behaviour?
1
0
430
Jan ’25
Phone app and CallDirectory
Prior to iOS18, the incoming/outgoing call history display in the Phone app matched the CallDirectory content, but starting with iOS18, changing the information tied to the same number results in the incoming/outgoing call history not matching the CallDirectory content, as it remains unchanged before the change. Is this a strongly intended change? If not, we would like to have it reverted back to the way it worked before iOS18. Befor iOS18 Register the target phone number and name1 to CallRirectory Incoming call using the target phone number The target phone number and name1 is recorded as an incoming call history Register the target phone number and name2 to CallRirectory Incoming call using the target phone number again The target phone number and name2 is recorded as an incoming call history Also 1st incoming call history’s name is changed to name2 After iOS18 Register the target phone number and name1 to CallRirectory Incoming call using the target phone number The target phone number and name1 is recorded as an incoming call history Register the target phone number and name2 to CallRirectory Incoming call using the target phone number again The target phone number and name2 is recorded as an incoming call history But 1st incoming call history’s name is still name1 Why does this difference occur?
2
0
409
Jan ’25
Live Caller ID Extension - Any way to limit use based on subscription status?
Is there any way to limit use of the iOS 18 Live Caller ID extension to subscribed users? My team has been trying to figure out a workable approach to only allow full call blocking / identification via this feature for users with an active subscription and so far we have not found a workable approach. One solution we’ve looked into is invalidating access tokens on the backend and only calling refreshPIRParameters(forExtensionWithIdentifier:) for users with a current valid subscription but it seems that this won’t work since the device will attempt to refresh on its own eventually. We’ve also looked into swapping out the userTierToken in the extension based on subscription status but this also does not seem to be possible. Is limiting/modifying this feature's functionality based on subscription status just not possible, likely by design due to the privacy-focused nature of it, or is there some other approach we’re overlooking?
1
1
380
Jan ’25
Failed Message when running the default app.
Hi, My env. is .. Xcode: Version 16.2 (16C5032a) macOS Sequoia: Version 15.1 And I have 2 problems. Please give me the advice.. Failed Message. When I run the automatically generated app as it is, the following error(warning?) message appears in the terminal. Can't find or decode reasons Failed to get or decode unavailable reasons NSBundle file:///System/Library/PrivateFrameworks/MetalTools.framework/ principal class is nil because all fallbacks have failed Not on the simulator And the result is not running in the simulator, but instead appears as a window. (The simulator works fine when launched separately, but the app from the current project doesn’t show up in it.)
1
0
356
Jan ’25
weatherkit: failed to generate jwt token
Hey, I'm trying to update my old app that used DarkSky to WeatherKit, and struggling. I always get: ailed to generate jwt token for: com.apple.weatherkit.authservice with error: Error Domain=WeatherDaemon.WDSJWTAuthenticatorServiceListener.Errors Code=2 "(null)" This is regardless if I do it on my iPad, or in the simulator. I have done the following: Selected WeatherKit on the Capabilities and App Services tabs of the Identifier section on developer. Put it under signing and capabilities in XCode I've tried making a new provisioning profile, cleaning build folder, etc. Not sure what to do here. I suspect part of this problem is that I developed this app in 2018 and now I'm trying to update it. I am able to run the app on TestFlight, but not as an internal tester. Apple won't let me, so I have to add myself as an external tester. Thanks for any help you can provide!
9
0
895
Jan ’25
Text To Speech does not work on Iphone 12 simulator
I'm writing an app that uses text to speech. On the physical Iphone 12 it works but on the simulator I don't get any speech from my app. I tried the following to enable. Settings -> Accessebility -> "Spoken Content" -> "Speak Selecton" to ON (green) in Voices I added the German Anna that I use on my Iphone with the downloaded enhancements. The speech test works in this menu but not in my app. What am I missing ? Cheers, Gerhard
2
0
1k
Jan ’25
Displaying a toast message and a loader(activity indicator) in CarPlay
Hello, Could you please help me with the below, How to display a toast message to the user in CarPlay after a successful operation? How to show a spinner or an activity indicator just before performing some operation? I have referred to the CarPlay pdf design guidelines in which I couldn't find support for the above two. But I could see a loader within a button in one of the default apps in CarPlay simulator. Kindly help me with these queries
1
0
449
Jan ’25
Can the current implementation of lock screen widgets match what behaviors of the deprecated Today Extensions?
In the past it was possible to use the Today Extensions to do some background processing without having the unlock the phone. This was extremely useful for application, but now with the current WidgetKit we face the problem of sometimes having to enter the lock screen code if face Id fails, or is not available. With the Today Extension, we were able to initiate a location request and send an HTTP request. Is there any way to get a similar request chain across on the latest OS? Maybe there is something out of the box that we are not thinking of. Our application is highly time sensitive and in the field the lock screen delay can be a big problem and put a users safety at risk, so this is why I ask.
1
0
320
Jan ’25
WeatherKit forecast API throws 400 Bad Request intermittently
I have been using the hourly weather forecast API, for some reason sometimes the API fails with 400 Bad Request, but on retrying just a minute later the call successfully returns data. The start and end time are 2 days apart so I don't think it's an issue with the time frame. The failed calls also don't return any reason so not sure what is the exact failure. Has anyone encountered this issue or knows why this might be happening?? Thanks!!
0
0
337
Jan ’25
How to uninstall/delete Voice Control on macOS?
How to uninstall/delete Voice Control on macOS so that I can test my app for the case when the initial use of Voice Control causes it to be downloaded from Apple? Is there a folder in the macOS System or Library to delete to force a re-download of Voice Control? My macOS app uses the older NSSpeechRecognizer to handle speech commands, but to use NSSpeechRecognizer required authorization via [SFSpeechRecognizer requestAuthorization...]. I do this and on a macOS system it can trigger a download of Voice Control, the macOS feature. An alert appears with: "A 390 MB download is required to use speech recognition features in MyApp. You may need to quit and open MyApp again after download completes."
0
0
356
Jan ’25
AppClip URLSession network request problem
Hi, I have pretty trivial problem. So, I am trying to use URLSession network request but I am getting errors. This code is in the shared file that works when I run it as app, but when I run it as AppClip it is not working. Running on the simulator is working even as AppClip. Here is the code (pretty trivial):     let session = URLSession.shared     let url = URL(string: "https://learnappmaking.com/ex/users.json")!     let task = session.dataTask(with: url, completionHandler: { _, response, error in       print(error)       print(response)     })     task.resume() I am getting this error: 2020-11-20 19:35:05.189273+0100 ExampleAppClip[14703:4633304] [Client] Updating selectors after delegate removal failed with: Error Domain=NSCocoaErrorDomain Code=4099 "The connection to service on pid 92 named com.apple.commcenter.coretelephony.xpc was invalidated from this process." UserInfo={NSDebugDescription=The connection to service on pid 92 named com.apple.commcenter.coretelephony.xpc was invalidated from this process.} 2020-11-20 19:35:05.363730+0100 ExampleAppClip[14703:4633299] [connection] nw_socket_connect [C1.1:3] connectx(8 (guarded), [srcif=0, srcaddr=<NULL>, dstaddr=104.27.132.57:443], SAE_ASSOCID_ANY, 0, NULL, 0, NULL, SAE_CONNID_ANY) failed: [65: No route to host] 2020-11-20 19:35:05.364100+0100 ExampleAppClip[14703:4633299] [connection] nw_socket_connect [C1.1:3] connectx failed (fd 8) [65: No route to host] 2020-11-20 19:35:05.364195+0100 ExampleAppClip[14703:4633299] [] nw_socket_connect connectx failed [65: No route to host] 2020-11-20 19:35:05.368229+0100 ExampleAppClip[14703:4633299] [connection] nw_socket_connect [C1.2:3] connectx(8 (guarded), [srcif=0, srcaddr=<NULL>, dstaddr=104.27.133.57:443], SAE_ASSOCID_ANY, 0, NULL, 0, NULL, SAE_CONNID_ANY) failed: [65: No route to host] 2020-11-20 19:35:05.368424+0100 ExampleAppClip[14703:4633299] [connection] nw_socket_connect [C1.2:3] connectx failed (fd 8) [65: No route to host] 2020-11-20 19:35:05.368484+0100 ExampleAppClip[14703:4633299] [] nw_socket_connect connectx failed [65: No route to host] 2020-11-20 19:35:05.370781+0100 ExampleAppClip[14703:4633299] [connection] nw_socket_connect [C1.3:3] connectx(8 (guarded), [srcif=0, srcaddr=<NULL>, dstaddr=172.67.210.249:443], SAE_ASSOCID_ANY, 0, NULL, 0, NULL, SAE_CONNID_ANY) failed: [65: No route to host] 2020-11-20 19:35:05.370989+0100 ExampleAppClip[14703:4633299] [connection] nw_socket_connect [C1.3:3] connectx failed (fd 8) [65: No route to host] 2020-11-20 19:35:05.371054+0100 ExampleAppClip[14703:4633299] [] nw_socket_connect connectx failed [65: No route to host] 2020-11-20 19:35:05.372142+0100 ExampleAppClip[14703:4633299] Connection 1: received failure notification 2020-11-20 19:35:05.372241+0100 ExampleAppClip[14703:4633299] Connection 1: failed to connect 1:65, reason -1 2020-11-20 19:35:05.372291+0100 ExampleAppClip[14703:4633299] Connection 1: encountered error(1:65) 2020-11-20 19:35:05.374764+0100 ExampleAppClip[14703:4633300] Task <3C72DFED-F839-4BD2-9FE2-CC0B8BB7090F>.<1> HTTP load failed, 0/0 bytes (error code: -1004 [1:65]) 2020-11-20 19:35:05.383016+0100 ExampleAppClip[14703:4633299] Task <3C72DFED-F839-4BD2-9FE2-CC0B8BB7090F>.<1> finished with error [-1004] Error Domain=NSURLErrorDomain Code=-1004 "Could not connect to the server." UserInfo={_kCFStreamErrorCodeKey=65, NSUnderlyingError=0x282ecc5a0 {Error Domain=kCFErrorDomainCFNetwork Code=-1004 "(null)" UserInfo={_kCFStreamErrorCodeKey=65, _kCFStreamErrorDomainKey=1}}, _NSURLErrorFailingURLSessionTaskErrorKey=LocalDataTask <3C72DFED-F839-4BD2-9FE2-CC0B8BB7090F>.<1>, _NSURLErrorRelatedURLSessionTaskErrorKey=( 		"LocalDataTask <3C72DFED-F839-4BD2-9FE2-CC0B8BB7090F>.<1>" ), NSLocalizedDescription=Could not connect to the server., NSErrorFailingURLStringKey=https://learnappmaking.com/ex/users.json, NSErrorFailingURLKey=https://learnappmaking.com/ex/users.json, _kCFStreamErrorDomainKey=1} Optional(Error Domain=NSURLErrorDomain Code=-1004 "Could not connect to the server." UserInfo={_kCFStreamErrorCodeKey=65, NSUnderlyingError=0x282ecc5a0 {Error Domain=kCFErrorDomainCFNetwork Code=-1004 "(null)" UserInfo={_kCFStreamErrorCodeKey=65, _kCFStreamErrorDomainKey=1}}, _NSURLErrorFailingURLSessionTaskErrorKey=LocalDataTask <3C72DFED-F839-4BD2-9FE2-CC0B8BB7090F>.<1>, _NSURLErrorRelatedURLSessionTaskErrorKey=( 		"LocalDataTask <3C72DFED-F839-4BD2-9FE2-CC0B8BB7090F>.<1>" ), NSLocalizedDescription=Could not connect to the server., NSErrorFailingURLStringKey=https://learnappmaking.com/ex/users.json, NSErrorFailingURLKey=https://learnappmaking.com/ex/users.json, _kCFStreamErrorDomainKey=1}) nil
6
0
2.2k
Jan ’25
ILMessageFilterSubAction symbol not found error on iOS 17.6
If I run an app with a Message Filter Extension on iOS 18 then it works as expected, however if its installed onto a phone with iOS 17.6.1 then there is the following error: dyld[1042]: Symbol not found: _$sSo40ILMessageFilterCapabilitiesQueryResponseC14IdentityLookupE21promotionalSubActionsSaySo0abI6ActionVGvs Referenced from: <C82A1045-98F4-3751-8080-413FD0B0DEEB> /private/var/containers/Bundle/Application/F295C156-9B20-4927-AEFA-C6983388B193/Myapp.app/PlugIns/MyMessageFilterExtension.appex/CequintTextFilterExtension.debug.dylib Expected in: <29BFFA34-9B52-3D14-A254-A0653545B72E> /System/Library/Frameworks/IdentityLookup.framework/IdentityLookup (App built using XCode 16.2). Here's code causing the issue: import IdentityLookup final class MessageFilterExtension: ILMessageFilterExtension {} extension MessageFilterExtension: ILMessageFilterQueryHandling, ILMessageFilterCapabilitiesQueryHandling { func handle(_ capabilitiesQueryRequest: ILMessageFilterCapabilitiesQueryRequest, context: ILMessageFilterExtensionContext, completion: @escaping (ILMessageFilterCapabilitiesQueryResponse) -> Void) { let response = ILMessageFilterCapabilitiesQueryResponse() response.transactionalSubActions = [.transactionalCarrier, .transactionalHealth, .transactionalPublicServices, .transactionalFinance, .transactionalWeather, .transactionalRewards, .transactionalOrders, .transactionalOthers, .transactionalReminders] response.promotionalSubActions = [.promotionalOffers, .promotionalOthers, .promotionalCoupons] completion(response) } Message filter sub actions were introduced in iOS 16, so why is this error occurring when the code is run on iOS 17, but its fine with iOS 18? This isn't specific to my app, its easily reproducable in two minutes - create an app, add a message filter extension target, change the template code to add a transactional or promotional sub action and then run and it'll occur. (Reported as issue FB16148083)
4
0
381
Jan ’25
Message Filter Extension: OS behavior with multiple server domains
I have a question regarding specifying URLs for a Message Filter App Extension. https://developer.apple.com/documentation/identitylookup/creating-a-message-filter-app-extension The documentation states “If you have servers that can help your app extension determine how to handle a message, you must add the Associated Domains capability to your Xcode project and specify those domains.” The term servers and domains is specified in the plural, and adding two occurrences of ILMessageFilterExtensionNetworkURL to the info.plist doesn’t cause a build error. So the first question is: 1.What is the behaviour of the OS when two instances of ILMessageFilterExtensionNetworkURL but specifying different urls is defined? Does the OS, for example always try one url first, and if that doesn’t respond after N seconds, it attempts the second one? Can the Message Filter Extension indicate which of multiple defined ILMessageFilterExtensionNetworkURL should be used at run time? 3.How does the OS behave if a URL specified for ILMessageFilterExtensionNetworkURL resolves to two VIPs? Will the OS retry if the first VIP is not accessible (similar to any typical browser or web application behavior). Thank you
3
0
423
Jan ’25
App Clip Card - This app clip is not currently available in your country or region
I am testing App Clip on Testflight to show App Clip Card but it only shows a white Card with the message: “This app clip is not currently available in your country or region” (if using Local Expreriences, it shows normally) I have fully installed apple-app-site-association, App Clip Experience, Domain URL Status also validated ... don't understand why, is the app "Redy For Sale" new to show the Card?. I want to let customers test show App Clip Card without using Local Expreriences on Testflight If anyone knows, please help, thank you.
3
1
3.5k
Jan ’25
Weatherkit API times out at 7am EST
I've noticed that very consistently the Weatherkit API times out when I make a large(-ish) number of calls at 7am east coast time. If I make x calls between 7:00:00 and 7:01:00 about half of them time out (as do retries.) If I make 2x the calls between 7:15:00 and 7:16:00 there are close to zero time outs. I've looked at the logs, at the calls per second, etc., and there is no difference between 7 and 7:15. So, I'm not hitting a rate limit. It seems like Weatherkit itself just can't handle the traffic at peak times. Is there any other explanation? Does Apple intend to make sure the API can handle all the traffic they are getting paid to handle?
1
0
320
Jan ’25
DeviceActivityReport fails to display SceneView
I am trying to return a SceneView from a DeviceActivityReport. I have my DeviceActivityReportExtension correctly set up and I am able to display a view with text or other UI elements in it, but attempting to return a SceneView as part of the body just won't display. I have this example. When I display this SceneView in my main app, it displays correctly. When I put the same code inside the DeviceActivityReportExtension, the scene does not show up and an error failed to create a gl context appears repeatedly in the console. I'm pretty stumped and would appreciate any suggestions. import SwiftUI import SceneKit struct TestScene: View { var scene: SCNScene? { SCNScene(named: "art.scnassets/environment.scn") } var cameraNode: SCNNode? { let cameraNode = SCNNode() cameraNode.camera = SCNCamera() cameraNode.position = SCNVector3(x: 0, y: 0, z: 2) return cameraNode } var body: some View { SceneView( scene: scene, pointOfView: cameraNode, options: [ .allowsCameraControl, .autoenablesDefaultLighting, .temporalAntialiasingEnabled ] ) } }
2
0
476
Jan ’25
Issues with ApplicationTokens After Transferring an App Using FamilyControls Framework
I am encountering an issue after transferring an app that uses the FamilyControls framework to a different app account. After releasing a new version of the app post-transfer, the following problems arose: ApplicationTokens obtained in the pre-transfer version no longer function when used with ManagedSettingsGroup.ShieldSettings in the post-transfer version. Using the same ApplicationTokens with Label(_ applicationToken: ApplicationToken) does not display the app name or icon. These issues did not occur in the pre-transfer version and everything worked as expected. We suspect that ApplicationTokens obtained prior to the transfer are no longer valid in the updated app released under the new app account. We are seeking guidance on the following: Is this expected behavior after transferring an app to another app account? What steps should we take to ensure that ApplicationTokens obtained before the transfer remain functional in the post-transfer environment? If these tokens are invalidated due to the transfer, what are the recommended procedures for regenerating or updating ApplicationTokens for existing app users? Maintaining a seamless user experience after transferring the app is critical. We would greatly appreciate any insights or guidance. Please let us know if additional information or logs would assist in investigating this issue. Thank you!
2
1
510
Jan ’25