Hi everyone,
I'm experiencing crashes that consistently occur on iOS 18 devices, which seem to share a common root cause. I'm hoping for some guidance. Here are the details of the crashes as received from Xcode Organizer:
Crash Trace 1:
0 CoreFoundation 0x0000000192c50e54 CF_IS_OBJC + 76 (CFRuntime.c:461)
1 CoreFoundation 0x0000000192c4dd3c CFRelease + 60 (CFRuntime.c:1202)
2 CoreFoundation 0x0000000192d015e0 _signalEventSync + 252 (CFStream.c:636)
3 CoreFoundation 0x0000000192d53050 ___signalEventQueue_block_invoke + 28 (CFStream.c:646)
4 libdispatch.dylib 0x000000019a93c370 _dispatch_call_block_and_release + 32 (init.c:1549)
5 libdispatch.dylib 0x000000019a93e0d0 _dispatch_client_callout + 20 (object.m:576)
6 libdispatch.dylib 0x000000019a9456d8 _dispatch_lane_serial_drain + 744 (queue.c:3934)
7 libdispatch.dylib 0x000000019a9461e0 _dispatch_lane_invoke + 380 (queue.c:4025)
8 libdispatch.dylib 0x000000019a951258 _dispatch_root_queue_drain_deferred_wlh + 288 (queue.c:7193)
9 libdispatch.dylib 0x000000019a950aa4 _dispatch_workloop_worker_thread + 540 (queue.c:6787)
10 libsystem_pthread.dylib 0x000000021a00fc7c _pthread_wqthread + 288 (pthread.c:2696)
11 libsystem_pthread.dylib 0x000000021a00c488 start_wqthread + 8 (:-1)
Crash Trace 2:
0 libobjc.A.dylib 0x0000000186f33c20 objc_msgSend + 32
1 CoreFoundation 0x0000000189cb14b8 _inputStreamCallbackFunc + 36 (CFObject.m:1952)
2 CoreFoundation 0x0000000189cb0aa8 _signalEventSync + 216 (CFStream.c:626)
3 CoreFoundation 0x0000000189d01e30 ___signalEventQueue_block_invoke + 28 (CFStream.c:646)
4 libdispatch.dylib 0x0000000191948370 _dispatch_call_block_and_release + 32 (init.c:1549)
5 libdispatch.dylib 0x000000019194a0d0 _dispatch_client_callout + 20 (object.m:576)
6 libdispatch.dylib 0x00000001919516d8 _dispatch_lane_serial_drain + 744 (queue.c:3934)
7 libdispatch.dylib 0x00000001919521e0 _dispatch_lane_invoke + 380 (queue.c:4025)
8 libdispatch.dylib 0x000000019195d258 _dispatch_root_queue_drain_deferred_wlh + 288 (queue.c:7193)
9 libdispatch.dylib 0x000000019195caa4 _dispatch_workloop_worker_thread + 540 (queue.c:6787)
10 libsystem_pthread.dylib 0x000000021214bc7c _pthread_wqthread + 288 (pthread.c:2696)
11 libsystem_pthread.dylib 0x0000000212148488 start_wqthread + 8
Crash Trace 3:
0 libobjc.A.dylib 0x00000001941d9ce8 objc_loadWeakRetained + 156 (NSObject.mm:525)
1 CoreFoundation 0x0000000196d0a0f4 _outputStreamCallbackFunc + 36 (CFObject.m:1960)
2 CoreFoundation 0x0000000196d09724 _signalEventSync + 216 (CFStream.c:626)
3 CoreFoundation 0x0000000196d07948 ___signalEventQueue_block_invoke + 28 (CFStream.c:646)
4 libdispatch.dylib 0x000000019e9de248 _dispatch_call_block_and_release + 32 (init.c:1549)
5 libdispatch.dylib 0x000000019e9dffa8 _dispatch_client_callout + 20 (object.m:576)
6 libdispatch.dylib 0x000000019e9e75cc _dispatch_lane_serial_drain + 768 (queue.c:3934)
7 libdispatch.dylib 0x000000019e9e8124 _dispatch_lane_invoke + 380 (queue.c:4025)
8 libdispatch.dylib 0x000000019e9f338c _dispatch_root_queue_drain_deferred_wlh + 288 (queue.c:7193)
9 libdispatch.dylib 0x000000019e9f2bd8 _dispatch_workloop_worker_thread + 540 (queue.c:6787)
10 libsystem_pthread.dylib 0x00000002220f3680 _pthread_wqthread + 288 (pthread.c:2696)
11 libsystem_pthread.dylib 0x00000002220f1474 start_wqthread + 8
Notable Points:
All crashes occur only on iOS 18 and newer versions.
The crashes are independent of the Xcode version used to build the app (tested with both Xcode 15.4 and 16).
All crash traces occur in CoreFoundation and seem to have nothing related to our app codebase.
I've attempted to profile the app using Instruments to identify any zombie objects, but the crashes do not manifest on my own devices.
I've referred to discussions, including this forum thread, but have not yet found a solution.
Questions:
Has anyone else encountered similar issues on iOS 18?
Are there specific aspects of iOS 18 that might contribute to these CoreFoundation and libobjc-related crashes?
Would appreciate any suggestions for further diagnostics or potential workarounds.
Thank you for your help!
General
RSS for tagDelve 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
Hello.
I would like to ask for an assistance with testing AdAttributionKit flow that seems not working.
Goal: to close the AdAttributionKit logic flow loop starting from presenting and handling Ad in a publisher app and ending with receiving a postback request on my end point.
Problem: No postback request is received on my configured domain. It looks like AdAttributionKit cannot connect between AppImpression invocation in Publisher App and updating postback from the Advertised App, hence no update postback request are transmitted to my endpoint.
What was done:
Testing device
iPhone 13, iOS 18.0.1
Production Apple ID
AdAttributionKit Developer Mode is enabled
iPhone is reset and restarted
Publisher App
Test publisher application was created and configured (according to Apple's documentation [https://developer.apple.com/documentation/adattributionkit/configuring-a-publisher-app]) with the following:
AdNetworkIdentifiers item was added to app's Info.plist with number of Ad Network IDs. I tried to use in my tests (used below insted of the placeholder):
Registered SKAdNetwork Ad Network ID that ends with .skadnetwork
Not registered Ad Network ID that ends with .adattributionkit
JWS Impression was created with the following
JWS Header: {"kid" : "","alg" : "ES256"}
JWS Payload: {"impression-type" : "app-impression","impression-identifier" : "9547875E-C052-44CD-8CB9-193978CC5AB7", "timestamp" : 1729162517373,"publisher-item-identifier" : 0,"source-identifier" : 1111,"ad-network-identifier" : "","advertised-item-identifier" : 1125517808}
JWS Data: "BASE64(JWS-Header)"."BASE64(JWS-Payload)"."SIGNED("BASE64(JWS-Header).BASE64(JWS-Payload)")"
Signing was done with temporary key (created every time the JWS is composed) by the following:
let signingInput = "\(headerBase64String).\(payloadBase64String)"
let privateKey = Curve25519.Signing.PrivateKey()
var encodedSignature = ""
do {
let signature = try privateKey.signature(for: Data(signingInput.utf8))
encodedSignature = base64UrlEncode(signature)
} catch {
print("Error signing JWS: \(error.localizedDescription)")
}
UIEventAttributionView (with UITapGestureRecognizer) was added to my ViewController's main view and in a handling method of TAP event, AppImpression was created baased on JWS above and handleTap() method of this AppImpression instance was called.
AppImpression was tapped and AppStore has been launched (because to this moment no advertised app with was installed on a device):
attributionkitd Preflighting impression
AAKPubApp Connection established
attributionkitd Validated impression for advertised app: <MY-ADVERTISED-APP-APPSTORE-ID-PLACEHOLDER>
attributionkitd No distributor bundle ID received from app fetch
attributionkitd Distributor metadata cached for item ID <MY-ADVERTISED-APP-APPSTORE-ID-PLACEHOLDER>
attributionkitd Is anything happening?
attributionkitd Processing tap
attributionkitd Successfully validated publisher application
attributionkitd Successfully finalized click through impression
attributionkitd Impression is not eligible for re-engagement
attributionkitd Launching distributor for itemID: <MY-ADVERTISED-APP-APPSTORE-ID-PLACEHOLDER>
attributionkitd [0x70008b340] activating connection: mach=false listener=false peer=false name=(anonymous)
attributionkitd Distributor launch completed for item ID: <MY-ADVERTISED-APP-APPSTORE-ID-PLACEHOLDER>
Advertised App
Advertised App is an existing application on the AppStore. It was configured according Apple's documentation [https://developer.apple.com/documentation/adattributionkit/configuring-an-advertised-app].
AttributionCopyEndpoint key with my domain ("https://<MY_DOMAIN_PLACEHOLDER>.com") was added to app's Info.plist
EligibleForAdAttributionKitReengagementPostbackCopies key with "YES" value was added to Info.plist as well.
Number of postback method calls were added to the application in different places including application:didFinishLaunchingWithOptions.
Used AdAttributionKit method - (updateConversionValue(_:coarseConversionValue:lockPostback:)) [https://developer.apple.com/documentation/adattributionkit/postback/updateconversionvalue(_:coarseconversionvalue:lockpostback:)]
Application is written in Objective-C while using AdAttributionKit via Swift-to-ObjC regular bridging.
I tried to use Advertised App in the following ways:
To run it from Xcode. This way, when the advertised app is already installed, AppImpression tap in the publisher App doesn't recognize the Advertised App is installed and launches AppStore.
To install it from TestFlight. This way, AppImpression tap in the publisher App successfully recognizes the Advertised App is installed and launches it.
Both ways yield the same result - explanation below.
Advertised App launched - while calling update postback method in application:didFinishLaunchingWithOptions
attributionkitd Updating postback
attributionkitd Queueing update postback
attributionkitd [TXNf0dc] 🐏 Beginning transaction (Task runner: atomic)
attributionkitd Begin update postback
<MY-APPLICATION-NAME-PLACEHOLDER> Connection established
attributionkitd [TXN5421] 🐏 Ending transaction (<private>) (<private>)
attributionkitd Retrieved conversion window thresholds: <private>
attributionkitd [TXNf0dc] 🐏 Ending transaction (<private>) (<private>)
...
attributionkitd Calling launch handler for com.apple.attributionkitd.development-postback-transmission
attributionkitd Begin task for identifier: com.apple.attributionkitd.development-postback-transmission
attributionkitd Running barktivity: com.apple.attributionkitd.development-postback-transmission
attributionkitd [TXN46f0] 🐏 Beginning transaction (<private>)
attributionkitd Found 0 postbacks eligible for transmission for environments: <private>
attributionkitd Postback transmission completed
attributionkitd [TXN46f0] 🐏 Ending transaction (<private>) (<private>)
attributionkitd Marking task <BGRepeatingSystemTask: com.apple.attributionkitd.development-postback-transmission> complete
attributionkitd Task completed for identifier: com.apple.attributionkitd.development-postback-transmission
The problem I can see here is in the following line:
attributionkitd Found 0 postbacks eligible for transmission for environments: <private>
It looks like AdAttributionKit cannot connect between AppImpression invocation in Publisher App and updating postback from the Advertised App.
Please correct me in case I'm doing anything wrong or missing anything.
Thank you very much.
Our users report frequent crashes with the FamilyActivityPicker. Since this is a screen controlled by Apple, I'm assuming that there's nothing I can do to prevent these crashes.
I'm wondering, though, if there's any way to gracefully handle these crashes? When this happens, the following is printed to the console:
[com.apple.FamilyControls.ActivityPickerExtension(1121)] Connection to plugin invalidated while in use.
Does anyone know how to handle/catch this error?
if #available(iOS 16.0, *) {
print("donated")
let intent = BasicIntent()
IntentDonationManager.shared.donate(intent: intent)
}
Trying to test if donations work with the new App Intents framework.
Donating the shortcut once a user taps a button.
The shortcut is not appearing on the lock screen.
Everything else is working as expected. The Shortcut is appearing in the Shortcuts App and is working via Siri.
In developer settings I have
Display Recent Shortcuts -> On
Display Donations on Lock Screen -> On
Allow Any domain -> On
Allow Unverified sources -> On
Running iOS 16.2, iPhone 11.
I am experiencing difficulties in fully integrating my Apple Watch with a supervised iPhone under MDM control. While I have successfully paired the watch with the iPhone, I am facing issues with some apps not syncing or appearing on the Apple Watch. This issue persists despite having allowed their bundle IDs in the MDM’s whitelist. Could anyone provide guidance on which specific Apple bundle ID is crucial for maintaining the connectivity and functionality between the iPhone and the Apple Watch? Understanding this would help in ensuring that the necessary bundle ID is whitelisted in the MDM settings, thus resolving the app visibility and functionality issues on the Apple Watch.
Topic:
App & System Services
SubTopic:
General
Tags:
Watch Connectivity
watchOS
Bundle ID
Device Management
Hi All, I’m puzzled by this issue: my app uses WeatherKit to fetch hourly UV-index and temperature forecasts. The same build, running on the latest iOS, succeeds on most devices but consistently fails on a few. Strangely, the paired Apple Watch version retrieves the data without problems. Could WeatherKit be applying per-user throttling? Any insight would be greatly appreciated.
How to programmatically check if ApplicationToken or ActivityCategoryToken is expired in FamilyActivityPicker?
I'm building a Screen Time-based parental control app using FamilyControls and ManagedSettings. We use FamilyActivityPicker to allow the user to select apps and categories to restrict, and we apply the shield using:
store.shield.applications = .specific(selection.applicationTokens)
store.shield.applicationCategories = .specific(selection.categoryTokens)
Sometimes, we observe that the shield silently fails to apply — no error is thrown, but the restrictions aren't enforced. I suspect this may be due to expired or invalid tokens, possibly if the app was removed or the selection became stale.
My Questions:
Can ApplicationToken or ActivityCategoryToken expire or become invalid over time?
If yes, is there a supported or recommended way to detect whether a token is still valid before applying it to the shield?
Is comparing the current shield values (store.shield.applications and store.shield.applicationCategories) after applying them a reliable validation method?
What's the best practice to handle expired tokens (e.g. re-prompt the FamilyActivityPicker, or show a fallback)?
What Is the Expiration Duration of Tokens from FamilyActivityPicker?
Any guidance or insight from the Screen Time/FamilyControls team would be greatly appreciated!
Thank you!
My scenario is to help users set up a full year's alarms at once. The dates for the alarms follow a specific pattern, but not fixed weekdays, so the fixed-date type is needed.
Topic:
App & System Services
SubTopic:
General
i have iPhone 16 pro and I’ve updated to IOS 18.2.
however after I clicked on ‘Get Apple Intelligence’, and then set up button, nothing happened. I’ve tried this process many times still nothing working.
Hello,
I am currently developing an iOS application that leverages FinanceKit to access transaction history. I have already enabled FinanceKit in my developer account, but I am encountering challenges when trying to test the transaction history feature.
Could anyone guide me on the best practices or specific steps needed to effectively test FinanceKit’s transaction history in a development environment? Any insights on mock data handling, API responses, or potential limitations during testing would be greatly appreciated.
Thank you in advance for your help!
We have an application which is written in Swift, which activates Transparent Proxy network extension. We are using Jamf MDM profile for deployment.
To avoid the user deleting / disabling the extension from General -> LogIn Items & Extension -> Network Extensions screen, we are using "Non-removable system extensions from UI" attribute under Allowed System Extensions and Teams IDs section.
In new Mac OS 26 (Tahoe), user can also enable/disable the extension from General -> LogIn Items & Extension -> Apps tab. The "Non-removable system extensions from UI" attribute set in Jamf MDM profile does not apply to this tab.
Same attribute is working for General -> LogIn Items & Extension -> Extensions tab and there the slider is greyed out and Remove option is not available under more menu.
Is there any new key/configuration defined to disable the slider from General -> LogIn Items & Extension -> Apps tab?
Created https://feedbackassistant.apple.com/feedback/18198031 - FB18198031 feedback assistant ticket as well.
Topic:
App & System Services
SubTopic:
General
Tags:
Network Extension
System Extensions
Device Management
3.5 weeks ago I submitted form https://developer.apple.com/contact/request/family-controls-distribution to get Family Controls entitlement for my app.
I still not received any feedback at all...
Contacting Support also doesn't help...
Is there any time limits for this request or any average time of waiting for feedback?
Hello.
My project includes a widget target that provides interactive widget functionalities. The document "Adding Interactivity to Widgets and Live Activities" says the following:
Additionally, note that the perform() function is marked as throws. Be sure to handle errors instead of rethrowing them, and update your app, widget, and Live Activity as needed. For example, update a widget’s interface to indicate that it displays outdated information if it cannot load new data.
https://developer.apple.com/documentation/widgetkit/adding-interactivity-to-widgets-and-live-activities#Implement-the-perform-function, column 3
However, I couldn't find a way how to handle an error in an interactive widget. The Button(intent:) and Toggle(intent:) initializers don't have mechanisms for error handling.
Does anyone know a solution for handling errors in interactive widgets?
guard let fileURL = intent.attachments?.first?.audioMessageFile?.fileURL else {
print("Couldn't get fileNameWithExtension from intent.attachments?.first?.audioMessageFile?.fileURL?.lastPathComponent")
return failureResponse
}
defer {
fileURL.stopAccessingSecurityScopedResource()
}
let fileURLAccess = fileURL.startAccessingSecurityScopedResource()
print("FileURL: \(fileURLAccess)")
let tempDirectory = FileManager.default.temporaryDirectory
let tempFileURL = tempDirectory.appendingPathComponent(UUID().uuidString + "_" + fileURL.lastPathComponent)
do {
// Check if the file exists at the provided URL
guard FileManager.default.fileExists(atPath: fileURL.path) else {
print("Audio file does not exist at \(fileURL)")
return failureResponse
}
fileURL.stopAccessingSecurityScopedResource()
// Check if the temporary file already exists and remove it if necessary
if FileManager.default.fileExists(atPath: tempFileURL.path) {
try FileManager.default.removeItem(at: tempFileURL)
print("Removed existing temporary file at \(tempFileURL)")
}
// Copy the audio file to the temporary directory
try FileManager.default.copyItem(at: fileURL, to: tempFileURL)
print("Successfully copied audio file from \(fileURL) to \(tempFileURL)")
// Update your response based on the successful upload
// ...
} catch {
// Handle any errors that occur during file operations
print("Error handling audio file: \(error.localizedDescription)")
return failureResponse
}
guard let audioData = try? Data(contentsOf: tempFileURL), !audioData.isEmpty else {
print("Couldn't get audioData from intent.attachments?.first?.audioMessageFile?.data")
return failureResponse
}
Error:
FileURL: false
Audio file does not exist at file:///var/mobile/tmp/SiriMessages/BD57CB69-1E75-4429-8991-095CB90959A9.caf
is something I'm missing?
Our context involves smart kitchen appliances, where cooking may be initiated by an app or directly by the device.
When the app is not running, we can only start a Live Activity through a remote push notification. However, an increasing number of users report issues where they cannot update or terminate the Live Activity.
While we can reproduce this issue in some cases, it is inconsistent and lacks a clear pattern.
I have a sample project and would like to confirm the following questions:
When the app is not running, does each pushToStartToken update wake the app and reliably trigger the callback below?
for await pushToken in Activity<DeviceAttributes>.pushToStartTokenUpdates {
}
When the app is not running, does each pushTokenUpdates update wake the app and reliably trigger the callback below?
Task {
for await activity in Activity<DeviceAttributes>.activityUpdates {
Task {
for try await tokenData in activity.pushTokenUpdates {
}
}
}
}
Must pushToStartTokenUpdates and pushTokenUpdates be placed directly in application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?), or can they be in another wrapper, such as an RxSwift wrapper?
If pushTokenUpdates is updated, but the received pushToken fails to synchronize to the server due to network issues, how should this be handled?
Alternatively, if you have any better suggestions, I would be very grateful to hear them.
Here is a simple example.
Hi,
I'm trying to make use of the Device Activity Labels where you supply an ApplicationToken. I can successfully get it to show the icon + title of the Application (twitter in my case) but I cannot get the styling to work.
// Works
.labelStyle(.iconOnly)
.labelStyle(.titleOnly)
.border(...)

