The functionality of authorizationStatus and requestAuthorization is completely broken. I'm using Xcode 15.3 and iOS 17.4.
Does anyone have a solution?
authorizationStatus doesn't behave as promised
Revoking authorization in the system-wide settings does not change the authorizationStatus while the app is not closed. Calls to center.authorizationStatus will still return .approved instead of .denied.
Even closing and relaunching the app after revoking authorization does not work: authorizationStatus is then .notDetermined when it should be .denied.
Tapping "Don't Allow" in the alert shown after an initial call to requestAuthorization leaves the authorizationStatus unchanged, i.e. at .notDetermined. This is contrary to the promised outcome .denied (defined as: "The user, parent, or guardian denied the request for authorization") and contrary to the definition of .notDetermined (defined as: "The app hasn’t requested authorization", when it just did).
Same issue when first tapping "Continue" followed by "Don't Allow" on the next screen.
As a consequence of authorizationStatus being broken, its publisher $authorizationStatus is worthless too.
requestAuthorization doesn't behave as promised
This is most likely a consequence of the corrupted authorizationStatus: when revoking authorization in the system-wide settings, a call to requestAuthorization opens the authorization dialogue instead of doing nothing. It is thus possible to repeatedly ask a user to authorize Family Controls.
Code sample
To reproduce, create a new SwiftUI app, add the "Family Controls" capability and a button executing the following task when tapped:
let center = AuthorizationCenter.shared
var status = center.authorizationStatus
print(status)
do {
try await center.requestAuthorization(for: .individual)
print("approved")
} catch {
print("denied")
}
status = center.authorizationStatus
print(status)
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.
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
I’m hitting a WeatherKit JWT failure (WDSJWTAuthenticatorServiceListener Code = 2) at runtime even though the entitlement is present in both the signed binary and the embedded provisioning profile.
Environment
Team ID
5SZLQLQ9MD
Bundle ID
ParkProfessor.ParkProfessorDisneyland
Device / OS
iPhone 15 Pro · iOS 17.4.1 (hardware, not simulator)
Xcode
15.3 (15E204a)
Console output
Failed to generate jwt token for: com.apple.weatherkit.authservice
Error Domain=WeatherDaemon.WDSJWTAuthenticatorServiceListener.Errors Code=2 "(null)"
Entitlement & profile snippets
codesign -d --entitlements :- WeatherKitTest.app | grep -A2 weatherkit
com.apple.developer.weatherkit
security cms -D -i embedded.mobileprovision | grep -A2 weatherkit
com.apple.developer.weatherkit
What I’ve already tried
Regenerated a new development certificate and a new iOS App Development provisioning profile with WeatherKit enabled.
Confirmed the capability is selected in Certificates ▸ Identifiers ▸ Profiles and added in Xcode target settings.
WeatherKit Terms of Service accepted in the portal.
Deleted the app, removed any device management profiles, rebooted the phone, clean-built & ran again.
Reproduced the issue in a minimal SwiftUI app that calls: WeatherService.shared.weather(for: CLLocation(latitude: 33.8121, longitude: -117.9190), including: .current) – same Code 2 error.
Request
It looks like the App ID may need a backend entitlement sync. Could someone from the WeatherKit team please check the status for Team 5SZLQLQ9MD, Bundle ID ParkProfessor.ParkProfessorDisneyland and enable WeatherKit token generation?
Thanks!
While developing our driver, we've noticed that the *.ips report that contains the stacktrace of the crash is not always generated. I'm wondering why this report may not get generated, or if there's anything specific to do to guarantee it gets generated.
The error below started today 10/17/2024 (on iOS 18.1 beta 5/6/7 at least) in StoreKit sandbox testing. Outside code/app, I can't even login to the test account in settings->AppStore->Sandbox Account (goes through email/phone confirmation and then silently fails).
Tried a different password for a new sandbox test account with no success...Anyone experiencing this?
P.S. Status page (https://developer.apple.com/system-status/) shows some related outage from two days ago, but no current problem.
Error: Purchase did not return a transaction: Error Domain=ASDErrorDomain Code=530 "(null)" UserInfo={NSUnderlyingError=0x3009ca040 {Error Domain=AMSErrorDomain Code=100 "Authentication Failed The authentication failed." UserInfo={NSMultipleUnderlyingErrorsKey=( "Error Domain=AMSErrorDomain Code=2 "Password reuse not available for account The account state does not support password reuse." UserInfo={NSDebugDescription=Password reuse not available for account The account state does not support password reuse., AMSDescription=Password reuse not available for account, AMSFailureReason=The account state does not support password reuse.}", "Error Domain=AMSErrorDomain Code=306 "Reached max retry count Task reached max retry count (3 / 3);" UserInfo={AMSDescription=Reached max retry count, AMSURL=..., NSDebugDescription=Reached max retry count Task reached max retry count (3 / 3);, AMSFailureReason=Task reached max retry count (3 / 3);, AMSStatusCode=200}" ), AMSDescription=Authentication Failed, NSDebugDescription=Authentication Failed The authentication failed., AMSFailureReason=The authentication failed.}}, storefront-country-code=USA, client-environment-type=Sandbox}
Our app includes showing external web service with WebView or Safari and returning to the app with custom URL scheme or universal link.
When we set "Hide and Require Face ID" feature which was available on iOS 18, neither custom URL scheme nor universal link activated the app.
If we only set "Require Face ID", the deep link worked properly.
Here is what we've tried:
Define custom URL scheme or universal link in the app
https://developer.apple.com/documentation/xcode/defining-a-custom-url-scheme-for-your-app
https://developer.apple.com/documentation/xcode/supporting-universal-links-in-your-app
Implement external web service with one of the following frameworks
ASWebAuthenticationSession
https://developer.apple.com/documentation/authenticationservices/aswebauthenticationsession/
SFSafariViewController
https://developer.apple.com/documentation/safariservices/sfsafariviewcontroller
Safari
WKWebView
https://developer.apple.com/documentation/webkit/wkwebview
On iOS 18 device, install the app and set "Hide and Require Face ID"
Access external web page and tap the link which activates custom URL scheme or universal link
We expected the deep link to work, but the results were:
Custom URL scheme & ASWebAuthenticationSession/SFSafariViewController/Safari
The system shows "Cannot open the page because the address is invalid"
Custom URL scheme & WKWebView
Nothing happens when tapping the link
Universal link
Directed to the server with associated domain file, but the system doesn't call the app which is defined in the associated domain file
We tested the feature with the app built with Xcode16 beta 6, and the device with iOS 18 Seed 8(22A5350a).
Does hide app feature support custom URL scheme and universal link?
Please help! I have a subscription IAP failing on tvOS 18.2 at:
func makePurchase(_ product: Product) async throws
{
let result = try await product.purchase() //ERROR OCCURS HERE (See error message below)
...
Xcode Console message: "Could not get confirmation scene ID for [insert my IAP id here]"
The IAP subscription was working fine on 18.1 and earlier, and the same IAP and code is also running fine on iOS 18.2. The tvOS error on 18.2 happens both in production and sandbox.
Are there any changes to StoreKit 2 which might cause this error?
Hello,
I'm trying to create a widget using the WidgetKit framework. In this part, I'm using Intents along with a DynamicOptionsProvider. As shown in the Medium article below, I want to present multiple options when "Edit Widget" is tapped:
https://levelup.gitconnected.com/swiftui-configurable-widget-to-let-our-user-choose-4a54e398f42f
However, in this example, the options are provided statically. What I want to achieve is to display a list of devices based on the selected HomeId after the user selects a Home. I’ve set up the interface accordingly, but when I select a Home, the device list does not update.
How can I make this work? The two options should be dependent on each other.
Hello there, I have a problem reaching the CloudKit dashboard. Every time I login, the login successes but then I get the error: An error has caused this web page to stop working correctly. This also happens when I click on the Button CloudKit dashboard. Then I can reload the page, but the same errors occurs again and again. Can someone help me with this problem?
Thank you very much
My app features two kinds of widgets, let's call them kind A and kind B.
I have both A and B widgets on my Home Screen. When I tap the button on widget A (associated with App Intent), I expect widget B to also reload.
However, if you call WidgetCenter.shared.reloadAllTimelines() inside the perform() method of the AppIntent, the timeline of widget B does not reload immediately. This issue only occurs on a physical device and is not consistently reproducible. On a simulator, however, widget B reloads as expected.
FB13152293
Hello forum,
Hope all is great!
I have a shortcut automation which uses the transaction trigger. Since updating to ios 18 the transaction trigger does not work anymore.
Whenever a transaction is done, the “Running your automation” notification does not show up and the automation does not work.
To share with you the steps I’ve done so far:
1.Remove the automation and do it again
2.Remove the card from apple pay
3. Delete and install again the shortcut app
4. Turned on and off the phone
I can confirm the automation works on my other iPhone with the latest version of IOS 17.
Would really appreciate if anyone has any insights about that, or if this happened to you as well.
Cheers!
Dorin
Since iOS 18.4 and macOS 15.4 updating the calendar of an (ek)event (to another accounts calendar) or detaching an repeating event throws an error while saving:
"Access denied"
EKEventStore.save(event, span: .thisEvent, commit: true)
catch {
"Access denied"
}
Hi! I've noticed that the IP_RECVIF socket option, i.e.:
int y = 1;
setsockopt(fd, IPPROTO_IP, IP_RECVIF, &y, sizeof(y));
does not seem to work if the socket is proxied by a NETransparentProxyProvider type network extension: there's no ancillary data in messages received with recvmsg. As soon as I disable the network extension, recvmsg starts returning ancillary data containing the interface name.
This seems to break some applications which rely on IP_RECVIF in the presence of a transparent proxy, making it, in fact, not transparent. One such example is Apple's own libresolv, which relies on IP_RECVIF and breaks if there's no ancillary data in the recvmsg result.
I don't think that this is the intended behaviour, since IPV6_PKTINFO seems to work fine. I've filed a bug report (FB17586550) about this, however, I would greatly appreciate if someone could point me in the direction of a workaround.
Hi,
On iOS 26 beta, calls can no longer be reported by swiping left on a call.
This is unfortunately a breaking change.
I have submitted a report on this on June with Feedback Assistant: FB17893517
I hope it will get some more exposure by posting here.
Hello,
The purpose of "Screen Time Passcode" under Settings/Screen Time is to protect Screen Time preferences and it is asked every time the user updates Downtime, App Limits, Content & Privacy Restrictions and so on.
But the private passcode is not requested if the user disables Screen Time for a particular app (only Face ID or phone passcode is requested, but not the private Screen Time passcode).
I think this is a mistake, I think the purpose of a private Screen Time passcode is to protect all settings, including apps that use this API, right?
Is there any solution to this?
Thank you.
Hello,
I’m reaching out to gather information regarding the upcoming changes to APNs certificates that are set to be implemented in the beta at the end of January 2025.
Specifically, I would like to understand the following:
What will be the practical impact of these changes on apes apis ?
What actually needed to be done at trust store for this changes, and how will it affect our current setup?
What steps do we need to take to update the certificates on our servers?
it’s crucial for us to address these changes in advance and keep our customers informed.
Thank you for your help!
The most recent KDK for MacOS Sequoia that appears in the Downloads is for MacOS 15.5 (24F74), but the current version of MacOS Sequoia is 15.6 (24G84) and 15.7 (24G207) is in RC. Is there an ETA for the KDKs for 15.6 (24G84) and 15.7 (24G207) to be made available to download? Many thanks for any help.
Hi!
Sms reporting is no longer available in iOS beta 26 builds. I can set my app as the SMS/Call Reporting Extensions but the report button is missing for sms messages in the messages app. Xcode 26 beta 7 build the app without errors. This is a breaking change.
Same extension was previously broken for calls but has been fixed in beta 7 build, as reported here. It is however still missing for sms messages in the messages app (beta 9 build).
Hello,
I received this message below. I reached out to support but they said they can not help with something this specific. Any organization in the same boat? Which of the certificates in the provided link should I use?
Hello,
We’re reaching out with a final reminder that the Certification Authority (CA) for Apple Push Notification service (APNs) is changing. APNs updated the server certificates in sandbox on January 21, 2025. APNs production server certificates will be updated on February 24, 2025. To continue using APNs without interruption, you’ll need to update your application’s Trust Store to include the new server certificate: SHA-2 Root: USERTrust RSA Certification Authority certificate.
To ensure a smooth transition and avoid push notification delivery failures, please make sure that both old and new server certificates are included in the Trust Store before the cut-off date for each of your application servers that connect to sandbox and production. At this time, you don’t need to update the APNs SSL provider certificates issued to you by Apple.
Hello!
In our App we found out the сrash at QuickLook after users updated their iPhones up to iOS 18.
Crash report:
SIGABRT 0x0000000000000000
Crashed: Thread
0 libsystem_kernel.dylib __abort_with_payload + 8
1 libsystem_kernel.dylib abort_with_payload_wrapper_internal + 104
2 libsystem_kernel.dylib abort_with_payload_wrapper_internal + 0
3 libobjc.A.dylib _objc_fatalv(unsigned long long, unsigned long long, char const*, char*) + 116
4 libobjc.A.dylib _objc_fatalv(unsigned long long, unsigned long long, char const*, char*) + 0
5 libobjc.A.dylib weak_register_no_lock + 396
6 libobjc.A.dylib objc_initWeak + 440
7 UIKitCore -[UIViewController viewDidMoveToWindow:shouldAppearOrDisappear:] + 1412
8 UIKitCore -[_UIRemoteViewController viewDidMoveToWindow:shouldAppearOrDisappear:] + 396
9 UIKitCore -[UIView(Internal) _didMoveFromWindow:toWindow:] + 1180
10 UIKitCore -[_UISizeTrackingView _didMoveFromWindow:toWindow:] + 112
11 UIKitCore -[UIView(Internal) _didMoveFromWindow:toWindow:] + 712
12 UIKitCore __45-[UIView(Hierarchy) _postMovedFromSuperview:]_block_invoke + 128
13 CoreAutoLayout -[NSISEngine withBehaviors:performModifications:] + 84
14 UIKitCore -[UIView _postMovedFromSuperview:] + 512
15 UIKitCore __UIViewWasRemovedFromSuperview + 136
16 UIKitCore -[UIView(Hierarchy) removeFromSuperview] + 248
17 QuickLook -[QLToolbarController setAccessoryView:animated:] + 576
18 QuickLook __55-[QLPreviewController _presentLoadedPreviewCollection:]_block_invoke + 120
19 QuickLookUICore QLRunInMainThread + 60
20 QuickLook -[QLPreviewController _presentLoadedPreviewCollection:] + 116
21 QuickLook __48-[QLPreviewController _presentPreviewCollection]_block_invoke_2 + 68
22 QuickLook (Missing)
23 libswift_Concurrency.dylib swift::runJobInEstablishedExecutorContext(swift::Job*) + 252
After research, we found out that a crash occurs in QuickLook when a user tries to open a file with unknown mimeType - application/octet-stream.
QuickLook convert that files to known type (for an example - application/pdf), but crashes for the first opening the file.
Any help would be greatly appreciated!
I can reproduce the bug that CallKit doesn't active audiosession after the outgoing call put on hold because of an incoming call.
VoIP calling with CallKit
Steps to reproduce:
Download SpeakerBox example app from the link above and start it with XCode
Start a new outgoing call
Call your phone from other phone
Hold and Accept the call
After a few secs finish the call from the other phone
The outgoing call will be still on hold
Click on the call and click Toggle Hold
The call won't be active again because the audiosession is activated.
Logs:
Received provider(_:didDeactivate:)
Received provider(_:didDeactivate:)
Received provider(_:didDeactivate:)
Received provider(_:didDeactivate:)
Received provider(_:didDeactivate:)
Requested transaction successfully
Starting audio
Type: stdio
AURemoteIO.cpp:1162 failed: 561017449 (enable 3, outf< 1 ch, 44100 Hz, Float32> inf< 1 ch, 44100 Hz, Float32>)
Type: Error | Timestamp: 2024-08-15 12:20:29.949437+02:00 | Process: Speakerbox | Library: libEmbeddedSystemAUs.dylib | Subsystem: com.apple.coreaudio | Category: aurioc | TID: 0x19540d
AVAEInternal.h:109 [AVAudioEngineGraph.mm:1344:Initialize: (err = PerformCommand(*outputNode, kAUInitialize, NULL, 0)): error 561017449
Type: Error | Timestamp: 2024-08-15 12:20:29.949619+02:00 | Process: Speakerbox | Library: AVFAudio | Subsystem: com.apple.avfaudio | Category: avae | TID: 0x19540d
Couldn't start Apple Voice Processing IO: Error Domain=com.apple.coreaudio.avfaudio Code=561017449 "(null)" UserInfo={failed call=err = PerformCommand(*outputNode, kAUInitialize, NULL, 0)}
Type: Notice | Timestamp: 2024-08-15 12:20:29.949730+02:00 | Process: Speakerbox | Library: Speakerbox | TID: 0x19540d
Route change:
Type: Notice | Timestamp: 2024-08-15 12:20:30.167498+02:00 | Process: Speakerbox | Library: Speakerbox | TID: 0x19540d
ReasonUnknown
Type: Notice | Timestamp: 2024-08-15 12:20:30.167549+02:00 | Process: Speakerbox | Library: Speakerbox | TID: 0x19540d
Previous route:
Type: Notice | Timestamp: 2024-08-15 12:20:30.167568+02:00 | Process: Speakerbox | Library: Speakerbox | TID: 0x19540d
<AVAudioSessionRouteDescription: 0x302c00bc0,
inputs = (
"<AVAudioSessionPortDescription: 0x302c01330, type = MicrophoneBuiltIn; name = iPhone Mikrofon; UID = Built-In Microphone; selectedDataSource = (null)>"
);
outputs = (
"<AVAudioSessionPortDescription: 0x302c004d0, type = Receiver; name = Vev\U0151; UID = Built-In Receiver; selectedDataSource = (null)>"
)>
Type: Notice | Timestamp: 2024-08-15 12:20:30.167626+02:00 | Process: Speakerbox | Library: Speakerbox | TID: 0x19540d