Post

Replies

Boosts

Views

Activity

SplitViewController removed the ability to have a side menu on iPhone
Sometime pre-iOS 26 it was possible to use a SplitViewController so that on iPhone you saw the master as a side menu (e.g. hamburger), and the detail full screen. While on iPad you would see the master displayed in a sidebar that could be closed, with the detail fullscreen. This has changed, using a SplitViewController on iPhone now forces you into having 2 fullscreen screens, with a push/pop layout and a back button. In situations where you want the detail screen to open first, this results in users opening the app to find a back button already presented, despite having not navigated anywhere. They must "return" to a screen they never saw. I really despise this layout and find it to be quite a UX issue. But given the new iPhone Duo, using the SplitViewController is now one of the easiest ways to maintain the necessary responsiveness needed, forcing us to accept this behaviour on regular iPhones. Can we PLEASE get the old functionality back, where we can explicitly state on iPhone that the master will always be displayed as a menu?
1
0
368
1h
Custom floating bottom right button
I have a floating bottom right button in my app (similar to twitter/x's blue compose button). I have no tab bar. When moving to the duo, this floating button now appears to the left of an empty tabbar/toolbar area on the right of the device. Ideally I want it to be inside the new tabbar/toolbar area when on the duo, as otherwise its wasted space. Is there anything new/inbuilt that I can leverage to manage this? Can I put my button into some container somewhere so that its the bottom right of the screen on an iPhone and automatically move to the toolbar area on duo? Something like a single item, right aligned, tabbar would be a great option. But the new liquid glass tabbar comes with too many restrictions on colors/styling I'm trying to find a way to avoid having logic like this in the app, as device specific logic becomes a maintenance issue int he future: if device == duo { // create toolbar button } else { // create button button and appen } d to window
Topic: UI Frameworks SubTopic: UIKit
3
2
620
3w
SplitViewController not displaying unfold animation
I'm using a 2 column SplitViewController, with preferredDisplayMode = .oneBesideSecondary Running it on the duo simulator in device hub, everything works, but i'm not seeing that cool animation when it unfolds, that the inner screen already has the content open. Opening it, the screen goes black, and then the fullsized splitview appears. Close it, screen goes black, and it reverts to showing the only the master. Is this a limitation of the simulator or an issue with the setup? Its hard to tell due to the limited apps installed on the new simulator
Topic: UI Frameworks SubTopic: UIKit
0
0
63
Sep ’26
Customise UITabBar on iPadOS 26+
I'm building an app with a UISplitViewController as the base, with the main content being a UITabBarController. I'm targeting iOS 26+ and using UIKit. I've customised the tabbar on iOS to have a different font family and size, and used some custom images. Running the same app on iPad, the tabbar moves to the top of the screen, ignores ALL the appearance proxy settings and strips out the images. Its now just giant floating text. Also noticed in portrait mode when the side bar from the split view is open, it compresses the width of the tab bar down to only show 2 elements at a time, with this weird custom scroll thing to move to the rest of the tabs. If the text wasn't so massive, maybe it could fit more. I really hate every inch of this thing. Its looks ugly and functions bizarrely. Why does it ignore all the tabbar appearance settings, and how can I customise it to add icons back with smaller text? Ideally I don't want to use one of the hacks to force it to think its compact mode to bring back the old tabbar, as i'm relying on traits already to fix some SplitView annoyances and don't want those to break. But would love to have the old tab bar style. Are there any settings or toggles that I can use?
0
0
1.1k
Jun ’26
UIKit.ButtonBarButtonVisualProvider not key value coding-compliant for the key _titleButton
After updating to Xcode 26 my XCUITests are now failing as during execution exceptions are being raised and caught by my catch all breakpoint These exceptions are only raised during testing, and seem to be referencing some private internal property. It happens when trying to tap a button based off an accessibilityIdentifier e.g. accessibilityIdentifier = "tertiary-button" ... ... app.buttons["tertiary-button"].tap() The full error is: Thread 1: "[<UIKit.ButtonBarButtonVisualProvider 0x600003b4aa00> valueForUndefinedKey:]: this class is not key value coding-compliant for the key _titleButton." Anyone found any workarounds or solutions? I need to get my tests running on the liquid glass UI
3
4
1.4k
Apr ’26
xcrun altool picking the wrong bundle id
I have 2 app store connect apps: "" ".beta" This is necessary for our usecase as we are building an iOS blockchain wallet, for a chain that updates itself every ~3 months adding new features/changing. We need the communities input, and can't have them uninstalling/re-installing the production app constantly, having to re-import private keys, etc. So we use 1 app store connect app for production releases, and another for public facing long running beta, where we experiment with new features before pulling them into production. Allowing users to have both installed at the same time Last week my CI (without any changes to scripts, project, profiles, etc), started failing for the production build with the error: [altool.105176BE0] Validation failed (409) This bundle is invalid. The bundle identifier cannot be changed from the current value, '<bundle-id>.beta'. If you want to change your bundle identifier, you will need to create a new application in App Store Connect. (ID: ae60bab4-0c01-4b2e-9ea9-91a73adccc14) Nowhere in any of the .app, .ipa, info.plist, provisioning profiles, etc, is it referencing ".beta", everything is referencing "" I tried building it manually locally, same error. I took the local output that failed with xcrun altool, and instead dropped it into Transporter, and it uploaded successfully to the production app Is it possible that xcrun altool is using an app store connect API that changed sometime in the last few weeks? Maybe the search/sort ordering logic has changed?
3
2
1.2k
Oct ’25
iOS 26 applying blur to UIView in navigationBar
Using a storyboard, I created a UIView containing an UIImageView and a UILabel, that I dragged into the navigation bar of one of my viewControllers. In my viewDidLoad I transform the view to move it down past the bounds of the navigation bar so its hidden initially navBarMiddleView.transform = .init(translationX: 0, y: 50) Then as the screen scrolls, I slowly move it up so it slides back into the middle of the navigationBar func scrollViewDidScroll(_ scrollView: UIScrollView) { let padding: CGFloat = 70 let adjustedOffset = (scrollView.contentOffset.y - padding) navBarMiddleView.transform = .init(translationX: 0, y: max(0, (50 - adjustedOffset))) } (The content is displayed in a collectionView cell as large content initially, and I want it to remain visible as the user scrolls down. So a mini view of the same data is moved up into the navigationBar) With iOS 26 the navigationBar is applying a blur effect to this view, even when its outside the bounds of the navigationBar, meaning the content its hovering on top of is slightly obscured. I don't know why this blur is being added, how do I remove it? I've tried the following based on recommendations from chatGPT but none have worked self.navigationController?.navigationBar.clipsToBounds = true self.navBarMiddleView.layer.allowsGroupOpacity = false self.navBarMiddleView.backgroundColor = .clear self.navBarMiddleView.isOpaque = true self.navBarMiddleView.layer.isOpaque = true I have my navigation bar setup with this appearence already: let navigationBarAppearance = UINavigationBarAppearance() navigationBarAppearance.configureWithOpaqueBackground() navigationBarAppearance.backgroundEffect = nil navigationBarAppearance.backgroundColor = UIColor.clear navigationBarAppearance.shadowColor = .clear navigationBarAppearance.titleTextAttributes = [ NSAttributedString.Key.foregroundColor: UIColor.colorNamed("Txt2"), NSAttributedString.Key.font: UIFont.custom(ofType: .bold, andSize: 20) ] UINavigationBar.appearance().standardAppearance = navigationBarAppearance UINavigationBar.appearance().compactAppearance = navigationBarAppearance UINavigationBar.appearance().scrollEdgeAppearance = navigationBarAppearance
2
0
692
Sep ’25
Xcode 26 / iOS 26 UISegmentedControl returns to index 0 incorrectly
I'm trying to update one of my apps to the new Liquid Glass effects using Xcode 26. Came across a weird issue in that I reproduced in an empty project on its own with a storyboard with a single segmented control on the initial viewController I have a UISegmentedControl with 3 options. If I click index 2, while index 0 is selected, everything works as normal However if I select index 1, and then index 2, it jumps back to index 0 instead of selecting 2. All the events fire as though I tapped index 0
2
1
615
Jul ’25
No response from apple review team for 12 days
I submitted an app for review and it was rejected. We've been in discussion with the review team for over a month now, going back and forth providing contracts, legal agreements, proof of security measures, etc. 3 weeks ago the app was rejected again citing the same reason as the initial rejection (lack of proof of partnership agreements), which we have provided proof of. I replied asking the reviewer to scroll back in the history as this issue was already addressed by the previous reviewer. They once again said that we needed to provide it. I replied again with another message containing all of the proof we have submitted to date, responses from legal teams, compliance teams, from partners themselves, etc I also opened an appeal with the apple review board, as this feature is identical to features in dozens of other apps listed in the store. And our partners confirmed everything was above board with what we are doing. After a week of no response I replied to the review asking if its possible to get an update, as the team funding the development of the app are becoming irate with the delays. Its now been 12 days since our last response. Is there any other avenue I can use to try get an update?
1
0
610
Sep ’24
Provide my own machine for Xcode Cloud
I'm working on some apps at the minute, with the intention of running a lot of automated UI tests. Xcode cloud looks great and has a lot of integrated features, but having to make sure I don't run too many hours so my subscription doesn't stop mid dev cycle, or getting a surprise large bill etc, are things I want to avoid. Even the cheapest paid plan for a year works out about the same cost as an M2 mac mini, which would probably be significantly faster than the cloud nodes. Github actions allow you to provide your own machines. But actions requires a lot more scripting, and so far they've been very slow to update Macos/Xcode versions (not sure how this will effect supplying own machine). My preference would be to deploy my own machine for Xcode cloud, similar to what we used to be able to do with Xcode server. I think this is currently impossible right? Is there any word that this might be an added feature in the near future?
1
0
1.2k
May ’24
Can't set Album artwork on MPNowPlayingInfoCenter without setting allowsExternalPlayback = false
I have an AVPlayerViewController in my app to play custom audio+image or video streamed from an online service. If I set the below, I am able to add info to the nowPlayingInfo dictionary avplayerController.updatesNowPlayingInfoCenter = false This works for iOS control centre, it correctly displays my custom album name, artwork etc. But when using airplay for audio, it only displays the track name while playing audio. It doesn't display the artwork or the album etc. However if I set avplayerController.player?.allowsExternalPlayback = false It does correctly display artwork, title, album etc. This however disables the airplay button thats inbuilt on the player. I would like this button to remain, but need the artwork to be displayed while airplay-ing. How to I achieve this?
0
1
1.4k
Oct ’23
Apple id account for testing, without 2 factor
I created a fake apple id for testing/automation, but it forced me to setup 2 factor. I need one without 2 factor. There seems to be no way to turn it off, and creating an "app specific password" isn't accepted in places like the simulator settings app, to sign in with Apple id Am I missing something? Is there another process to go through? Is there a way to turn off 2FA? Is there a dummy set of credentials that all simulators will accept to sign in with apple? etc
0
1
1.1k
Aug ’23
XCUITest Sign in with apple
I'm trying to automate a testing flow in my app, that requires signing in with apple first. I've figure out how open settings and login with a test apple ID. I've wrapped that up in a function and call that first (with a check to see if its already logged in). When I return to my app, and tapping the sign in with apple button, I can't find anyway to interact with the sign in with apple modal, e.g. asking me if I want to share my email address or not, tapping "continue with password" and so on I've tried setting up an interruption handler, but it doesn't get triggered let test = addUIInterruptionMonitor(withDescription: "") { alert in print("inside alert:\( alert )") return true } I've tried checking for springboard alerts, but its not an alert let springboardApp = XCUIApplication(bundleIdentifier: "com.apple.springboard") springboardApp.alerts.exists I don't know any other tricks, or how to find the bundle ID of this popup. Any advice?
1
0
2.5k
Aug ’23
Workspace Integrity - Couldn't load project - Large JS file
I have a Swift package that i've been working on for a while. I upgraded to Xcode 13 a month or two ago. I have a couple of large JS files in my package (third party NPM libraries that I can't re-write). Randomly, Xcode will throw an error (but not a real error because I can continue as normal) that It can't load the folder containing the JS files This doesn't prevent me from doing anything, but its irritating to have this error constantly showing up. Is there anything I can do to solve this or is this an Xcode bug?
4
1
5.2k
Jul ’23
SplitViewController removed the ability to have a side menu on iPhone
Sometime pre-iOS 26 it was possible to use a SplitViewController so that on iPhone you saw the master as a side menu (e.g. hamburger), and the detail full screen. While on iPad you would see the master displayed in a sidebar that could be closed, with the detail fullscreen. This has changed, using a SplitViewController on iPhone now forces you into having 2 fullscreen screens, with a push/pop layout and a back button. In situations where you want the detail screen to open first, this results in users opening the app to find a back button already presented, despite having not navigated anywhere. They must "return" to a screen they never saw. I really despise this layout and find it to be quite a UX issue. But given the new iPhone Duo, using the SplitViewController is now one of the easiest ways to maintain the necessary responsiveness needed, forcing us to accept this behaviour on regular iPhones. Can we PLEASE get the old functionality back, where we can explicitly state on iPhone that the master will always be displayed as a menu?
Replies
1
Boosts
0
Views
368
Activity
1h
Custom floating bottom right button
I have a floating bottom right button in my app (similar to twitter/x's blue compose button). I have no tab bar. When moving to the duo, this floating button now appears to the left of an empty tabbar/toolbar area on the right of the device. Ideally I want it to be inside the new tabbar/toolbar area when on the duo, as otherwise its wasted space. Is there anything new/inbuilt that I can leverage to manage this? Can I put my button into some container somewhere so that its the bottom right of the screen on an iPhone and automatically move to the toolbar area on duo? Something like a single item, right aligned, tabbar would be a great option. But the new liquid glass tabbar comes with too many restrictions on colors/styling I'm trying to find a way to avoid having logic like this in the app, as device specific logic becomes a maintenance issue int he future: if device == duo { // create toolbar button } else { // create button button and appen } d to window
Topic: UI Frameworks SubTopic: UIKit
Replies
3
Boosts
2
Views
620
Activity
3w
SplitViewController not displaying unfold animation
I'm using a 2 column SplitViewController, with preferredDisplayMode = .oneBesideSecondary Running it on the duo simulator in device hub, everything works, but i'm not seeing that cool animation when it unfolds, that the inner screen already has the content open. Opening it, the screen goes black, and then the fullsized splitview appears. Close it, screen goes black, and it reverts to showing the only the master. Is this a limitation of the simulator or an issue with the setup? Its hard to tell due to the limited apps installed on the new simulator
Topic: UI Frameworks SubTopic: UIKit
Replies
0
Boosts
0
Views
63
Activity
Sep ’26
Customise UITabBar on iPadOS 26+
I'm building an app with a UISplitViewController as the base, with the main content being a UITabBarController. I'm targeting iOS 26+ and using UIKit. I've customised the tabbar on iOS to have a different font family and size, and used some custom images. Running the same app on iPad, the tabbar moves to the top of the screen, ignores ALL the appearance proxy settings and strips out the images. Its now just giant floating text. Also noticed in portrait mode when the side bar from the split view is open, it compresses the width of the tab bar down to only show 2 elements at a time, with this weird custom scroll thing to move to the rest of the tabs. If the text wasn't so massive, maybe it could fit more. I really hate every inch of this thing. Its looks ugly and functions bizarrely. Why does it ignore all the tabbar appearance settings, and how can I customise it to add icons back with smaller text? Ideally I don't want to use one of the hacks to force it to think its compact mode to bring back the old tabbar, as i'm relying on traits already to fix some SplitView annoyances and don't want those to break. But would love to have the old tab bar style. Are there any settings or toggles that I can use?
Replies
0
Boosts
0
Views
1.1k
Activity
Jun ’26
UIKit.ButtonBarButtonVisualProvider not key value coding-compliant for the key _titleButton
After updating to Xcode 26 my XCUITests are now failing as during execution exceptions are being raised and caught by my catch all breakpoint These exceptions are only raised during testing, and seem to be referencing some private internal property. It happens when trying to tap a button based off an accessibilityIdentifier e.g. accessibilityIdentifier = "tertiary-button" ... ... app.buttons["tertiary-button"].tap() The full error is: Thread 1: "[<UIKit.ButtonBarButtonVisualProvider 0x600003b4aa00> valueForUndefinedKey:]: this class is not key value coding-compliant for the key _titleButton." Anyone found any workarounds or solutions? I need to get my tests running on the liquid glass UI
Replies
3
Boosts
4
Views
1.4k
Activity
Apr ’26
xcrun altool picking the wrong bundle id
I have 2 app store connect apps: "" ".beta" This is necessary for our usecase as we are building an iOS blockchain wallet, for a chain that updates itself every ~3 months adding new features/changing. We need the communities input, and can't have them uninstalling/re-installing the production app constantly, having to re-import private keys, etc. So we use 1 app store connect app for production releases, and another for public facing long running beta, where we experiment with new features before pulling them into production. Allowing users to have both installed at the same time Last week my CI (without any changes to scripts, project, profiles, etc), started failing for the production build with the error: [altool.105176BE0] Validation failed (409) This bundle is invalid. The bundle identifier cannot be changed from the current value, '<bundle-id>.beta'. If you want to change your bundle identifier, you will need to create a new application in App Store Connect. (ID: ae60bab4-0c01-4b2e-9ea9-91a73adccc14) Nowhere in any of the .app, .ipa, info.plist, provisioning profiles, etc, is it referencing ".beta", everything is referencing "" I tried building it manually locally, same error. I took the local output that failed with xcrun altool, and instead dropped it into Transporter, and it uploaded successfully to the production app Is it possible that xcrun altool is using an app store connect API that changed sometime in the last few weeks? Maybe the search/sort ordering logic has changed?
Replies
3
Boosts
2
Views
1.2k
Activity
Oct ’25
iOS 26 applying blur to UIView in navigationBar
Using a storyboard, I created a UIView containing an UIImageView and a UILabel, that I dragged into the navigation bar of one of my viewControllers. In my viewDidLoad I transform the view to move it down past the bounds of the navigation bar so its hidden initially navBarMiddleView.transform = .init(translationX: 0, y: 50) Then as the screen scrolls, I slowly move it up so it slides back into the middle of the navigationBar func scrollViewDidScroll(_ scrollView: UIScrollView) { let padding: CGFloat = 70 let adjustedOffset = (scrollView.contentOffset.y - padding) navBarMiddleView.transform = .init(translationX: 0, y: max(0, (50 - adjustedOffset))) } (The content is displayed in a collectionView cell as large content initially, and I want it to remain visible as the user scrolls down. So a mini view of the same data is moved up into the navigationBar) With iOS 26 the navigationBar is applying a blur effect to this view, even when its outside the bounds of the navigationBar, meaning the content its hovering on top of is slightly obscured. I don't know why this blur is being added, how do I remove it? I've tried the following based on recommendations from chatGPT but none have worked self.navigationController?.navigationBar.clipsToBounds = true self.navBarMiddleView.layer.allowsGroupOpacity = false self.navBarMiddleView.backgroundColor = .clear self.navBarMiddleView.isOpaque = true self.navBarMiddleView.layer.isOpaque = true I have my navigation bar setup with this appearence already: let navigationBarAppearance = UINavigationBarAppearance() navigationBarAppearance.configureWithOpaqueBackground() navigationBarAppearance.backgroundEffect = nil navigationBarAppearance.backgroundColor = UIColor.clear navigationBarAppearance.shadowColor = .clear navigationBarAppearance.titleTextAttributes = [ NSAttributedString.Key.foregroundColor: UIColor.colorNamed("Txt2"), NSAttributedString.Key.font: UIFont.custom(ofType: .bold, andSize: 20) ] UINavigationBar.appearance().standardAppearance = navigationBarAppearance UINavigationBar.appearance().compactAppearance = navigationBarAppearance UINavigationBar.appearance().scrollEdgeAppearance = navigationBarAppearance
Replies
2
Boosts
0
Views
692
Activity
Sep ’25
Xcode 26 / iOS 26 UISegmentedControl returns to index 0 incorrectly
I'm trying to update one of my apps to the new Liquid Glass effects using Xcode 26. Came across a weird issue in that I reproduced in an empty project on its own with a storyboard with a single segmented control on the initial viewController I have a UISegmentedControl with 3 options. If I click index 2, while index 0 is selected, everything works as normal However if I select index 1, and then index 2, it jumps back to index 0 instead of selecting 2. All the events fire as though I tapped index 0
Replies
2
Boosts
1
Views
615
Activity
Jul ’25
No response from apple review team for 12 days
I submitted an app for review and it was rejected. We've been in discussion with the review team for over a month now, going back and forth providing contracts, legal agreements, proof of security measures, etc. 3 weeks ago the app was rejected again citing the same reason as the initial rejection (lack of proof of partnership agreements), which we have provided proof of. I replied asking the reviewer to scroll back in the history as this issue was already addressed by the previous reviewer. They once again said that we needed to provide it. I replied again with another message containing all of the proof we have submitted to date, responses from legal teams, compliance teams, from partners themselves, etc I also opened an appeal with the apple review board, as this feature is identical to features in dozens of other apps listed in the store. And our partners confirmed everything was above board with what we are doing. After a week of no response I replied to the review asking if its possible to get an update, as the team funding the development of the app are becoming irate with the delays. Its now been 12 days since our last response. Is there any other avenue I can use to try get an update?
Replies
1
Boosts
0
Views
610
Activity
Sep ’24
Provide my own machine for Xcode Cloud
I'm working on some apps at the minute, with the intention of running a lot of automated UI tests. Xcode cloud looks great and has a lot of integrated features, but having to make sure I don't run too many hours so my subscription doesn't stop mid dev cycle, or getting a surprise large bill etc, are things I want to avoid. Even the cheapest paid plan for a year works out about the same cost as an M2 mac mini, which would probably be significantly faster than the cloud nodes. Github actions allow you to provide your own machines. But actions requires a lot more scripting, and so far they've been very slow to update Macos/Xcode versions (not sure how this will effect supplying own machine). My preference would be to deploy my own machine for Xcode cloud, similar to what we used to be able to do with Xcode server. I think this is currently impossible right? Is there any word that this might be an added feature in the near future?
Replies
1
Boosts
0
Views
1.2k
Activity
May ’24
Can't set Album artwork on MPNowPlayingInfoCenter without setting allowsExternalPlayback = false
I have an AVPlayerViewController in my app to play custom audio+image or video streamed from an online service. If I set the below, I am able to add info to the nowPlayingInfo dictionary avplayerController.updatesNowPlayingInfoCenter = false This works for iOS control centre, it correctly displays my custom album name, artwork etc. But when using airplay for audio, it only displays the track name while playing audio. It doesn't display the artwork or the album etc. However if I set avplayerController.player?.allowsExternalPlayback = false It does correctly display artwork, title, album etc. This however disables the airplay button thats inbuilt on the player. I would like this button to remain, but need the artwork to be displayed while airplay-ing. How to I achieve this?
Replies
0
Boosts
1
Views
1.4k
Activity
Oct ’23
Apple id account for testing, without 2 factor
I created a fake apple id for testing/automation, but it forced me to setup 2 factor. I need one without 2 factor. There seems to be no way to turn it off, and creating an "app specific password" isn't accepted in places like the simulator settings app, to sign in with Apple id Am I missing something? Is there another process to go through? Is there a way to turn off 2FA? Is there a dummy set of credentials that all simulators will accept to sign in with apple? etc
Replies
0
Boosts
1
Views
1.1k
Activity
Aug ’23
XCUITest Sign in with apple
I'm trying to automate a testing flow in my app, that requires signing in with apple first. I've figure out how open settings and login with a test apple ID. I've wrapped that up in a function and call that first (with a check to see if its already logged in). When I return to my app, and tapping the sign in with apple button, I can't find anyway to interact with the sign in with apple modal, e.g. asking me if I want to share my email address or not, tapping "continue with password" and so on I've tried setting up an interruption handler, but it doesn't get triggered let test = addUIInterruptionMonitor(withDescription: "") { alert in print("inside alert:\( alert )") return true } I've tried checking for springboard alerts, but its not an alert let springboardApp = XCUIApplication(bundleIdentifier: "com.apple.springboard") springboardApp.alerts.exists I don't know any other tricks, or how to find the bundle ID of this popup. Any advice?
Replies
1
Boosts
0
Views
2.5k
Activity
Aug ’23
Workspace Integrity - Couldn't load project - Large JS file
I have a Swift package that i've been working on for a while. I upgraded to Xcode 13 a month or two ago. I have a couple of large JS files in my package (third party NPM libraries that I can't re-write). Randomly, Xcode will throw an error (but not a real error because I can continue as normal) that It can't load the folder containing the JS files This doesn't prevent me from doing anything, but its irritating to have this error constantly showing up. Is there anything I can do to solve this or is this an Xcode bug?
Replies
4
Boosts
1
Views
5.2k
Activity
Jul ’23