Construct and manage graphical, event-driven user interfaces for iOS or tvOS apps using UIKit.

UIKit Documentation

Post

Replies

Boosts

Views

Activity

Context Menu Position and Preview Fade
By default, when using Context Menu the menu will flip positions to be above or below the content based on the current screen position. Many apps however, tend to keep the menu anchored to the bottom of the content it is associated with and move the content up to fit the menu (iMessage messages for example). In order to get this behavior, where the menu is always anchored to the bottom and the content "shifts up" to make space you have to use a custom preview by passing a previewProvider. So to get the desired behavior you can use a preview that is the same content as the original view. However, when you do this there is a small fade in animation that gets added and since the content of the original view and preview is the same this appears as a flicker. Is there any way to disable this fade animation or force anchor the menu to the bottom when using the standard preview?
0
0
115
2w
Defer system gestures in a WatchKit app
Hi, I'm making a WatchKit game app with SpriteKit and Objective-C, and I'm encountering an annoyance where system gestures, namely long-pressing the top and bottom edges to pull Notification/Control Center, interfere with the controls of the game. In iOS, this can be mitigated by using overriding preferredScreenEdgesDeferringSystemGestures in UIViewController, but I couldn't find any equivalent API in any WatchKit class, and searching for similar symbols only yielded a single private API (-[_UISystemAppearanceManager screenEdgesDeferringSystemGestures]) that isn't ever called on watchOS. Any idea how to achieve a similar effect on watchOS?
1
0
166
2w
UIButtonLegacyVisualProvider Crash
0 CoreFoundation 0x0000000183f687cc ___exceptionPreprocess + 164 1 libobjc.A.dylib 0x000000018123b2e4 _objc_exception_throw + 88 2 CoreFoundation 0x000000018406e5f0 +[NSObject(NSObject) doesNotRecognizeSelector:] + 0 3 UIKitCore 0x0000000186849a48 -[UIButtonLegacyVisualProvider _newLabelWithFrame:] + 60 4 UIKitCore 0x00000001867652b0 -[UIButtonLegacyVisualProvider _setupTitleViewRequestingLayout:] + 84 5 UIKitCore 0x0000000186763ba4 -[UIButtonLegacyVisualProvider titleViewCreateIfNeeded:] + 44 6 UIKitCore 0x00000001867d3f74 -[UIButton titleLabel] + 36 Hello bro, in IOS 18 our team find issue ,We created a button like this: UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; button.titleLabel.font = [UIFont fontWithName:paramFontName size: fontSize]; Please tell me whether we need to set button frame before we call button.titleLabe?
2
0
169
2w
Is there a way to opt a Catalyst app into supporting preferred text size?
As of macOS Sequoia 15.1 (and probably earlier), in System Settings under Accessibility -> Display, there's a Text Size option that looks an awful lot like Dynamic Type on iOS: I have an iOS app with robust support for Dynamic Type that I've brought to the Mac via Catalyst. Is there any way for me to opt this app into supporting this setting, maybe with some Info.plist key? Calendar's Info.plist has a CTIgnoreUserFonts value set to true, but the Info.plist for Notes has no such value.
0
0
140
2w
MapKit polygon render bug when single-vertex self-intersection
We have to draw polygons inside a MKMapView based on coordinates retrieved from external source. It seems that MapKit does not behave correctly where polygons have single-vertex self-intersection. Here it's a simple point list example (every element is a pair of latitude and longitude values): [(0, 0), (20, 0), (10, 10), (20, 20), (0, 20), (10, 10), (0, 0)] The next image shows the rendering issue. But if the list is slightly changed in this way [(0, 0), (20, 0), (10, 10), (20, 20), (0, 20), (15, 10), (0, 0)] the issue disappears. The next image shows it. So it's not a self-intersection and self-tangency problem, but we think single-vertex self-intersection is a buggy edge case for MapKit. Right now we fixed this problem by finding the duplicated coordinates and applying a small offset (1e-8) to one of them, but it's a temporary solution and adds rendering delay. The problem is not due to iOS versions, since iOS 17 and 18 have the same issue. Also it happens on simulators and real devices. Here is the playground example, based mostly on the "Map Playground" template Xcode offers. If you run it without modifying it, the playground shows the "bugged" polygon. If you use notBugPoints instead of the default bugPoints for the polygon, the playground shows the "not-bugged" polygon. import MapKit import PlaygroundSupport // Create an MKMapViewDelegate to provide a renderer for our overlay class MapViewDelegate: NSObject, MKMapViewDelegate { func mapView(_ mapView: MKMapView, rendererFor overlay: MKOverlay) -> MKOverlayRenderer { if let overlay = overlay as? MKPolygon { let polygonRenderer = MKPolygonRenderer(overlay: overlay) polygonRenderer.fillColor = .red return polygonRenderer } return MKOverlayRenderer(overlay: overlay) } } // Create a strong reference to a delegate let delegate = MapViewDelegate() // Create an MKMapView let mapView = MKMapView(frame: CGRect(x: 0, y: 0, width: 800, height: 800)) mapView.delegate = delegate // Configure The Map elevation and emphasis style let configuration = MKStandardMapConfiguration(elevationStyle: .realistic, emphasisStyle: .default) mapView.preferredConfiguration = configuration // Create an overlay let bugPoints = [ MKMapPoint(CLLocationCoordinate2DMake(0, 0)), MKMapPoint(CLLocationCoordinate2DMake(20, 0)), MKMapPoint(CLLocationCoordinate2DMake(10, 10)), MKMapPoint(CLLocationCoordinate2DMake(20, 20)), MKMapPoint(CLLocationCoordinate2DMake(0, 20)), MKMapPoint(CLLocationCoordinate2DMake(10, 10)), MKMapPoint(CLLocationCoordinate2DMake(0, 0)) ] let notBugPoints = [ MKMapPoint(CLLocationCoordinate2DMake(0, 0)), MKMapPoint(CLLocationCoordinate2DMake(20, 0)), MKMapPoint(CLLocationCoordinate2DMake(10, 10)), MKMapPoint(CLLocationCoordinate2DMake(20, 20)), MKMapPoint(CLLocationCoordinate2DMake(0, 20)), MKMapPoint(CLLocationCoordinate2DMake(15, 10)), MKMapPoint(CLLocationCoordinate2DMake(0, 0)) ] let polygon = MKPolygon(points: bugPoints, count: notBugPoints.count) mapView.addOverlay(polygon) // Frame our annotation and overlay mapView.camera = MKMapCamera(lookingAtCenter: CLLocationCoordinate2DMake(10, 10), fromDistance: 5000000, pitch: 0, heading: 0) // Add the created mapView to our Playground Live View PlaygroundPage.current.liveView = mapView
2
0
188
2w
How can I make my multi-window Catalyst app restore window size and position after closing with stoplight button?
I have a Catalyst app that supports multiple scenes / windows. It has one "main" window type and lots of other secondary windows that can be opened. I'm using the system window restoration functionality via NSQuitAlwaysKeepsWindows to restore windows with their user activity data after the app is quit and restarted. Normally, this works great. If I open my app, change the size and position of my window, quit, and reopen it, the window size and position comes back as expected. But if I close the window using the red stoplight button and then click the app icon to bring it back, it comes back at the default position and size. This isn't how other system apps work - if I close the system Calendar app with the stoplight button, it comes back at the same size and position. How do I get this behavior with my Catalyst app? Is there some identifier property I need to set somewhere? I don't see such a property on UISceneConfiguration. If it matters, I'm using the configurationForConnectingSceneSession method to configure my windows when they open, instead of setting it up in the Info.plist.
1
0
224
3w
iOS 18.1 Storyboard doesn't contain a view controller with identifier
Hi All I faced up with strange issue in my app. Everything works in iOS 18.0 and lower. But after install iOS 18.1 same app from App Store crashes every time with error: Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Storyboard (<UIStoryboard: 0x11f6287a0>) doesn't contain a view controller with identifier 'MKCPinEntryViewControllerIdentifier'' Interesting that this view controller exist in the Storyboard. First call in app: dispatch_async(dispatch_get_main_queue(), ^{ //No authentication, needs login view controller popped. UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; PinEntryViewController *pinViewController = [storyboard instantiateViewControllerWithIdentifier:@"PinEntryViewControllerIdentifier"]; pinViewController.delegate = self; pinViewController.entryType = PinEntryTypeEnter; [self.presentationContext presentViewController:pinViewController animated:YES completion:nil]; }); works good. But second call in other place after 5 seconds: dispatch_async(dispatch_get_main_queue(), ^{ UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; PinEntryViewController *pinViewController = [storyboard instantiateViewControllerWithIdentifier:@"PinEntryViewControllerIdentifier"]; pinViewController.delegate = self; [self.presentationContext presentViewController:pinViewController animated:YES completion:nil]; }); crash the app with Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Storyboard (<UIStoryboard: 0x11f6287a0>) doesn't contain a view controller with identifier 'MKCPinEntryViewControllerIdentifier'' *** First throw call stack: (0x1841b47cc 0x1814872e4 0x186d9c140 0x1063d692c 0x10301ec08 0x104370a30 0x10437271c 0x104382de8 0x1043829a4 0x184188204 0x184185440 0x184184830 0x1d01641c4 0x186ceaeb0 0x186d995b4 0x10667fe3c 0x1a9b72ec8) libc++abi: terminating due to uncaught exception of type NSException And issue not only with this view controller. issue with all in that storyboard. At start up instantiateViewControllerWithIdentifier works good with all view controllers identifiers. But on second call in other places in the app - all crash with same error Reproduce in real device with iOS18.1 only. Simulators and devices with iOS 18.0 works well. Could someone help me, what's wrong with the app?
3
2
338
3w
Application being hang when use UIActivityViewController
Our application uses UIActivityViewController to share files, and we have received numerous complaints from users stating that triggering the share functionality causes the app to hang, making it unresponsive. Users are instructed to restart their devices, after which the sharing function works normally. 0 libsystem_kernel.dylib 0x00000001daae2708 mach_msg2_trap + 8 1 libsystem_kernel.dylib 0x00000001daae5e18 mach_msg2_internal + 80 2 libsystem_kernel.dylib 0x00000001daae5d30 mach_msg_overwrite + 424 3 libsystem_kernel.dylib 0x00000001daae5b7c mach_msg + 24 4 libdispatch.dylib 0x00000001926d1f14 _dispatch_mach_send_and_wait_for_reply + 544 5 libdispatch.dylib 0x00000001926d22b4 dispatch_mach_send_with_result_and_wait_for_reply + 60 6 libxpc.dylib 0x0000000211c1b84c xpc_connection_send_message_with_reply_sync + 256 7 Foundation 0x00000001891e98d8 __NSXPCCONNECTION_IS_WAITING_FOR_A_SYNCHRONOUS_REPLY__ + 16 8 Foundation 0x00000001891e6034 -[NSXPCConnection _sendInvocation:orArguments:count:methodSignature:selector:withProxy:] + 2160 9 Foundation 0x000000018924fda4 -[NSXPCConnection _sendSelector:withProxy:arg1:] + 116 10 Foundation 0x000000018924fa18 _NSXPCDistantObjectSimpleMessageSend1 + 60 11 ShareSheet 0x00000001a89e7b2c -[SFShareSheetSlotManager ensureConnectionEstablished] + 220 12 ShareSheet 0x00000001a89e7960 -[SFShareSheetSlotManager ensureXPCStarted] + 440 13 ShareSheet 0x00000001a89e7f90 -[SFShareSheetSlotManager activate] + 188 14 ShareSheet 0x00000001a8a0020c -[SHSheetServiceManager init] + 100 15 ShareSheet 0x00000001a89f347c -[SHSheetInteractor _setupServiceManagerIfNeeded] + 52 16 ShareSheet 0x00000001a89f1998 -[SHSheetInteractor initWithContext:] + 76 17 ShareSheet 0x00000001a89dd450 +[SHSheetFactory createMainPresenterWithContext:] + 204 18 ShareSheet 0x00000001a89d3e90 -[UIActivityViewController _createMainPresenterIfNeeded] + 84 19 ShareSheet 0x00000001a89d53c4 -[UIActivityViewController _viewControllerPresentationDidInitiate] + 104 20 UIKitCore 0x000000018d247fd0 -[UIViewController _presentViewController:withAnimationController:completion:] + 220 21 UIKitCore 0x000000018d24a71c __63-[UIViewController _presentViewController:animated:completion:]_block_invoke + 88 22 UIKitCore 0x000000018d244ad0 -[UIViewController _performCoordinatedPresentOrDismiss:animated:] + 532 23 UIKitCore 0x000000018d2447c0 -[UIViewController _presentViewController:animated:completion:] + 324 24 UIKitCore 0x000000018d2445cc -[UIViewController presentViewController:animated:completion:] + 164 Above is the stack trace when the hang occurs. We found that UIActivityViewController ultimately calls xpc_connection_send_message_with_reply_sync, which synchronously waits for messages on the main thread, leading to the hang. Are there any suggestions that can avoid this waiting forever hang?
2
0
142
3w
UIGraphicsImageRenderer memory leak on iOS 18.0
Good morning, when using the following extension I'm getting a memory leak when using Instruments, I've tried capturing self with a weak reference but I still get the leak. public extension UIImage { func resize(_ targetSize: CGSize) -> UIImage { let size = self.size // Calculate the scaling ratios let widthRatio = targetSize.width / size.width let heightRatio = targetSize.height / size.height // Determine the scale factor and size to fill the target size let scaleFactor = max(widthRatio, heightRatio) let scaledImageSize = CGSize( width: size.width * scaleFactor, height: size.height * scaleFactor ) // Calculate the clipping rect let clippingRect = CGRect( x: (scaledImageSize.width - targetSize.width) / 2.0, y: (scaledImageSize.height - targetSize.height) / 2.0, width: targetSize.width, height: targetSize.height ) let format = UIGraphicsImageRendererFormat() format.scale = 1 // Render the clipped image let renderer = UIGraphicsImageRenderer(size: targetSize, format: format) return autoreleasepool { return renderer.image { _ in self.draw(in: CGRect( x: -clippingRect.origin.x, y: -clippingRect.origin.y, width: scaledImageSize.width, height: scaledImageSize.height )) } } } }
2
0
165
3w
The widget refresh is invalid
My code as long as you use the AVPictureInPictureController, open the PIP model, and then back to the desktop, my widget will refresh is invalid, I closed the PIP code mode, functions are normal refresh. I don't know what the reason is, is the system made a refresh limit?
0
0
122
3w
Search Bar does not work on iOS 18
I belong to an EC shop application developers' team, and we got a crame from a small part of our customers about our application. "Search Bar does not work on iOS 18." This bug doesn't appear on most of our devices updated to iOS 18.0. In some cases, it disappeared by turning [Settings > Accessibility > Touch > Reachability] off. But it is not the same for all customers found the bug. I'm looking for how to fix this bug, and why it happens. I'm not sure but I doubt that this may be a bug of iOS18, UIKit, RxCocoa, RxSwift, or something else. Any information would be welcome. import UIKit import RxSwift import RxCocoa @IBDesignable public final class SearchBar: UISearchBar { var textField: UITextField { if #available(iOS 13.0, *) { return searchTextField } else { return value(forKey: "_searchField") as! UITextField } } private let disposeBag = DisposeBag() private func bind() { textField.rx.isFirstResponder .bind(to: Binder(self) { me, isFirstResponder in // This doesn't work in some iOS 18 devices. me.textField.attributedPlaceholder = placeholderAttributedString(isFirstResponder: isFirstResponder) me.textField.backgroundColor = isFirstResponder ? Asset.Colors.whiteTwo.color : .white if me.useCancelButton { me.showsCancelButton = isFirstResponder } if me.useBookmarkButton { me.showsBookmarkButton = !isFirstResponder } }) .disposed(by: disposeBag) } public override init(frame: CGRect) { super.init(frame: frame) commonInit() } public required init?(coder aDecoder: NSCoder) { super.init(coder: aDecoder) } public override func awakeFromNib() { super.awakeFromNib() commonInit() } public override func prepareForInterfaceBuilder() { super.prepareForInterfaceBuilder() commonInit() } private func commonInit() { bind() } } extension Reactive where Base: SearchBar {} import UIKit import RxSwift import RxCocoa @IBDesignable public final class SearchHeaderView: UIView { @IBOutlet private weak var searchBar: SearchBar! @IBOutlet private weak var cartContainerView: UIView! private let disposeBag = DisposeBag() public override init(frame: CGRect) { super.init(frame: frame) loadFromNib() commonInit() } public required init?(coder aDecoder: NSCoder) { super.init(coder: aDecoder) } public override func awakeFromNib() { super.awakeFromNib() loadFromNib() commonInit() } public override func prepareForInterfaceBuilder() { super.prepareForInterfaceBuilder() loadFromNib() commonInit() } private func commonInit() { bind() } private func bind() { // ↓ This doesn't work in some iOS 18 devices. searchBar.textField.rx.isFirstResponder .bind(to: cartContainerView.rx.isHidden) .disposed(by: disposeBag) } } extension SearchAndCartHeaderView: NibOwnerLoadable {}
0
0
197
3w
crash while open UIActivityViewController only in iOS 15
let activityViewController = UIActivityViewController(activityItems: items, applicationActivities: []) activityViewController.popoverPresentationController?.barButtonItem = navigationController.topViewController?.navigationItem.rightBarButtonItem navigationController.present(activityViewController, animated: true, completion: nil) Crash logs ===================================================== *** Assertion failure in -[_UIActivityContentCollectionView _dequeueReusableViewOfKind:withIdentifier:forIndexPath:viewCategory:], UICollectionView.m:7588 *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Attempted to dequeue a cell for a different registration or reuse identifier than the existing cell when reconfiguring an item, which is not allowed. You must dequeue a cell using the same registration or reuse identifier that was used to dequeue the cell originally to obtain the existing cell. Dequeued reuse identifier: UIActivityContentActionCellIdentifier; Original reuse identifier: UIActivityActionGroupCell; Existing cell: <UIActivityActionGroupCell: 0x10f19f220; baseClass = _UICollectionViewListCell; frame = (16 354; 358 30); clipsToBounds = YES; layer = <CALayer: 0x600000781740>>'
0
0
217
3w
How to get input string from UIAlertController in a synchronous method
Hi, My methodA is synchronous and be called in main thread. methodA gets input strings from methodB via poping a UIAlertController with UITextField. I have two versions of codes as below. On some iphones with iOS versions, both two versions codes works, such as iPhone SE2 with iOS 17.7. But on some iphones with iOS versions, the two versions of codes can't work, such as iPhone XR with iOS 18.0.1 or iPhone 14 plus with iOS 13.6. How can I get the input string from UIAlertController in the synchronous method on all iPhones and iOS versions. /* //version 1. -(NSString *)methodA { // Prepare a local variable to capture the input __block NSString *inputString = nil; // Call methodB to display the UIAlertController modally [self methodBWithCompletion:^(NSString *result) { inputString = result; // Stop the run loop when input is received CFRunLoopStop(CFRunLoopGetCurrent()); }]; // Run the run loop manually to block execution until CFRunLoopStop() is called CFRunLoopRun(); // Once the run loop stops, return the user input return inputString; } -(void)methodBWithCompletion:(void (^)(NSString *))completion { // Create the UIAlertController for user input UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"Enter PIN" message:nil preferredStyle:UIAlertControllerStyleAlert]; [alertController addTextFieldWithConfigurationHandler:^(UITextField * _Nonnull textField) { textField.placeholder = @"PIN"; textField.secureTextEntry = YES; }]; UIAlertAction *submitAction = [UIAlertAction actionWithTitle:@"Submit" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { // Get the text from the UITextField UITextField *textField = alertController.textFields.firstObject; NSString *input = textField.text; // Pass the input back via the completion handler if (completion) { completion(input); } }]; [alertController addAction:submitAction]; // Present the alert modally on the main window's rootViewController [[UIApplication sharedApplication].keyWindow.rootViewController presentViewController:alertController animated:YES completion:nil]; } */ /* //version 2. -(NSString *)methodA { // Prepare a variable to hold user input __block NSString *inputString = nil; NSLog(@"methodA:...."); // Call methodB to display the UIAlertController asynchronously [self methodBWithCompletion:^(NSString *result) { inputString = result; }]; // Run the main run loop until the inputString is not nil (user input provided) while (inputString == nil) { // Run the loop for a short time interval, allowing the UI to remain responsive [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]]; } // Return the input string once the user has submitted the input return inputString; } -(void)methodBWithCompletion:(void (^)(NSString *))completion { // Create and configure the UIAlertController UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"Enter PIN" message:nil preferredStyle:UIAlertControllerStyleAlert]; [alertController addTextFieldWithConfigurationHandler:^(UITextField * _Nonnull textField) { textField.placeholder = @"PIN"; textField.secureTextEntry = YES; }]; UIAlertAction *submitAction = [UIAlertAction actionWithTitle:@"Submit" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { UITextField *textField = alertController.textFields.firstObject; NSString *input = textField.text; // Return the input via the completion handler if (completion) { completion(input); } }]; [alertController addAction:submitAction]; // Present the alert on the main thread [[UIApplication sharedApplication].keyWindow.rootViewController presentViewController:alertController animated:YES completion:nil]; } */
2
0
199
3w
Pan gesture and natural scrolling
The Maps app on macOS always zooms the same way (two fingers up to zoom in, two fingers down to zoom out) when the shift key is held down, regardless of whether natural scrolling is turned off. I'd like to replicate this same behavior using UIPanGestureRecognizer, but the translation is always inverted whenever I disable natural scrolling. How can I detect if natural scrolling is enabled or disabled when the pan gesture is detected?
0
1
149
3w
Incorrect focus behavior in UICollectionView on tvOS 18
After updating to tvOS 18 I've noticed the following change in focus behavior: When a UICollectionView is located next to any other view (even one with user interaction disabled), attempting to move focus within the collection view in that view's direction to a next collection view item, which is currently outside of the visible area, doesn't have any effect. Like if the focus engine preferred to move focus to that other view (despite it being not focusable) over a currently hidden collection view cell. This didn't happen in tvOS 17 and earlier. A minimal reproducible project can be found here. Steps to reproduce: Launch the app on a tvOS 18 device. Swipe right and observe that focus moves without issues. Swipe left and observe that in most cases focus doesn't move to items beyond the visible area due to an empty grey view located to the left from the collection view. Compare to the same app running on tvOS 17 and observe that focus moves both sides without issues. The issue is reproducible on Xcode versions 16.0 (16A242d) and 15.4 (15F31d). Did anyone face the same issue and/or has suggestions on a possible fix?
1
0
254
3w
Crash on Main Thread
Crashed: com.apple.main-thread 0 CardSuiteExperience 0x4e2f0 objectdestroyTm + 376 1 CardSuiteExperience 0x322424 block_destroy_helper + 33784 2 CardSuiteExperience 0x321e24 block_destroy_helper + 32248 3 UIKitCore 0x2b4904 -[UITableView _selectRowAtIndexPath:animated:scrollPosition:notifyDelegate:isCellMultiSelect:deselectPrevious:performCustomSelectionAction:] + 1232 4 UIKitCore 0x1073af4 -[UITableView _userSelectRowAtPendingSelectionIndexPath:animatedSelection:] + 268 5 UIKitCore 0x1073bf4 -[UITableView _userSelectRowAtPendingSelectionIndexPath:] + 216 6 UIKitCore 0xba5d8 -[_UIAfterCACommitBlock run] + 72 7 UIKitCore 0xba49c -[_UIAfterCACommitQueue flush] + 164 8 UIKitCore 0xba3b4 _runAfterCACommitDeferredBlocks + 496 9 UIKitCore 0xb9fec _cleanUpAfterCAFlushAndRunDeferredBlocks + 80 10 UIKitCore 0xb9efc _UIApplicationFlushCATransaction + 72 11 UIKitCore 0xb7660 _UIUpdateSequenceRun + 84 12 UIKitCore 0xb72a4 schedulerStepScheduledMainSection + 172 13 UIKitCore 0xb8148 runloopSourceCallback + 92 14 CoreFoundation 0x56834 CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION + 28 15 CoreFoundation 0x567c8 __CFRunLoopDoSource0 + 176 16 CoreFoundation 0x54298 __CFRunLoopDoSources0 + 244 17 CoreFoundation 0x53484 __CFRunLoopRun + 828 18 CoreFoundation 0x52cd8 CFRunLoopRunSpecific + 608 19 GraphicsServices 0x11a8 GSEventRunModal + 164 20 UIKitCore 0x40aae8 -[UIApplication _run] + 888 21 UIKitCore 0x4bed98 UIApplicationMain + 340 22 UIKitCore 0x638504 keypath_get_selector_hoverStyle + 11024 23 Card Suite Lite 0x17e6fc main + 4332857084 (AppDelegate.swift:4332857084) 24 ??? 0x1bbfe3154 (Missing)
0
0
119
3w
3rd party OSS license string in settings.bundle could not been displayed in iOS 18
Hello, Dear Developers Problem Description My team is working on functionality test in iOS18. Basically, application functionality works as expected without any modification. However, We found a small issue in settings application. iOS 17 In iOS17, 3rd party OSS license string in settings application would been displayed if the license button is been clicked. Model: iPhone SE 3 OS Version: 17.6.1 iOS 18 However, in iOS18, nothing but a blank page. Model: iPhone SE 3 OS Version: 18.0.1 Settings.bundle Below are files in settings.bundle. What I've searched Using XCode 16 makes no change Nothing about settings.bundle in iOS 18 release note A similar post: https://forums.developer.apple.com/forums/thread/764519 The solution in the post doesn't solve my problem. If you know the solution, please let me know. Best wishes.
0
0
176
3w