Post

Replies

Boosts

Views

Activity

Reply to SplitViewController removed the ability to have a side menu on iPhone
So it turns out that we can have an entirely iPhone sepcific setup with the built in contorl, but in a confusing way. There is a special type of column with the enum .compact that only displays on smaller screens like iPhone and iPone duo outer screen. Here we can customise that viewController as we like (e.g. adding a custom side menu) while still having the same experince on iPad/iphone duo inner display, with the .primary and .secondary columns. We just need to setup 3 viewControllers instead of two, and treat them as pairs instead of always all active at once
Topic: UI Frameworks SubTopic: UIKit Tags:
8h
Reply to Custom floating bottom right button
@Technology Evangelist apologies for the long delay, the forum doesn't auto watch your own questions so I didn't get alerted to the answer. This partially works, but doesn't deliver what i'm looking for when using a UISplitViewController. On an iPhone I want it to hover over the master, and the detail. I can live with it swiping in/out if duplicate it and attach it to each viewController, but then I have to listen for events for when the SplitView is showing both at the same time and hide one of them There seems to be no way to add it to the SplitViewController itself is that correct?
Topic: UIKit SubTopic:
iPhone Duo UIKit Q&A
3w
Reply to xcrun altool picking the wrong bundle id
Apple responded to my feedback ticket, this is a known Xcode 26 CLI issue. The logic was changed that if a parameter is not supplied, and the bundle id prefix matches another app, it will simply upload to whichever one was updated most recently. It seems now you must supply --apple-id <appleID> when using altool. This is not referring to the apple id email, but rather the unique numeric identifier for your app when you open app store connect -> distribution - > app information -> apple id This is SUPER confusing. Not sure why we can't use the "bundle id" parameter which already exists for altool, just being ignored in this context
Oct ’25
Reply to Disable new tab bar look
Can confirm that putting the below inside viewWillAppear returns iPad and mac to using the tabbar along the bottom. No need to build your own alternative tab bar. This approach causes a lot of issues if you have customised the tab bar at all. I am gobsmacked that Apple would force such a drastic change without an option to revert. We are relying heavily on the image as part of the tab bar, as we update one of them to let the user know there has been a change. This is a core peace of our app and it just disappears without notice. We have been getting crashes from this on macs due to this. Beyond belief if #available(iOS 18.0, *), UIDevice.current.userInterfaceIdiom == .pad { // Both iPad and Mac, as mac is running "Designed for iPad" traitOverrides.horizontalSizeClass = .unspecified if ProcessInfo.processInfo.isiOSAppOnMac { /// Fix for macOS Sequoia: without it, the tabs /// appear twice and the view crashes regularly. /// Hides the top tabs self.mode = .tabSidebar self.sidebar.isHidden = true } }
Topic: UI Frameworks SubTopic: General Tags:
Nov ’24
Reply to XCUITest Sign in with apple
Managed to find the bundle identifier needed com.apple.AuthKitUIService This is not a complete solution that handles all paths through the modal. Just a sample to get through the flow when you have previously signed in. Just leaving this here to show how to wrap something like this up in a function sleep(4) let testApp = XCUIApplication(bundleIdentifier: "com.apple.AuthKitUIService") let continueButton = testApp.buttons["Continue"] if continueButton.exists { continueButton.tap() } let shareEmailOption = testApp.tables.staticTexts["Share My Email"] if shareEmailOption.exists { shareEmailOption.tap() } let continueWithPassword = testApp.buttons["Continue with Password"] if continueWithPassword.exists { continueWithPassword.tap() } testApp.secureTextFields["Password"].tap() // Type your password testApp.buttons["Sign In"].tap() // Wait for something to show up in your app to denote success / failure let app = XCUIApplication() ....... How I found this bundle identifier for anyone having similar issues: running xcrun simctl list devices --json in terminal lists all simulators. Find the UDID of the one you are using then either: run xcrun simctl listapps <UDID> or go to ~/Library/Developer/CoreSimulator/<UDID>/data/Containers/Data and do a search for "com.apple"
Aug ’23
Reply to Workspace Integrity - Couldn't load project - Large JS file
Finally found a workaround to this. While the error inside Xcode is incredibly cryptic, I noticed an error (more like a warning though) in my CI logs while looking at another issue. Inside the CI logs I found can't open xxx as a "Swift Package Folder" because it is already open as a "Folder" Inside my SPM I have 3 .js files. To organise it better I put them in a sub folder, and added that folder as a resource inside the Package.swift. There are multiple reports of cocoapods facing the same error message due to some new change/requirement to have resource folders signed. Couldn't figure out how to sign the folder in SPM, so I took a chance and removed the .js files from the subfolder, and list each one of the directly as resources in the package.swift and it solved this issue Xcode 14 is SSSSSSOOOOOOO buggy!
Jul ’23
Reply to Xcode 14.3 - Failed to render and update auto layout status
Following posts online I tried setting "Build Active Architecture Only" to "No" for debug builds, AND adding "macOS" to the "Supported Platforms" for debug. This is throwing an error that a swift package i'm writing/using (set to iOS 15 and mac 11), that it can't find the module for target 'x86_64-apple-ios-simulator'; found: arm64-apple-ios-simulator. Telling me to add missing architecture. Can't find anything online with instructions on what it is i'm supposed to do
Apr ’23
Reply to How can I suppress warning that "Conversion to Swift 5 is available"?
Same issue here in Xcode 13.3.1. Anyone found a way to disable it yet? For me its coming from a dependency of a dependency of a dependency. I've tried reaching out to see can they be updated but some haven't been touched in ~3 years. I won't hold my breath that it will get done. Also opened a bug for Xcode with the feedback assistant. Anyone who hasn't done so, please do it to make sure it gets looked at
Topic: Programming Languages SubTopic: Swift Tags:
May ’22
Reply to SplitViewController removed the ability to have a side menu on iPhone
So it turns out that we can have an entirely iPhone sepcific setup with the built in contorl, but in a confusing way. There is a special type of column with the enum .compact that only displays on smaller screens like iPhone and iPone duo outer screen. Here we can customise that viewController as we like (e.g. adding a custom side menu) while still having the same experince on iPad/iphone duo inner display, with the .primary and .secondary columns. We just need to setup 3 viewControllers instead of two, and treat them as pairs instead of always all active at once
Topic: UI Frameworks SubTopic: UIKit Tags:
Replies
Boosts
Views
Activity
8h
Reply to Custom floating bottom right button
@Technology Evangelist apologies for the long delay, the forum doesn't auto watch your own questions so I didn't get alerted to the answer. This partially works, but doesn't deliver what i'm looking for when using a UISplitViewController. On an iPhone I want it to hover over the master, and the detail. I can live with it swiping in/out if duplicate it and attach it to each viewController, but then I have to listen for events for when the SplitView is showing both at the same time and hide one of them There seems to be no way to add it to the SplitViewController itself is that correct?
Topic: UIKit SubTopic:
iPhone Duo UIKit Q&A
Replies
Boosts
Views
Activity
3w
Reply to xcrun altool picking the wrong bundle id
Apple responded to my feedback ticket, this is a known Xcode 26 CLI issue. The logic was changed that if a parameter is not supplied, and the bundle id prefix matches another app, it will simply upload to whichever one was updated most recently. It seems now you must supply --apple-id <appleID> when using altool. This is not referring to the apple id email, but rather the unique numeric identifier for your app when you open app store connect -> distribution - > app information -> apple id This is SUPER confusing. Not sure why we can't use the "bundle id" parameter which already exists for altool, just being ignored in this context
Replies
Boosts
Views
Activity
Oct ’25
Reply to Disable new tab bar look
Can confirm that putting the below inside viewWillAppear returns iPad and mac to using the tabbar along the bottom. No need to build your own alternative tab bar. This approach causes a lot of issues if you have customised the tab bar at all. I am gobsmacked that Apple would force such a drastic change without an option to revert. We are relying heavily on the image as part of the tab bar, as we update one of them to let the user know there has been a change. This is a core peace of our app and it just disappears without notice. We have been getting crashes from this on macs due to this. Beyond belief if #available(iOS 18.0, *), UIDevice.current.userInterfaceIdiom == .pad { // Both iPad and Mac, as mac is running "Designed for iPad" traitOverrides.horizontalSizeClass = .unspecified if ProcessInfo.processInfo.isiOSAppOnMac { /// Fix for macOS Sequoia: without it, the tabs /// appear twice and the view crashes regularly. /// Hides the top tabs self.mode = .tabSidebar self.sidebar.isHidden = true } }
Topic: UI Frameworks SubTopic: General Tags:
Replies
Boosts
Views
Activity
Nov ’24
Reply to XCUITest Sign in with apple
Managed to find the bundle identifier needed com.apple.AuthKitUIService This is not a complete solution that handles all paths through the modal. Just a sample to get through the flow when you have previously signed in. Just leaving this here to show how to wrap something like this up in a function sleep(4) let testApp = XCUIApplication(bundleIdentifier: "com.apple.AuthKitUIService") let continueButton = testApp.buttons["Continue"] if continueButton.exists { continueButton.tap() } let shareEmailOption = testApp.tables.staticTexts["Share My Email"] if shareEmailOption.exists { shareEmailOption.tap() } let continueWithPassword = testApp.buttons["Continue with Password"] if continueWithPassword.exists { continueWithPassword.tap() } testApp.secureTextFields["Password"].tap() // Type your password testApp.buttons["Sign In"].tap() // Wait for something to show up in your app to denote success / failure let app = XCUIApplication() ....... How I found this bundle identifier for anyone having similar issues: running xcrun simctl list devices --json in terminal lists all simulators. Find the UDID of the one you are using then either: run xcrun simctl listapps <UDID> or go to ~/Library/Developer/CoreSimulator/<UDID>/data/Containers/Data and do a search for "com.apple"
Replies
Boosts
Views
Activity
Aug ’23
Reply to Workspace Integrity - Couldn't load project - Large JS file
Finally found a workaround to this. While the error inside Xcode is incredibly cryptic, I noticed an error (more like a warning though) in my CI logs while looking at another issue. Inside the CI logs I found can't open xxx as a "Swift Package Folder" because it is already open as a "Folder" Inside my SPM I have 3 .js files. To organise it better I put them in a sub folder, and added that folder as a resource inside the Package.swift. There are multiple reports of cocoapods facing the same error message due to some new change/requirement to have resource folders signed. Couldn't figure out how to sign the folder in SPM, so I took a chance and removed the .js files from the subfolder, and list each one of the directly as resources in the package.swift and it solved this issue Xcode 14 is SSSSSSOOOOOOO buggy!
Replies
Boosts
Views
Activity
Jul ’23
Reply to Xcode 14.3 - Failed to render and update auto layout status
Following posts online I tried setting "Build Active Architecture Only" to "No" for debug builds, AND adding "macOS" to the "Supported Platforms" for debug. This is throwing an error that a swift package i'm writing/using (set to iOS 15 and mac 11), that it can't find the module for target 'x86_64-apple-ios-simulator'; found: arm64-apple-ios-simulator. Telling me to add missing architecture. Can't find anything online with instructions on what it is i'm supposed to do
Replies
Boosts
Views
Activity
Apr ’23
Reply to How can I suppress warning that "Conversion to Swift 5 is available"?
Same issue here in Xcode 13.3.1. Anyone found a way to disable it yet? For me its coming from a dependency of a dependency of a dependency. I've tried reaching out to see can they be updated but some haven't been touched in ~3 years. I won't hold my breath that it will get done. Also opened a bug for Xcode with the feedback assistant. Anyone who hasn't done so, please do it to make sure it gets looked at
Topic: Programming Languages SubTopic: Swift Tags:
Replies
Boosts
Views
Activity
May ’22