Hi everyone,
I’ve filed a Feedback report (FB20986470) for a serious issue affecting the Call Directory database when add phone numbers for call blocking.
When adding blocking numbers to a Call Directory extension, the system’s CallKit database (/private/var/mobile/Library/CallDirectory/CallDirectory.db) becomes corrupted.
The reload call (reloadExtensionWithIdentifier) fails with error code 11 when the system tries to insert blocking entries, and the Console app on macOS shows the following errors:
database corruption page 2265525 of /private/var/mobile/Library/CallDirectory/CallDirectory.db at line 81343 of [f0ca7bba1c]
database corruption at line 79387 of [f0ca7bba1c]
Error Domain=com.apple.callkit.database.sqlite Code=11 "sqlite3_step for query 'INSERT INTO PhoneNumberBlockingEntry (extension_id, phone_number_id) VALUES (?, (SELECT id FROM PhoneNumber WHERE (number = ?))), (?, (SELECT id FROM PhoneNumber WHERE (number = ?))),...)'"
After this happens, CallKit becomes fully corrupted on the device and no further numbers can be added, even after:
Disabling and re-enabling the extension
Restarting the device (either force or soft restart)
Reinstalling the app
Waiting for a couple of minutes after this issue happens (that CallKit could possibly self-recovered)
I also tested other call-blocking apps, and they all fail with the same error. The only thing that recovers the system is a full “Reset All Settings.”
This issue has been reported by many users of my app, across multiple iOS versions and devices.
Similar related issue reported by another developer:
https://developer.apple.com/forums/thread/806129
Steps to Reproduce:
Enable the Call Directory extension from a call-blocking app.
Add and reload blocking numbers (a few thousand entries).
Perform multiple reloads between additions.
Check the Console, the corruption errors appear.
From this point, all insert attempts fail system-wide.
Expected Result:
Entries should be inserted successfully, or the system should self-recover without persistent corruption.
Actual Result:
sqlite3_step fails with Code=11, and the Call Directory database remains corrupted until the user resets all settings.
Additional Notes:
All numbers are sorted and deduplicated before insertion.
Happens intermittently after multiple reloads.
The system log always shows internal database failure.
Environment:
Device: iPhone 16 Plus
iOS 18.2 Beta (23C5027f)
Xcode 16.1 (17B55)
Attachments (included in Feedback FB20986470):
sysdiagnose captured immediately after the failure (with Phone app General Profile)
It seems like a system-level corruption affecting all Call Directory extensions once it occurs.
Posts under iOS tag
200 Posts
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
I encountered a bug with drag-and-drop sorting in ios 26.
I created a UITableView for dragging and dropping to adjust the order of the list. However, when I set the height of the cells to a custom height, some cells were not displayed during the dragging process.
The tools I use are the official version of Xcode16.1 and the ios 26 emulator
And I can also reproduce the same problem on the real device.
class ViewController: UIViewController {
private let tableView: UITableView = {
let tableView = UITableView.init(frame: .zero, style: .grouped)
tableView.backgroundColor = .clear
tableView.estimatedSectionHeaderHeight = 50
tableView.isEditing = true
tableView.showsVerticalScrollIndicator = false
tableView.allowsSelectionDuringEditing = true
return tableView
}()
var content: [Int] = []
override func viewDidLoad() {
super.viewDidLoad()
tableView.register(FTWatchGroupPageCell.self, forCellReuseIdentifier: "FTWatchGroupPageCell")
tableView.delegate = self
tableView.dataSource = self
view.addSubview(tableView)
for i in 1...100 {
content.append(i)
}
tableView.reloadData()
}
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
var frame = view.bounds
frame.origin.y = 200
frame.size.height = frame.size.height - 200
tableView.frame = frame
}
}
extension ViewController: UITableViewDelegate, UITableViewDataSource {
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return content.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "FTWatchGroupPageCell", for: indexPath) as! FTWatchGroupPageCell
cell.label.text = "\(content[indexPath.row])"
cell.label.sizeToFit()
return cell
}
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return 52.66
}
public func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
return 0.01
}
public func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
return 0.01
}
public func tableView(_ tableView: UITableView, canEditRowAt indexPath: IndexPath) -> Bool {
return true
}
public func tableView(_ tableView: UITableView, editingStyleForRowAt indexPath: IndexPath) -> UITableViewCell.EditingStyle {
return .none
}
public func tableView(_ tableView: UITableView, shouldIndentWhileEditingRowAt indexPath: IndexPath) -> Bool {
return false
}
public func tableView(_ tableView: UITableView, canMoveRowAt indexPath: IndexPath) -> Bool {
return true
}
public func tableView(_ tableView: UITableView, moveRowAt sourceIndexPath: IndexPath, to destinationIndexPath: IndexPath) {
let item = content.remove(at: sourceIndexPath.row)
content.insert(item, at: destinationIndexPath.row)
tableView.reloadData()
}
}
class FTWatchGroupPageCell: UITableViewCell {
private let contentBackView = UIView()
let label = UILabel()
override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
contentView.isHidden = true
addSubview(contentBackView)
contentBackView.backgroundColor = .red
contentBackView.addSubview(label)
label.textColor = .black
label.font = .systemFont(ofSize: 14)
contentBackView.frame = .init(x: 0, y: 0, width: 200, height: 30)
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
override func layoutSubviews() {
super.layoutSubviews()
guard let reorderControlClass = NSClassFromString("UITableViewCellReorderControl"),
let reorderControl = subviews.first(where: { $0.isKind(of: reorderControlClass) }) else {
return
}
reorderControl.alpha = 0.02
reorderControl.subviews.forEach({ subView in
if let imageView = subView as? UIImageView {
imageView.image = UIImage()
imageView.contentMode = .scaleAspectFit
imageView.frame.size = CGSize(width: 20, height: 20)
}
})
}
}
For a long time our app had this creation of a URLRequest:
var urlRequest = URLRequest(url: url, cachePolicy: .reloadIgnoringLocalAndRemoteCacheData, timeoutInterval: timeout)
But since iOS 26 was released we started to get crashes in this call. It is created on a background thread.
Thread 10 Crashed:
0 libsystem_malloc.dylib 0x00000001920e309c _xzm_xzone_malloc_freelist_outlined + 864 (xzone_malloc.c:1869)
1 libswiftCore.dylib 0x0000000184030360 swift::swift_slowAllocTyped(unsigned long, unsigned long, unsigned long long) + 56 (Heap.cpp:110)
2 libswiftCore.dylib 0x0000000184030754 swift_allocObject + 136 (HeapObject.cpp:245)
3 Foundation 0x00000001845dab9c specialized _ArrayBuffer._consumeAndCreateNew(bufferIsUnique:minimumCapacity:growForAppend:) + 120
4 Foundation 0x00000001845daa58 specialized static _SwiftURL._makeCFURL(from:baseURL:) + 2288 (URL_Swift.swift:1192)
5 Foundation 0x00000001845da118 closure #1 in _SwiftURL._nsurl.getter + 112 (URL_Swift.swift:64)
6 Foundation 0x00000001845da160 partial apply for closure #1 in _SwiftURL._nsurl.getter + 20 (<compiler-generated>:0)
7 Foundation 0x00000001845da0a0 closure #1 in _SwiftURL._nsurl.getterpartial apply + 16
8 Foundation 0x00000001845d9a6c protocol witness for _URLProtocol.bridgeToNSURL() in conformance _SwiftURL + 196 (<compiler-generated>:974)
9 Foundation 0x000000018470f31c URLRequest.init(url:cachePolicy:timeoutInterval:) + 92 (URLRequest.swift:44)# Live For Studio
Any idea if this crash is caused by our code or if it is a known problem in iOS 26?
I have attached one of the crash reports from Xcode:
2025-10-08_10-13-45.1128_+0200-8acf1536892bf0576f963e1534419cd29e6e10b8.crash
I set the location permission to Always but it changes back to “when shared” after a few days. Is this a bug?
Hi,
In our app we are using DeviceCheck (App Attest) in a production environment iOS. The service works correctly for most users, but a user reported failure in a flow that use device check service. This failure is not intermittently, it is constant.
We are unable to reproduce this failure and we are believing that this failure occurred by new version ios 26.3 because for others users using early versions the service is normally.
Environment
iOS 26.3
Real device
App Attest capability enabled
Correct App ID, Team ID and App Attest entitlement
Production environment
Characteristics:
appears constantly
affects only unique user
-Don't resolves after time or reinstall
not reproducible on our test devices
NSError contains no additional diagnostic info (Error Domain=com.apple.devicecheck.error Code=3 "(null)")
We saw about this error code 3 in this post 812308, but it's not our case because the ios version in this case is not iOS 17.0 or earlier.
Please, help us any guidance for solution. Thank you
At which point in the image processing pipeline does iOS apply the white balance gains which can be set via AVCaptureDevice.setWhiteBalanceModeLocked(with:completionHandler:)?
Are those gains applied in the analog part of the camera pipeline, before the pixel voltage gets converted via the ADC to digital values? Or does the camera first convert the pixel voltages to digital values and then the gains are applied to the digital values?
Is this consistent across devices or can the behavior vary from device to device?
I currently have a iOS app live on the App Store but I also want to release it on Android, the whole code is in Swift so would that be possible or would I have to rewrite my whole apps code in a different coding language.
Summary
I am seeking clarification regarding an App Store rejection under Guideline 4.2 – Design – Minimum Functionality, specifically around expectations for booking and payment flows in apps that rely on third-party, industry-standard reservation platforms.
This app is a production application for a licensed transportation (black car / limo) service. It includes multiple native iOS features implemented via Capacitor and custom Swift plugins. However, the booking and payment flow depends on a third-party transportation platform (RideBits) that does not currently support deep linking with prefilled parameters or programmatic booking APIs.
Before committing to a significant architectural change, I am hoping to understand whether Apple’s expectation under Guideline 4.2 is that all transactional booking and payment flows must be fully native and controlled by the app developer, even when third-party systems are operationally required.
⸻
App Context
The app is designed for a real transportation business and is not a content, marketing, or browsing application. It is purpose-built for trip booking, pickup coordination, and customer interaction.
The third-party platform (RideBits) handles:
• Dispatch and driver assignment
• Vehicle inventory and pricing rules
• Payment processing
• Trip lifecycle management
This platform is central to business operations and is commonly used in this industry.
⸻
Native Functionality Implemented
The app includes meaningful native iOS functionality beyond web content, including:
• Native Core Location access (with permission handling)
• Native reverse geocoding using CLGeocoder via a custom Swift Capacitor plugin
• Native clipboard integration
• Native iOS share sheet integration
• Apple Maps deep linking
• Custom CAPBridgeViewController with explicit plugin registration
All native plugins were verified at runtime and tested on physical devices and simulators.
⸻
Booking Flow Constraint
The third-party platform does not currently support:
• Deep links with prefilled booking parameters
• Passing pickup/dropoff data via URL
• Native SDK embedding
• APIs for programmatic booking creation
As a result, even when pickup data is collected natively, users must re-enter details within the booking flow.
⸻
App Review Outcome
Despite adding additional native functionality, the app was rejected again under Guideline 4.2, with feedback stating the experience is not sufficiently differentiated from web browsing and that features such as Core Location or sharing alone are not robust enough.
⸻
Clarification Requested
I am hoping to better understand Apple’s expectations in this scenario:
1. Is Apple’s expectation that core booking and payment flows must be fully native to satisfy Guideline 4.2, regardless of industry-standard third-party dependencies?
2. Would an app be considered acceptable if the booking UI is native, but final transaction submission occurs through a third-party system?
3. Are there known precedents for service or transportation apps using third-party booking platforms that have successfully passed review?
4. Is the issue primarily technical (missing native features), or conceptual (core value relies on an external flow)?
⸻
Purpose of This Post
Before undertaking a major rebuild of pricing, payments, and booking logic in-house, I want to ensure there is no App Store–acceptable architecture that allows:
• Meaningful native functionality, and
• Continued use of a third-party operational booking platform.
Any guidance or shared experience would be greatly appreciated.
I've suddenly started seeing hundreds of the same block of four error messages (see attached image) when running my app on my iOS device through Xcode. I've tried Cleaning the Build folder, but I keep seeing these messages in the console but can't find anything about them.
Phone is running iOS 26.1. Xcode is at 16.4. Mac is on Sequoia 15.5. The app is primarily a MapKit SwiftUI based application.
Messages below:
Connection error: Error Domain=NSCocoaErrorDomain Code=4099 "The connection to service named com.apple.PerfPowerTelemetryClientRegistrationService was invalidated: Connection init failed at lookup with error 159 - Sandbox restriction." UserInfo={NSDebugDescription=The connection to service named com.apple.PerfPowerTelemetryClientRegistrationService was invalidated: Connection init failed at lookup with error 159 - Sandbox restriction.}
(+[PPSClientDonation isRegisteredSubsystem:category:]) Permission denied: Maps / SpringfieldUsage
(+[PPSClientDonation sendEventWithIdentifier:payload:]) Invalid inputs: payload={
isSPR = 0;
}
CAMetalLayer ignoring invalid setDrawableSize width=0.000000 height=0.000000
I'm also seeing the following error messages:
CoreUI: CUIThemeStore: No theme registered with id=0
今天上午开始TestFlight一直都是processing。
My app allows to save user-selected URLs in a list and browse them with a tap. A user reported that the app often shows that when browsing their saved entry for "On My iPad", it's apparently empty (it contains no files).
I saved "On My iPad" in my own list some time ago and noticed that the same issue occurs. The URL seems to be correctly resolved from the saved bookmark data, but I noticed that url.startAccessingSecurityScopedResource() returns false. The other URL I saved some time ago is iCloud Drive, which I can access without issues. If I select "On My iPad" again in a file importer, create new bookmark data from it and resolve the URL from it, access works correctly.
I create bookmark data like this:
let data = try url.bookmarkData(includingResourceValuesForKeys: [.localizedNameKey, .pathKey, .volumeIsLocalKey])
and resolve URLs like this:
let url = try URL(resolvingBookmarkData: data, bookmarkDataIsStale: &bookmarkDataIsStale)
bookmarkDataIsStale is false for both the working and not working URLs for "On My iPad". The two bookmark data are different though, even if url.path is the same.
What could be the issue?
It has been approximately three weeks since we submitted our app for review via App Store Connect, but it remains "In Review" and the review process has not been completed.
For this reason, we also requested an expedited app review to the App Review Team last week.
Will the review proceed if we simply wait?
Is there any way to check the detailed status of this app review?
I am seeing a regression with XCUIDevice.shared.appearance = .dark in UI tests that only affects xcodebuild, not Xcode’s UI test runner.
Setup
• UI tests written using XCTest
• Dark mode forced in setUp() using:
XCUIDevice.shared.appearance = .dark
• Tests target an iOS simulator
• Same test target, same scheme
Expected behavior
The app launches in Dark Mode for UI tests, as it did previously.
Actual behavior
• When running UI tests from Xcode (Product > Test), Dark Mode is applied correctly.
• When running the same UI tests via xcodebuild test, Dark Mode is ignored and the app launches in Light Mode.
• No test failures, no warnings, no logs indicating the appearance override was skipped.
Regression details
• This used to work on older iOS versions when running via xcodebuild.
• The regression appears after updating iOS simulators (exact version boundary still unclear).
• No relevant changes were made to the test code, scheme, or CI configuration.
• xcodebuild otherwise launches and runs UI tests normally.
Notes
• The issue is specific to XCUIDevice.shared.appearance.
• Other UI test functionality behaves as expected.
• This makes CI results inconsistent with local Xcode runs and breaks visual assumptions in snapshot and layout-based tests.
Question
Is this a known regression or an intentional behavior change in recent iOS / Xcode versions?
If intentional, what is the supported way to reliably force Dark Mode in UI tests when running via xcodebuild?
This currently makes xcodebuild-based CI UI testing unreliable compared to Xcode’s test runner.
Introduction:
I’m encountering a consistent crash in production on iOS 26.2 (build 23C55). The crash occurs deep within libicucore when calling [NSDateFormatter dateFromString:].
Crash Summary:
Exception Type: SIGSEGV (SEGV_ACCERR)
Fault Address: 0xffffffff
Thread: Crashed on Main Thread (Thread 0)
Library: libicucore.A.dylib
Code Snippet:
The crash is triggered by the following method. It converts a string to an NSDate using a specific format and locale:
// 获取日期date
- (NSDate *)getDateWithTime:(NSString *)time formatter:(NSString *)formatterStr {
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:formatterStr];
formatter.timeZone = [NSTimeZone timeZoneWithName:@"Asia/Shanghai"];
formatter.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];
return [formatter dateFromString:time];
}
Backtrace:
Here is the relevant part of the crash report:
Incident Identifier: E24485B6-C53E-4115-A6CF-A7E4A952AD50
CrashReporter Key: 21FAC1CF-F56B-409A-98AA-351D3D2EB06C
Hardware Model: iPhone18,2
Code Type: ARM-64
Parent Process: [1]
Date/Time: 2026-01-12T01:32:25Z
OS Version: iPhone OS 26.2 (23C55)
Report Version: 105
SDK Version: 0.0.4
Exception Type: SIGSEGV
Exception Codes: SEGV_ACCERR at 0xffffffff
Crashed Thread: 0
Thread 0 Crashed:
0 libicucore.A.dylib 0x000000019b81def8 0x19b74a000 + 868088
1 libicucore.A.dylib 0x000000019b7da91c 0x19b74a000 + 592156
2 libicucore.A.dylib 0x000000019b8d8340 0x19b74a000 + 1631040
3 libicucore.A.dylib 0x000000019b8eae18 0x19b74a000 + 1707544
4 libicucore.A.dylib 0x000000019b8eb600 0x19b74a000 + 1709568
5 libicucore.A.dylib 0x000000019b878be4 0x19b74a000 + 1240036
6 libicucore.A.dylib 0x000000019b87ae84 0x19b74a000 + 1248900
7 libicucore.A.dylib 0x000000019b87b2dc 0x19b74a000 + 1250012
8 libicucore.A.dylib 0x000000019b9564ac 0x19b74a000 + 2147500
9 libicucore.A.dylib 0x000000019b954afc 0x19b74a000 + 2140924
10 libicucore.A.dylib 0x000000019b952794 0x19b74a000 + 2131860
11 libicucore.A.dylib 0x000000019b98689c 0x19b74a000 + 2345116
12 CoreFoundation 0x00000001895dbfe0 0x18953d000 + 651232
13 CoreFoundation 0x00000001895dbaa0 0x18953d000 + 649888
14 Foundation 0x0000000186d2029c 0x186b88000 + 1671836
15 Foundation 0x00000001874a62dc 0x186b88000 + 9560796
16 Foundation 0x00000001874a6384 0x186b88000 + 9560964
17 xxxx 0x0000000105ea6e30 -[xxxxx getDateWithTime:formatter:] + 168
and
Thread 0 crashed with ARM-64 Thread State:
pc: 0x000000019b81def8 fp: 0x000000016f96bc10 sp: 0x000000016f96bbd0 x0: 0x00000000ffffffff
x1: 0x000000019ba1e8e0 x2: 0x0000000000000002 x3: 0x000000000000000b x4: 0x0000000000000074
x5: 0x0000000000000069 x6: 0x0000000000000000 x7: 0xfffff0003ffff800 x8: 0x000000009ba18014
x9: 0x00000001148dffd0 x10: 0x0000000000000002 x11: 0x0000000000000004 x12: 0x0000000000000220
x13: 0x0000000000000030 x14: 0x000000015b6f36b8 x15: 0x000000015cfe0000 x16: 0x00000002a19d0ff0
x17: 0x00000001f5590a70 x18: 0x0000000000000000 x19: 0x000000016f96bc30 x20: 0x0000000000000000
x21: 0x000000015cfe3200 x22: 0x000000019ba18014 x23: 0x0000000000000000 x24: 0x000000015cfe32a0
x25: 0x0000000000000003 x26: 0x0000000000000000 x27: 0x0000000000000000 x28: 0x000000015cfe3200
lr: 0x000000019b7da958 cpsr: 0x00000000a0000000
Topic:
App & System Services
SubTopic:
General
Tags:
Foundation
iOS
Objective-C
Internationalization
Hello,
I have an iOS camera app that captures exposure brackets and performs custom HDR processing.
On iOS 26, I’m observing a visual difference between:
a single photo captured at –2 EV, and the –2 EV frame from an exposure bracket (–2 / 0 / +2 EV).
On iOS 26:
The single –2 EV image looks natural and consistent.
The –2 EV image from the bracket appears clamped / distorted, most noticeably in high dynamic range scenes (highlight compression and loss of detail).
On iOS 18, both approaches produce visually identical and correct –2 EV images.
The issue only appears for bracketed captures on iOS 26.
Attachments (examples)
iOS 26
Single capture –2 EV (JPEG):
/Users/danilobudimir/Downloads/ios26SingleImage/JPEG image-4006-8B77-51-0.jpeg
Single capture –2 EV — Capture report (dumped settings):
/Users/danilobudimir/Downloads/ios26SingleImage/UnderExposureDebug_CaptureReport_2026-01-09T15-59-20Z.md
Bracket capture –2 EV frame (JPEG):
/Users/danilobudimir/Downloads/bracket_iOS26/JPEG image-45CE-9793-A5-0.jpeg
Bracket capture — Capture report (dumped settings):
/Users/danilobudimir/Downloads/bracket_iOS26/UnderExposureDebug_CaptureReport_2026-01-09T15-55-42Z.md
iOS 18
Single capture –2 EV (JPEG):
/Users/danilobudimir/Downloads/ios18SingleImage/JPEG image-47FD-AF73-28-0.jpeg
Single capture –2 EV — Capture report:
/Users/danilobudimir/Downloads/ios18SingleImage/UnderExposureDebug_CaptureReport_2026-01-09T16-25-27Z.md
Bracket capture — –2 EV frame (JPEG):
/Users/danilobudimir/Downloads/bracket_iOS18/JPEG image-4A4C-9E93-46-0.jpeg
Bracket capture — Capture report:
/Users/danilobudimir/Downloads/bracket_iOS18/UnderExposureDebug_CaptureReport_2026-01-09T16-27-23Z.md
Question
Is there any new behavior in iOS 26 AVFoundation related to:
AVCapturePhotoBracketSettings,
tone mapping / HDR preprocessing,
or internal image processing applied specifically to bracketed frames?
Is there a new flag, format requirement or opt-out mechanism required to preserve linear underexposed frames in exposure brackets?
Hello All,
I come to ask a question that I haven't been able to find the docs. I continue to work on implementing declarative management and while working there is a question/concern I have.
I have noticed that during some destructive testing, if the device is attempting to fetch a configuration and the server responds with a 503 (or any server related error) then the device will wipe all configurations and attempt to reapply them.
Is there any way to prevent this by intercepting status codes or would the only real solution be to force down a temp/test config if the real config can't be fetched from the server?
Hi, I'm experiencing an issue with my app. I use Firebase as my server, and it is great. Still, there is one issue: when I send push notifications from my app to users, the users will get the notification if the app is open, but not when it is closed. I have tried many solutions to fix it, even asking AI, but the issue is still there. I would be happy to give you access to Firebase and the Xcode workspace, as I have no clue how to fix it.
Dear Apple Customer Support,
I’m developing a new Swift iPadOS app and I want the app to run in landscape only (portrait disabled).
In Xcode, under Target > General > Deployment Info > Device Orientation, if I select only Landscape Left and Landscape Right, the app builds successfully, but during upload/validation I receive this message and the upload is blocked:
“Update the Info.plist: Support for all orientations will soon be required.”
Could you please advise what the correct/recommended way is to keep an iPad app locked to landscape only while complying with the current App Store upload requirements?
Is there a specific Info.plist configuration (e.g., UISupportedInterfaceOrientations~ipad) or another setting that should be used?
Thank you,
Hi,
We recently updated our app icon, but the push notification icon has not been updated on some devices. It still shows the old icon on:
• iPhone 16 Pro — iOS 26
• iPhone 14 — iOS 26
• iPad Pro 11” (M4) — iOS 18.6.2
• iPhone 16 Plus — iOS 18.5
After restarting these devices, the push notification icon is refreshed and displays the new version correctly.
Could you advise how we can ensure the push notification icon updates properly on all affected devices without requiring users to restart?
Thank you.
Topic:
App & System Services
SubTopic:
Notifications
Tags:
APNS
Developer Tools
iOS
User Notifications
When I call this method on a thread that isn`t thread. And chose main thread check on target, The Console show the world :
Main Thread Checker: UI API called on a background thread: -[UIApplication canOpenURL:]
PID: 8818, TID: 10191278, Thread name: (none), Queue name: com.myqueue.canopen, QoS: 0
Backtrace:
4 TestDemo 0x0000000102f6c068 __39-[AppTools isExists:]_block_invoke_3 + 892
5 CoreFoundation 0x000000019e22995c 7519E999-1053-3367-B9D5-8844F6D3BDC6 + 1042780
6 CoreFoundation 0x000000019e12ec98 7519E999-1053-3367-B9D5-8844F6D3BDC6 + 15512
7 TestDemo 0x0000000102f6bba0 __39-[AppTools isExists:]_block_invoke_2 + 424
8 libdispatch.dylib 0x0000000103a4d7fc _dispatch_call_block_and_release + 24
9 libdispatch.dylib 0x0000000103a4ebd8 _dispatch_client_callout + 16
10 libdispatch.dylib 0x0000000103a55b48 _dispatch_lane_serial_drain + 744
11 libdispatch.dylib 0x0000000103a566e4 _dispatch_lane_invoke + 448
12 libdispatch.dylib 0x0000000103a61adc _dispatch_workloop_worker_thread + 1324
13 libsystem_pthread.dylib 0x000000019df72b88 _pthread_wqthread + 276
14 libsystem_pthread.dylib 0x000000019df75760 start_wqthread + 8