// Does NOT work
.font(.largeTitle)
.foregroundColor(.blue)
I have checked the same style (or just modifiers) against a standard Label and they actually do work in the code below.
// This is an application token. Some style not applied.
Label(targetApp)
.labelStyle(MyStyle())
// Showing the same style using a simple label. All styles correctly applied.
Label("Twitter", systemImage: "video.square.fill")
.labelStyle(MyStyle())
Is changing the font + color of the title for this Label(_ applicationToken:) supported?
Topic:
App & System Services
SubTopic:
General
Tags:
Managed Settings
Family Controls
Device Activity
My CoreSpotlight extension seems to exceed the 6 MB memory limit. What’s the best way to debug this?
I've tried to attach the debugger on the Simulator but the extension seems to be never launched when I trigger the reindex from Developer settings. Is this supposed to work?
On device, I am able to attach the debugger. However, I can neither transfer the debug session to Instruments, nor display the memory graph. So I've no idea how the memory is used.
Any recommendations how to move forward? Is there a way to temporarily disable the memory limit since even with LLDB attached, the extension is killed.
I use WeatherKit with Swift to get multiple cities weather by longitude and latitude.
But I use this API in WeatherService for daily forecast:
final public func weather<T>(for location: CLLocation, including dataSet: WeatherQuery<T>) async throws -> T
And I found there is something wired: The date of WeatherKit::DayWeather is based on my device's timezone settings.
Tokyo's Day Weather is start at UTC+8, New York' Day Weather is start UTC+8.
Is there any way to set timezone correctly?
What I want to achieve now is that when the app is not running, upon receiving a notification, it displays an interface similar to CallKit with accept and decline buttons.
Here is part of my code:
@available(iOS 17.4, *)
class LiveCommunicationManager: NSObject, ConversationManagerDelegate {
static let shared = LiveCommunicationManager()
var isInvalidate:Bool = false
var configuration: ConversationManager!
override init() {
let config = ConversationManager.Configuration(
ringtoneName: "notes_of_the_optimistic",
iconTemplateImageData: UIImage(named: "AppIcon")?.pngData(), // 图标的 PNG 数据
maximumConversationGroups: 1, // 最大对话组数
maximumConversationsPerConversationGroup: 1, // 每个对话组内最大对话数
includesConversationInRecents: false, // 是否在通话记录中显示
supportsVideo: false, // 是否支持视频
supportedHandleTypes: [.generic,.phoneNumber,.emailAddress] // 支持的通话类型
)
configuration = ConversationManager.init(configuration: config)
}
func reportIncomingCall(uuid: UUID, callerName: String) {
configuration.delegate = self
let local = Handle(type: .generic, value: callerName, displayName: callerName)
let update = Conversation.Update(localMember: local,members: [local],activeRemoteMembers: [local])
Task{
do {
try await configuration.reportNewIncomingConversation(uuid: uuid, update: update)
print("成功报告新来电")
} catch {
print("报告新来电失败: \(error.localizedDescription)")
}
}
}
func conversationManager(_ manager: ConversationManager, conversationChanged conversation: Conversation) {
print("会话状态改变了")
}
func conversationManagerDidBegin(_ manager: ConversationManager) {
print("会话已经开始了")
manager.delegate = self
}
func conversationManagerDidReset(_ manager: ConversationManager) {
print("会话将要清除了")
}
func conversationManager(_ manager: ConversationManager, perform action: ConversationAction) {
print("会话接听了")
configuration.invalidate()
}
func conversationManager(_ manager: ConversationManager, timedOutPerforming action: ConversationAction) {
print("会话超时了")
}
func conversationManager(_ manager: ConversationManager, didActivate audioSession: AVAudioSession) {
print("会话激活了")
}
func conversationManager(_ manager: ConversationManager, didDeactivate audioSession: AVAudioSession) {
print("会话死亡了")
}
}
在Appdelegate里设置了这些:
func application(_ application: UIApplication,
didReceiveRemoteNotification userInfo: [AnyHashable: Any],
fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
// 在这里处理离线推送通知
completionHandler(.noData) // 返回后台任务完成
if let aps = userInfo["aps"] as? [String: Any],
let alert = aps["alert"] as? [String : Any]{
// 静默推送的处理逻辑
if #available(iOS 17.4, *) {
let manager = LiveCommunicationManager.shared
if manager.isInvalidate { return }
if let msgType = userInfo["msgType"] as? Int{
if msgType == 5{
manager.configuration.invalidate()
}else{
let callerName = alert["title"] as? String ?? "Fanvil"
manager.reportIncomingCall(uuid: UUID(), callerName: callerName)
}
}
}
}
}
Xcode has been configured with the necessary capabilities, such as Background Fetch, Voice over IP, Background Processing, and Push Notification.
The issue now is that sometimes the code works as expected, allowing the app to wake up when not running and displaying the system interface with accept and decline buttons. However, after a few successful attempts, the app stops waking up, and no notification appears. But when I manually open the app, the didReceiveRemoteNotification method gets triggered.
I’d like to know why this stops working after a few times.
Hello,
I'm trying to use CPBarButtons in trailingNavigationBarButtons and leadingNavigationBarButtons for a CPInformationTemplate, but the handler of the buttons is never called when the user presses them. Is this a known issue?