Overview

Post

Replies

Boosts

Views

Activity

Seemingly stalled app review process
Hey, I originally submitted a very small but important update of my app on Sunday night. It shifted to "In-Review" on Monday but then remained like that for about a full day. Therefore, I canceled the submission and sent in a new one on Tuesday morning. It is now Wednesday night, and the app is still sitting in "Waiting for Review." I just wanted to see if there have been changes to the way apps are reviewed recently, as I know there was a change to the actual app submission UI. I really want to get this update out to my users because it includes an important feature for retention. Thank you
1
0
90
12h
ScrollView breaks with LazyVGrid and Searchable on iOS 26 (only on older devices)
When using LazyVGrid within a ScrollView with the .searchable modifier, scrolling is impossible on iPhone 15 (I’m assuming other older devices are affected too). This behavior does not occur on iPhone 16 and newer. This also only happens, when the search bar is placed at the top, for example if the ScrollView is within a TabView. Here's a short screen recording of the issue: And this is a minimal example causing the issue: import SwiftUI struct ContentView: View { var body: some View { TabView { Tab("Text", systemImage: "gear") { ExampleTab() } } } } struct ExampleTab: View { @State private var searchText: String = "" var body: some View { NavigationStack { ScrollView { LazyVGrid( columns: [GridItem( .adaptive(minimum: 120) )], spacing: 20 ) { ForEach(1..<100) { index in Text("Test \(index)") } } } .searchable(text: self.$searchText) } } }
1
0
25
12h
What's wrong with tabbar color effect on iOS 26?
In my project, the window.rootViewController is a UITabBarController containing four UIViewControllers. The first, third, and fourth VCs are empty, while the second VC's view hierarchy is structured as follows: UIViewController.view ├── UIScrollView (contentSize: self.view.width * 2, 0; backgroundColor: .red) ├── UIScrollView (contentSize: 0, self.view.height * 2; backgroundColor: .black) └── UIScrollView (contentSize: 0, self.view.height * 2; backgroundColor: .white) When I switch to the second tab and horizontally scroll the scrollView, the tabBar color doesn't adapt to the current view's dominant color. However, if I launch the app and sequentially tap every tab before switching to the second tab, the tabBar color then changes dynamically during horizontal scrolling. But if I background the app and return, the tabBar reverts to black. Why does this happen? How can I either: Manually control the tabBar color, or Make it automatically match the page's dominant color? This issue occurs when the "Reduce Transparency" accessibility setting is enabled.
Topic: UI Frameworks SubTopic: UIKit
1
0
105
13h
Using MetricKit for Hangs on macOS
Hallo all, I did a test integration of MetricKit into one of our apps...I'am on macOS Ventura 13.3.1 (a). The app is not distributed via the App Store. I subscribed to the MXMetricManager and implemented the didReceiveDiagnosticPayloads function. So far everything seems to work, when I use in Xcode: Debug -> Simulate MetricKit Payload I get a callback and the payload. So I did some further testing. When I build the app debug version with a test crash and then run the Debug Version (without Xcode) and let it crash the next time I start the app I get a callback to didReceiveDiagnosticPayloads with all the information about the crash. But I'am not able to get a hang report. I tested it by adding a sleep (60) and adding some intensive computation work on the main thread so that it is busy for several seconds, I get no hang reports :-( I'am using the Debug version and run it without Xcode. Are hang reports expected to be reported immediately? I also get after 24 hours no hang reports. Can someone help me? Thanks and have a nice day!
1
1
1.2k
13h
System Accessories Misaligned After Trait Override in UITableViewCells or UICollectionViewCells
I'm encountering an issue with system accessories in UICollectionViewCells after overriding the trait collection. Specifically, the accessories are misaligned and shifted downwards. This issue occurs when using setOverrideTraitCollection (other trait override methods produce the same result). Interestingly, this doesn't happen with all accessories; for example, the disclosureIndicator is scaled correctly. If I don't use setOverrideTraitCollection (or other trait override methods), the system accessories scale as expected. Here's a code snippet demonstrating the issue. I have a "Fix Size" button that overrides the trait collection to a UITraitCollection with a UIContentSizeCategory of large. The "Follow Settings" button resets the trait collection, allowing the views to scale according to the system settings. import UIKit class ViewController: UIViewController { let button: UIButton = { let button = UIButton(type: .system) button.setTitle("Fix Size", for: .normal) return button }() let buttonRe: UIButton = { let button = UIButton(type: .system) button.setTitle("Follow Settings", for: .normal) return button }() var listItems: [Int] = [1, 2, 3, 4, 5] var collectionView: UICollectionView? override func viewDidLoad() { super.viewDidLoad() button.addTarget( self, action: #selector(ViewController.buttonTapped), for: .touchUpInside ) buttonRe.addTarget( self, action: #selector(ViewController.buttonTappedToRe), for: .touchUpInside ) view.backgroundColor = .white view.addSubview(button) view.addSubview(buttonRe) setupCollectionView() if let collectionView = collectionView { view.addSubview(collectionView) } } override func viewDidLayoutSubviews() { super.viewDidLayoutSubviews() collectionView?.frame = CGRect( x: 0, y: 0, width: view.bounds.width, height: view.bounds.height - 100 ) button.frame = CGRect( x: 0, y: view.bounds.height - 100, width: view.bounds.width / 2, height: 50 ) buttonRe.frame = CGRect( x: view.bounds.width / 2, y: view.bounds.height - 100, width: view.bounds.width / 2, height: 50 ) } @objc func buttonTapped() { setOverrideTraitCollection( UITraitCollection(preferredContentSizeCategory: .large), forChild: self ) } @objc func buttonTappedToRe() { setOverrideTraitCollection(nil,forChild: self) } private func updateCollectionViewLayout() { guard let collectionView = collectionView else { return } collectionView.collectionViewLayout.invalidateLayout() collectionView.performBatchUpdates(nil) collectionView.reloadData() } private func setupCollectionView() { var config = UICollectionLayoutListConfiguration(appearance: .insetGrouped) config.trailingSwipeActionsConfigurationProvider = { [weak self] indexPath in let deleteAction = UIContextualAction(style: .destructive, title: "Delete") { [weak self] _, _, completion in self?.deleteItem(at: indexPath) completion(true) } return UISwipeActionsConfiguration(actions: [deleteAction]) } let layout = UICollectionViewCompositionalLayout.list(using: config) let collectionView = UICollectionView(frame: view.bounds, collectionViewLayout: layout) collectionView.delegate = self collectionView.dataSource = self collectionView.register(UICollectionViewListCell.self, forCellWithReuseIdentifier: "cell") collectionView.isEditing = true self.collectionView = collectionView } private func deleteItem(at indexPath: IndexPath) { listItems.remove(at: indexPath.item) guard let collectionView = collectionView else { return } collectionView.deleteItems(at: [indexPath]) } override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) { super.traitCollectionDidChange(previousTraitCollection) if previousTraitCollection?.preferredContentSizeCategory != traitCollection.preferredContentSizeCategory { updateCollectionViewLayout() } } } extension ViewController: UICollectionViewDataSource { func numberOfSections(in collectionView: UICollectionView) -> Int { return 1 } func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { return listItems.count } func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell", for: indexPath) as! UICollectionViewListCell var content = UIListContentConfiguration.valueCell() content.text = "Item \(listItems[indexPath.item])" cell.contentConfiguration = content cell.accessories = [.delete( options: UICellAccessory.DeleteOptions( reservedLayoutWidth: .custom(50) ) )] return cell } } extension ViewController: UICollectionViewDelegate { func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { collectionView.deselectItem(at: indexPath, animated: true) } } The attached screenshot illustrates the misalignment that occurs after tapping the 'Fix Size' button, with the system accessibility text size set to accessibilityExtraExtraExtraLarge setting Has anyone else experienced this issue or have suggestions on how to resolve it? Any help would be greatly appreciated!
0
0
38
13h
Xcode Cloud 26b7 Metal Compilation Failure
I've been getting intermittent failures on Xcode code compiling my app on multiple platforms because it fails to compile a metal shader. The Metal Toolchain was not installed and could not compile the Metal source files. Download the Metal Toolchain from Xcode > Settings > Components and try again. Sometimes if I re-run it, it works fine. Then I'll run it again, and it will fail. If you tell me to file a feedback, please tell me what information would be useful and actionable, because this is all I have.
6
2
202
13h
Get update token from the OS when the Live Activity is started from the backend, without the user explicitly providing "Allow" or "Always Allow" consent from the lock screen
We are currently using Live Activities in our app and supporting both of the following use cases: Starting a Live Activity directly from the app using ActivityKit APIs. Starting a Live Activity from the backend using the start token. In the first case (initiated from the app), the OS generates an update token, and we are able to continuously update the Live Activity via our backend—even if the user has not explicitly provided "Allow" or "Always Allow" consent from the lock screen. This works as expected. In the second case (initiated from the backend), if the user does provide consent ("Allow" or "Always Allow") from the lock screen, we receive the update token and can continue updating the Live Activity. However, if the user does not provide consent, the OS does not provide the update token, and we are unable to send further updates. Question: Is it possible to receive the update token from the OS when the Live Activity is started from the backend, without the user explicitly providing "Allow" or "Always Allow" consent from the lock screen? We would appreciate any clarification or official documentation related to this behavior. Thank you!
0
0
45
13h
Menu presentation in UIHostingController issues
Looking to see if anyone has experienced this issue, and is aware of any workarounds. With an app migrating towards SwiftUI Views but still using UIKit for primary navigation, my app makes use of UIHostingController to push SwiftUI Views onto a UINavigationController stack in a lot of areas. With iOS 26, I notice that SwiftUI's Menu view really struggles to present when contained in a UIHostingController. An error is logged to the console on presentation, and depending on the UI, the Menu won't present inside of it's container, or will jump around the screen. The bug, it seems is based in a private class UIReparentingView and I am curious if anyone has found a work around for this issue. The error reported is: Adding '_UIReparentingView' as a subview of UIHostingController.view is not supported and may result in a broken view hierarchy. Add your view above UIHostingController.view in a common superview or insert it into your SwiftUI content in a UIViewRepresentable instead. The simplest way to see this issue is to create a new storyboard based project. From the ViewController present a UIHostingController with a SwiftUI view that has a Menu and then simply tap to open the Menu. Thanks for any input!
5
1
104
13h
Unable to find a destination matching the provided destination specifier
Xcode build done. 0.7s Failed to build iOS app Uncategorized (Xcode): Unable to find a destination matching the provided destination specifier: { id:42969747-3560-448B-8EB3-CB5ED88D75C1 } Available destinations for the "Runner" scheme: { platform:macOS, arch:arm64, variant:Designed for [iPad,iPhone], id:00008132-0004256C34A1801C, name:My Mac } { platform:iOS, id:dvtdevice-DVTiPhonePlaceholder-iphoneos:placeholder, name:Any iOS Device } { platform:iOS Simulator, id:dvtdevice-DVTiOSDeviceSimulatorPlaceholder-iphonesimulator:placeholder, name:Any iOS Simulator Device } Could not build the application for the simulator. Error launching application on iPhone 17.
1
0
30
13h
Inaccessible background of the system keyboard in iOS 26 (liquid glass)
When preparing the app for the new iOS 26, I came across an unpleasant design decision. Specifically, in the new design, the keyboard has rounded corners, under which the system background is visible. And here we have only two options, a light/dark background, which breaks all keyboard calls in the application. Can you tell me if there is any way around this problem?
0
0
22
13h
How Does App Store Search Ranking Work for Utility Apps (Cleaner/Optimizer)?
Hi Everyone, I’ve recently launched a utility app focused on cleaning, optimizing, and improving device performance while protecting user privacy. It includes features like Junk cleaning, Duplicate/Large/Old file removal, App Uninstallation/Updater, Browser cleanup, and Startup Management tips. I’m trying to better understand how App Store search ranking works for this type of app so it can feature higher in search results. Specifically, I’d like to know: What factors influence whether an app shows up at the top for keywords like “storage cleaner”, “duplicate finder”, or “privacy cleaner”? How important are title, subtitle, and keyword fields compared to downloads, ratings, and reviews? Does keyword repetition in the description improve ranking, or does Apple ignore that? Are there any proven strategies for utility apps (like system optimizers/cleaners) to compete with big, established apps in search visibility? Does localization (multiple languages) significantly improve search exposure, even if the app is English-first? I want to make sure I’m optimizing everything correctly—title, subtitle, keywords, and descriptions—without wasting character space or doing anything that Apple might flag. Any guidance, best practices, or resources on App Store search optimization (ASO) specifically for cleaner/duplicate/optimizer apps would be hugely appreciated! https://apps.apple.com/us/app/dustbyte/id6751766823 Thanks in advance 🙏
0
0
38
13h
Created a free ASO analysis tool to help indie iOS developers
I built the Appvector tool – aso.report, a completely free ASO analysis platform designed to help indie developers easily improve their App Store listings without complex metrics or costly subscriptions. Just paste your app’s URL to get instant insights, multi-country analysis, and actionable recommendations - making ASO simple, accessible, and effective for everyone.
1
0
35
13h
Payment screen not loading for app subscription
Hi All i have developed an app but when I go to download the paywall appears as it’s subscription only but it shows no prices for the subscription I get an endless swirl. I checked the product id etc and it’s correct but the subcription on my App Store Connect shows as approved. is there another status it needs to reach before it becomes like like ready for sale? https://apps.apple.com/gb/app/gameaware-pro/id6751592563
0
0
15
13h
iOS 26 Beta bug - keyboard toolbar with bottom safe area inset
Hello! I have experienced a weird bug in iOS 26 Beta (8) and previous beta versions. The safe area inset is not correctly aligned with the keyboard toolbar on real devices and simulators. When you focus a new textfield the bottom safe area is correctly placed aligned the keyboard toolbar. On real devices the safe area inset view is covered slightly by the keyboard toolbar, which is even worse than on the simulator. Here's a clip from a simulator: Here's the code that reproduced the bug I experienced in our app. #Preview { NavigationStack { ScrollView { TextField("", text: .constant("")) .padding() .background(Color.secondary) TextField("", text: .constant("")) .padding() .background(Color.green) } .padding() .safeAreaInset(edge: .bottom, content: { Color.red .frame(maxWidth: .infinity) .frame(height: 40) }) .toolbar { ToolbarItem(placement: .keyboard) { Button {} label: { Text("test") } } } } }
1
9
316
13h
The bottom tab bar appears after using the keypad in OS26.
hi Testing on OS26 Public Beta 6. In Safari, if you enter x homepage and scroll, the tab bar sticks to the bottom and moves. Make the keyboard appear in the search window When scrolling down on the Safari homepage again, the issue of not being able to stick to the bottom appears. Is it because the liquid glass UI was applied this time? and safari bug? Please let me know if I'm missing anything
Topic: Safari & Web SubTopic: General
3
1
870
13h
Failed to find a DDI
Hello! When launching/debugging on my iPad and iPhone I keep getting the following error: “Previous preparation error: Failed to find a DDI … Run ‘devicectl list preferredDDI’ …” I believe this was caused by a previously interrupted Xcode update around June due to low disk space, which may have left DeviceSupport/DDI/CoreDevice files incomplete. Even after finishing the update later, the error persists. I now use a new Mac with 4 TB of storage, but the issue still occurs. Since then I have unfortunately been blocked from testing or presenting my app on devices. It seems that only a new, fully completed Xcode update might resolve the problem. Tried so far: – Cleared caches (CoreDevice/Devices) – Reset trust on device and re-paired – Checked devicectl list preferredDDI I would really appreciate guidance, as at the moment I cannot present my app due to this blocking issue. Thank you very much for your support!
7
1
282
13h