In our project, we defined a CustomTabBar that inherits UITabBar, and we add some subviews and these subviews' frame is beyond UITabBar, see below picture(a beyond area button, this button is a subview of UITabBar, but frame is out of UITabBar's area):
and in order to let this button response to click action, we override the UITabBar's hitTest method, this works well below OS 26 with Xcode version below 26:
override public func hitTest(_ point: CGPoint, with event: UIEvent?) -> UIView? {
let pointInCollectionView = self.beyondAreaButton.convert(point, from: self)
if self.beyondAreaButton.bounds.contains(pointInCollectionView) {
return self.beyondAreaButton.hitTest(pointInCollectionView, with: event)
}
return super.hitTest(point, with: event)
}
but when using Xcode26 build app on OS 26, I noticed the UITabBar is wrapped by a UIKit._UITabBarContainerView and UIKit._UITabBarContainerWrapperView, and it can not trigger the hitTest method.
since the hitTest is not triggered, so the button action is no chance to trigger too.
Any suggestions to solve this problem, thank you~
And I have file a feedback assistant: FB19252973
Posts under iOS tag
200 Posts
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
Dear Apple Technical Support Team,
We have encountered a potential issue related to transaction handling while using StoreKit v2, and would greatly appreciate your assistance in confirming the behavior or providing any relevant guidance.
Issue Description:
When calling Transaction.unfinished and listening to Transaction.updates on the client side, we noticed that some transactions—despite having already been processed and successfully completed with finish()—are being returned again upon the next app launch, which results in duplicate receipt uploads.
Current Handling Flow:
1. Upon app launch:
• Iterate over Transaction.unfinished to retrieve unfinished transactions;
• Simultaneously listen for transaction changes via Transaction.updates (e.g., renewals, refunds);
2. For each verified transaction, we immediately call await transaction.finish();
3. We then construct a transaction model, store it locally, and report it to our backend for receipt verification;
4. After the server successfully verifies the receipt, the client deletes the corresponding local record;
5. On every app launch, the client checks for any locally stored receipts that haven’t been uploaded, and re-uploads them if necessary.
Key Code Snippets:
private static func verifyReceipt(receiptResult: VerificationResult) -> Transaction? {
switch receiptResult {
case .unverified(_, _):
return nil
case .verified(let signedType):
return signedType
}
}
public static func handleUnfinishedTransactions(payConfig: YCStoreKitPayConfig, complete: ((YCStoreKitReceiptModel?) -> Void)?) {
Task.detached {
for await unfinishedResult in Transaction.unfinished {
let transaction = YCStoreKitV2Manager.verifyReceipt(receiptResult: unfinishedResult)
if let transaction {
await transaction.finish()
if transaction.revocationDate == nil {
let receipt = YCStoreKitV2Manager.createStoreKitReceiptModel(
transation: transaction,
jwsString: unfinishedResult.jwsRepresentation,
payConfig: payConfig,
isRenew: false
)
complete?(receipt)
}
}
}
}
}
private func observeTransactionUpdates() -> Task<Void, Never> {
return Task {
for await updateResult in Transaction.updates {
let transaction = YCStoreKitV2Manager.verifyReceipt(receiptResult: updateResult)
if let transaction {
await transaction.finish()
if transaction.revocationDate == nil {
let receipt = YCStoreKitV2Manager.createStoreKitReceiptModel(
transation: transaction,
jwsString: updateResult.jwsRepresentation,
payConfig: self.payConfig,
isRenew: false
)
self.callProgressChanged(.receiptPrepared, receiptModel: receipt, errorType: .none, error: nil)
}
}
}
}
}
Our Questions:
1. Is it possible for Transaction.unfinished or Transaction.updates to return transactions that have already been finished?
Specifically, if a transaction was successfully finished in a previous app launch, could it still be returned again during the next launch?
2. Are there any flaws in our current handling process?
Our current sequence is: finish() → construct model → local save → report to server → delete after verification. Could this order lead to timing issues where StoreKit considers a transaction unfinished?
3. If we need your assistance in investigating specific user transaction records or logs, what key information should we provide?
We greatly appreciate your support and look forward to your response to help us further optimize our transaction processing logic.
This bundle is invalid. The IPA format requires a top-level directory named Payload, containing only a .app bundle and optional plugins in a Plugins directory. (ID: df59dbe4-17e5-4bc6-9c69-8645672320(4))
Hello,
Is there any way to detect if the iOS screen is currently being shared via FaceTime or iPhone Mirroring?
Our application relies on this information to help ensure that users are not accessing it from one location while physically being in another.
when using CNContactViewController to present a contact detail info, the system CNContactViewController appear some UI issues.
On iOS 26, the Poster avatar overlaps with the title "Edit device contact"
On iPadOS26 with device(not simulator), when click 'Add photo', the CNContactViewController will auto dismiss, and the console output some error log:
below are the sample code:
AppDelegate.swift:
import UIKit
@main
class AppDelegate: UIResponder, UIApplicationDelegate {
let window: UIWindow = UIWindow()
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
let vc = SplitViewController(primary: TabBarViewController(), secondary: ViewController())
window.rootViewController = vc
window.makeKeyAndVisible()
return true
}
}
SplitViewController.swift:
import UIKit
class SplitViewController: UISplitViewController {
init(primary: UIViewController, secondary: UIViewController) {
super.init(nibName: nil, bundle: nil)
preferredDisplayMode = .oneBesideSecondary
presentsWithGesture = false
delegate = self
viewControllers = [primary, secondary]
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
override func viewDidLoad() {
super.viewDidLoad()
}
}
extension SplitViewController: UISplitViewControllerDelegate {
}
TabBarViewController.swift:
import UIKit
class BaseViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
}
class HomeViewController: BaseViewController {
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = .red
navigationItem.title = "Home"
tabBarItem = UITabBarItem(title: "Home", image: UIImage(systemName: "house"), tag: 0)
}
}
class TabBarViewController: UITabBarController {
override func viewDidLoad() {
super.viewDidLoad()
let homeVC = HomeViewController()
let homeNav = UINavigationController(rootViewController: homeVC)
viewControllers = [homeNav]
ContactManager.shared.getAllContactIdentifiers()
}
}
ViewController.swift:
import UIKit
import Contacts
import ContactsUI
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = .systemPink
let button = UIButton(frame: .zero)
button.backgroundColor = .orange
button.setTitle("show contact", for: .normal)
button.addTarget(self, action: #selector(showContactInfo), for: .touchUpInside)
button.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(button)
button.widthAnchor.constraint(equalToConstant: 200).isActive = true
button.heightAnchor.constraint(equalToConstant: 60).isActive = true
button.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true
button.centerYAnchor.constraint(equalTo: view.centerYAnchor).isActive = true
}
@objc private func showContactInfo() {
print("showContactInfo")
let identifier = ContactManager.shared.identifiers[0]
let currentContact = try? CNContactStore().unifiedContact(withIdentifier: identifier, keysToFetch: [CNContactViewController.descriptorForRequiredKeys()])
guard let contact: CNMutableContact = currentContact?.mutableCopy() as? CNMutableContact else {
return
}
let vc = CNContactViewController(forNewContact: contact)
vc.delegate = self
vc.title = "Edit Device Contact"
vc.allowsActions = false
vc.contactStore = CNContactStore()
let navigationVC: UINavigationController = UINavigationController(rootViewController: vc)
let appDelegate = UIApplication.shared.delegate as? AppDelegate
appDelegate?.window.rootViewController?.present(navigationVC, animated: true, completion: nil)
}
}
extension ViewController: CNContactViewControllerDelegate {
public func contactViewController(_ viewController: CNContactViewController, didCompleteWith contact: CNContact?) {
viewController.dismiss(animated: true, completion: nil)
}
}
Hello,
I have a question regarding the new battery usage interface in iOS 26.
As shown in the attached screenshot, the system displays battery usage per app as a percentage (%).
I’m curious about how this percentage is calculated.
From what I can tell, it doesn’t seem to reflect the actual battery consumption per process, excluding the device’s base standby power.
It rather appears to be calculated as a relative percentage based on total battery drain, possibly including system idle power.
Is there any way to understand or estimate the actual battery usage per app, excluding the device’s inherent standby power consumption?
Thank you.
In iOS 26 beta 4 (build from July 2025), there is a visual issue when using a UISplitViewController. Specifically, the text color of labels in the primary column does not adapt correctly to Dark Mode. This includes navigation bar titles and labels inside UITableViewCells. Regardless of system appearance settings, the text remains black, making it unreadable when the system switches to Dark Mode.
To reproduce this, create a new iOS project using UISplitViewController with the .doubleColumn style. In the primary column, embed a UIViewController that contains a navigation title using navigationItem.title, and a UITableView showing a list of items. Run the app on a device or simulator with iOS 26 beta 4. Then switch the system appearance to Dark Mode using Control Center and observe the interface.
The expected result is that all labels in the primary column, including the navigation title and table view cell labels, should automatically update to a light text color in Dark Mode. This behavior works correctly in iOS 18. However, the actual result is that all these labels remain black, leading to poor visibility in Dark Mode and ignoring the system’s appearance setting.
https://feedbackassistant.apple.com/feedback/19194379
Our app connects to the headend to get a IDP login URL for each connection session, for example: “https://myvpn.ocwa.com/+CSCOE+/saml/sp/login?ctx=3627097090&acsamlcap=v2” and then open embedded webview to load the page. (Note: the value of ctx is session token which changes every time). Quite often the webview shows blank white screen. After user cancel the connection and re-connect, the 2nd time webview loads the content successfully.
The working case logs shows:
didReceiveAuthenticationChallenge is called
decidePolicyForNavigationAction is called twice
didReceiveAuthenticationChallenge is called
decidePolicyForNavigationResponse is called
didReceiveAuthenticationChallenge is called
But the failure case shows:
Filed to terminate process: Error Domain=com.apple.extensionKit.errorDomain Code=18 "(null)" UserInfo={NSUnderlyingError=0x11461c240 {Error Domain=RBSRequestErrorDomain Code=3 "No such process found" UserInfo={NSLocalizedFailureReason=No such process found}}}
didReceiveAuthenticationChallenge is called
decidePolicyForNavigationAction is called
decidePolicyForNavigationResponse is called
If we stop calling evaluateJavaScript code to get userAgent, the blank page happens less frequently. Below is the code we put in makeUIView():
func makeUIView(context: Context) -> WKWebView
{
if let url = URL(string: self.myUrl)
{
let request = URLRequest(url: url)
webview.evaluateJavaScript("navigator.userAgent")
{
result, error in
if let error = error
{
NSLog("evaluateJavaScript Error: \(error)")
}
else
{
let agent = result as! String + " " + self.myUserAgent
webview.customUserAgent = agent
webview.load(request)
}
}
}
return self.webview
}
Found some posts saying call evaluateJavaScript only after WKWebView has finished loading its content. However, it will block us to send the userAgent info via HTTP request. And I don’t think it is the root cause since the problem still occurs with less frequency.
There is no problem to load same web page on Windows desktop and Android devices. The problem only occurs on iOS and macOS which both use WKWebview APIs.
Is there a bug in WKWebview?
Thanks,
Ying
Hey everyone,
Just wanted to share a critical issue we’ve encountered while testing our app on iOS 18 simulators and devices using Xcode 26 Beta 3:
Crash Details
We're seeing the following fatal exception during launch:
NSInvalidUnarchiveOperationException
Could not instantiate class named _TtGC5UIKit17UICoreHostingViewVCS_21ToolbarVisualProvider8RootView_ because no class named _TtGC5UIKit17UICoreHostingViewVCS_21ToolbarVisualProvider8RootView_ was found...
The crash originates from Storyboards/XIBs that include a UIToolbar. It appears UIKit is referencing an internal SwiftUI-related class (UICoreHostingView), which isn't present at runtime — leading to immediate crashes.
Affected:
Apps using UIToolbar in Storyboards or XIBs
Running on iOS 18 (Simulators or Devices) and below
Built using Xcode 26 Beta 3
CrashLog:
Fatal Exception: NSInvalidUnarchiveOperationException
0 CoreFoundation 0x11a21c __exceptionPreprocess
1 libobjc.A.dylib 0x31abc objc_exception_throw
2 CoreFoundation 0x178ea0 -[NSException initWithCoder:]
3 UIFoundation 0x28774 UINibDecoderDecodeObjectForValue
4 UIFoundation 0x28a18 UINibDecoderDecodeObjectForValue
5 UIFoundation 0x28cac -[UINibDecoder decodeObjectForKey:]
6 UIKitCore 0x21e680 -[UIView initWithCoder:]
7 UIKitCore 0x9b4784 -[UIToolbar initWithCoder:]
8 UIFoundation 0x28890 UINibDecoderDecodeObjectForValue
9 UIFoundation 0x28cac -[UINibDecoder decodeObjectForKey:]
10 UIKitCore 0x1e3a80 -[UIRuntimeConnection initWithCoder:]
11 UIFoundation 0x28890 UINibDecoderDecodeObjectForValue
12 UIFoundation 0x28a18 UINibDecoderDecodeObjectForValue
13 UIFoundation 0x28cac -[UINibDecoder decodeObjectForKey:]
14 UIKitCore 0x1e87dc -[NSCoder(UIIBDependencyInjectionInternal) _decodeObjectsWithSourceSegueTemplate:creator:sender:forKey:]
15 UIKitCore 0x1e2ea4 -[UINib instantiateWithOwner:options:]
16 UIKitCore 0x9f96c -[UIViewController loadView]
17 UIKitCore 0x75da8 -[UIViewController loadViewIfRequired]
18 UIKitCore 0x14430 -[UIViewController view]
19 UIKitCore 0x4237bc -[UINavigationController _preferredContentSizeForcingLoad:]
20 UIKitCore 0x116b15c -[_UISheetPresentationMetrics formSheetSizeForViewController:windowSize:screenSize:]
21 UIKitCore 0xb5c60c -[UIViewController _formSheetSizeForWindowWithSize:screenSize:]
22 UIKitCore 0x546ebc -[_UISheetLayoutInfo _preferredSize]
23 UIKitCore 0x18da60 -[_UISheetLayoutInfo _isEdgeAttached]
24 UIKitCore 0x19d428 -[_UISheetLayoutInfo _margins]
25 UIKitCore 0x19ce88 -[_UISheetLayoutInfo _stackAlignmentFrame]
26 UIKitCore 0x211018 -[_UISheetLayoutInfo _fullHeightUntransformedFrame]
27 UIKitCore 0x18f39c -[_UISheetLayoutInfo _untransformedFrame]
28 UIKitCore 0x188350 -[UISheetPresentationController _containerViewLayoutSubviews]
29 UIKitCore 0x18f1fc -[UITransitionView layoutSubviews]
30 UIKitCore 0x26070 -[UIView(CALayerDelegate) layoutSublayersOfLayer:]
31 QuartzCore 0x14c14 CA::Layer::layout_if_needed(CA::Transaction*)
32 UIKitCore 0x16b78 -[UIView(Hierarchy) layoutBelowIfNeeded]
33 UIKitCore 0x186f4c -[UISheetPresentationController presentationTransitionWillBegin]
34 UIKitCore 0x3187b4 -[_UIFormSheetPresentationController presentationTransitionWillBegin]
35 UIKitCore 0x185dd0 __80-[UIPresentationController _initViewHierarchyForPresentationSuperview:inWindow:]_block_invoke
36 UIKitCore 0x1874f8 __77-[UIPresentationController runTransitionForCurrentStateAnimated:handoffData:]_block_invoke_3
37 UIKitCore 0x8584c -[_UIAfterCACommitBlock run]
38 UIKitCore 0x85784 -[_UIAfterCACommitQueue flush]
39 UIKitCore 0xa254 _runAfterCACommitDeferredBlocks
40 UIKitCore 0x9f74 _cleanUpAfterCAFlushAndRunDeferredBlocks
41 UIKitCore 0x9e84 _UIApplicationFlushCATransaction
42 UIKitCore 0x9e0c __setupUpdateSequence_block_invoke_2
43 UIKitCore 0x9404 _UIUpdateSequenceRun
44 UIKitCore 0x8ab4 schedulerStepScheduledMainSection
45 UIKitCore 0x41e4 runloopSourceCallback
46 CoreFoundation 0xfa8c __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__
47 CoreFoundation 0xf8a4 __CFRunLoopDoSource0
48 CoreFoundation 0xf700 __CFRunLoopDoSources0
49 CoreFoundation 0x10080 __CFRunLoopRun
50 CoreFoundation 0x11c3c CFRunLoopRunSpecific
51 GraphicsServices 0x1454 GSEventRunModal
52 UIKitCore 0x135274 -[UIApplication _run]
53 UIKitCore 0x100a28 UIApplicationMain
54 Saleslink DEV 0x1f9ea8 main + 17 (AppDelegate.swift:17)
55 ??? 0x1af61bf08 (Missing)
Would love to know if anyone else has encountered this, or if there’s an official radar or feedback ID we can follow. Hoping this gets resolved before the GM release of Xcode 26.
Thanks!
was that Spokane, Washington my fresh my fresh basket and they’re using a expired Wi-Fi certification domain through godaddy.com that expire April 30, 2020 I have a complete information on it if anybody needs me to forward it or wants to examine it their selves but be wary when you connected to the Wi-Fi over at my fresh basket at in Spokane, Washington
The attached file bellow contains the full error
error
I clone this repo to my mac, change team id and group, and run it in Xcode: https://github.com/protonpass/ios-pass
There's no issue when I ran it with the Debug configuration, but when I go to Product > Scheme > Edit Scheme and change the iOS target build configuration to Release then I got that error above.
I have tried Archive and export the ipa, verify that the provisioning profile contains my Mac UDID, but when double clicking the ipa to install, I also got the error This app cannot be installed because its integrity could not be verified.
When attempting to open sysdiagnose logs collected from an iPhone running iOS 26 beta 3 on macOS Console, the application consistently crashes.
Crash report has been added for reference.
Apple Feedback- FB18834450
Pretty much the title. I am a noob in apple app development and currently starting it out. I got stuck in this. Can anyone let me know that how can i generate the token for starting live activity in terminated state? I have tried multiple times to find that this one is not working in terminated state. How can I overcome this? Is there any solution or workaround?
Topic:
App & System Services
SubTopic:
Widgets & Live Activities
Tags:
iOS
iPhone
Notification Center
WidgetKit
On WWDC25 session "Meet Liquid Glass", two Liquid Glass variants are mentioned: "regular" and "clear". "Regular" seems to be the default setting for UIGlassEffect, but I was not able to find an option for clear.
Is there a native element that uses clear? Is it coming to later betas for iOS 26?
I'm encountering an issue with our legacy Objective-C codebase that uses UIApplicationDelegate.
Here are the steps to reproduce the issue:
Uninstall the application from the device.
Install and launch the application.
As part of the launch event, the client requests notification permission.
The permission prompt is still displayed, even though the client receives a remote notification token (which appears to be a cached one).
I followed the same steps with a sample app built with Swift (SwiftUI), and this issue did not occur. In the Swift app, I consistently received a delegate<didRegisterForRemoteNotificationsWithDeviceToken> call after the user allowed the notification permission.
Could you please provide some insights into why this might be happening with only our client?
Topic:
App & System Services
SubTopic:
Notifications
Tags:
APNS
iOS
Notification Center
User Notifications
Good day everyone.
I have a react native app which works on dev mode on my device - Iphone 13 pro version: 18.5, but when deployed to TestFlight and installed on same device it crashes when ever I click on any TextInput. I downloaded the crash file but finding it difficult to pinpoint the problem.
I want to know what the problem is, if it's related to an installed package or code base or any other.
Any help will be appreciated!!!
Thanks.
crashlog.crash
Visual Studio 2022 is attempting to use port 11000 instead of 62078, but the port on iOS 18.5 is not listening for VS's Hot Reloading. Is this allowable? If so, how?
I have attached two images of two screens below. In one screen, bar button are enclosed within separate, distinct, rounded-rectangle 'liquid glass' capsules. In other screen, bar buttons are enclosed within separate, distinct, rounded-rectangle "liquid glass" capsules. They are not visually merged into one larger capsule.
Both are having same code. But why it is not same ?
We are using a TabView as the TabBarController in our app for main navigation. On one of the tabs we have a view that consists of a TabView with .tabViewStyle(.page) in order to scroll horizontally between pages inside of that specific tab.
The .tabBarMinimizeBehavior(.onScrollDown) works on all the other TabItem views, but for this one it does not recognise any vertical scrolling in any of the pages, in order to minimize the TabBar.
I believe this is a bug? If we don't wrap the views inside the TabView with .page style, we are able to get the expected behaviour using the tabBarMinimizeBehavior.
Please let us know if this is going to be fixed in a future iOS 26 beta release.
We have a client with an application that includes a main application, NSEs (Notification Service Extensions) as an extension, and framework1 embedded within the main application.
The NSEs also require framework1 as a dependency. When we embedded framework1 within the NSEs, the App Store Connect validation failed with the following error:
Validation failed (409)
CFBundleIdentifier Collision. There is more than one bundle with the CFBundleIdentifier value 'com.test.xyz-LoggerUtility' under the iOS application 'test.app'. (ID: -----------)
We've observed an issue specifically when uploading to App Store Connect. We're able to debug and distribute the application without any problems using our enterprise distribution.
Topic:
App Store Distribution & Marketing
SubTopic:
App Store Connect
Tags:
iOS
Frameworks
Bundle ID
App Store Connect