Hi there,
I observed situations where a notification won't get delivered to an iPhone that is offline at the moment the notification request is made to the APNs, and gets back online a few hours later.
It does not appear to be a fully repeatable issue, but it does happen much more than sporadically.
I know the storage of notification by APNs is provided as a best-effort service and is not guaranteed, but I do believe there is an issue that maybe is worth looking at.
I controlled for all aspects that could explain the issue:
APNs return a success code on the request
the apns-expiration timestamp is not reached when the device gets back online
apns-priority is set to 10
target device was in charge while offline
no other notification were sent for the device
I provided detailed logs in feedback FB15381079
Also sharing a remark on this piece of the APNs documentation: "When you send multiple notifications to the same device for a bundle ID, APNs selects only one notification to store in a non-deterministic way."
It would be very useful to confirm whether silent push notification may lead APNs storage to dismissed an alert notification in favor of the silent push.
Thank you
Post
Replies
Boosts
Views
Activity
Hi there,
I'm migrating my old Intents to the new App Intents framework.
I have an intent that always returns a dialog, but never returns a value.
Therefore I define the return types for its perform method as follows:
func perform() async throws -> any IntentResult & ProvidesDialog
When running the intent, the app crashes and the debugger indicates
AppIntents/PerformActionExecutorTask.swift:195: Fatal error: perform() returned types not declared in method signature - Did not declare ProvidesDialog but provided one
perform() returned types not declared in method signature - Did not declare ProvidesDialog but provided one
The actual expression for returning a result is written as follows:
return .result(dialog:"hello world")
I tried a few alternative return types definition with no luck.
I'm on XCode 15.0 (15A240d) and running on iOS 17.0 (21A329)
Running out of ideas...
I have a BGAppRefreshTask that is executing an operation.
The operation calls a custom class that performs some tasks and also initiates a 10 seconds timer that is a timeout fallback in this custom class.
When I make use of the custom class in other context than the background task, the timer is properly executing and the timeout logic is effective.
But in the context of the BGAppRefreshTask, that I'm testing through the XCode "_simulateLaunchForTaskWithIdentifier" command, the Timer is without effect - although returning no error when set.
I'm starting the timer with the following line of code:
RunLoop.current.add(self.timeout_timer!, forMode: RunLoop.Mode.common)
The operation is not being interrupted or cancelled, so I believe both the custom class instance (that contains a function the timer will run when expiring) and the reference to the timer are properly retained.
I wonder if there is a specific limitation, or thread issue in the context of a BGAppRefreshTask.
If the system launches my app in the background to execute a background refresh task (consecutively to BGAppRefreshTaskRequest, not a silent notification), will the LaunchOptionsKey dictionary contains a specific value?
I would like to be able to set the ActivityUIDismissalPolicy to 'immediate' when ending a Live Activity through a Push Notification. The current documentation does not describe any option to set the ActivityUIDismissalPolicy with the push notification, which forces the default dismissal policy.
In iOS 15 beta (still occurring with beta 4), navigationBarHidden(true) is no longer working if a navigation view with the .navigationViewStyle(.stack) modifier is displayed after a view that is not a NavigationView.
class SelectorHelper : ObservableObject {
@Published var show_intro : Bool = false
}
struct myApp: View {
@ObservedObject var selector_helper : SelectorHelper
var body: some View {
if selector_helper.show_intro == true {
intro(selector_helper: selector_helper)
}
else {
app_content(selector_helper: selector_helper)
}
}
}
struct intro: View {
@ObservedObject var selector_helper : SelectorHelper
var body: some View {
VStack {
Spacer()
Text("Intro")
Button(action: {
selector_helper.show_intro.toggle()
}){
Text("Show content")
}
Spacer()
}
.background(.yellow)
}
}
struct app_content: View {
@ObservedObject var selector_helper : SelectorHelper
var body: some View {
NavigationView {
VStack{
Spacer()
Text("App Content")
Button(action: {
selector_helper.show_intro.toggle()
}){
Text("Show intro")
}
Spacer()
}
.background(.green)
.navigationBarHidden(true)
}
.navigationViewStyle(.stack)
}
}
Hi everyone,
My dev environment is getting a lot of SSL Error when connecting to the sandbox APNS today. But as Apple Developer Status is not reporting any incident, I would sleep better knowing others see that too. APNS sandbox is generally pretty stable, so I want to make sure this is not something on my side that may propagate to a production app...
Thanks
I have followed all the documented recommendations for enabling critical alerts in my app, but cannot get it working.
I have verified the following: my team was granted the entitlement
I issued a new provisioning profile embedding the entitlement
I imported the profile in XCode and use it for signing the app.
XCode is confirming the profile is appropriate and that it has the entitlement.
I added the entitlement in my entitlements plist and double checked that it is the file XCode is using to build the app.
In my authorisation request to the UNUserNotificationCenter I now request the additional type .criticalAlert
On App Store connect I can see the uploaded build is containing the entitlement.
Fearing an iOS issue I checked with a well-known app available on the App Store that has critical alerts enabled whether it was working on my test device and it worked as expected.
But it does not work with my app, meaning: when I perform the authorization request for the first time, I only get the standard authorization pop-up and it is not followed by the special pop-up for critical alerts.
I do not see the critical alert options in the notification settings of the app.
If my server send a push notification with the appropriate payload for a critical alert, it gets distributed as standard push notification.
I also opened a code-level support requets but as it seems to take some time would appreciate if anyone has insights on this.
thank you
In XCode 12.0.1, I'm running Series 5 and Series 6 watch simulator with Watch0S 7.0 and a simulated paired iOS 14 iPhone. I need to set the watch security password so that I can use Sign in with Apple on the simulated watch, but the simulator won't effectively let me set the password. There is no error message: it looks like the password is being set but it is not.
As I'm also having the already known issue of XCode not able to get the symbol for Watch OS 7.0.1, I'm also unable to work with my physical Apple Watch.
My Apple Watch development are on full stop with all these issues...