Xcode16RC present PHPickerViewController layout error & cell non-Interactive.

After upgrading to Xcode16RC, in an old project based on ObjC, I directly used the following controller code in AppDelegate:

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    
    UIButton *b = [[UIButton alloc]initWithFrame:CGRectMake(100, 100, 44, 44)];
    [b setTitle:@"title" forState:UIControlStateNormal];
    [self.view addSubview:b];
    [b addTarget:self action:@selector(onB:) forControlEvents:UIControlEventTouchUpInside];
    
}

- (IBAction)onB:(id)sender{
    PHPickerConfiguration *config = [[PHPickerConfiguration alloc]initWithPhotoLibrary:PHPhotoLibrary.sharedPhotoLibrary];

    config.preferredAssetRepresentationMode = PHPickerConfigurationAssetRepresentationModeCurrent;
    config.selectionLimit = 1;
    config.filter = nil;
    
    PHPickerViewController *picker = [[PHPickerViewController alloc]initWithConfiguration:config];

    picker.modalPresentationStyle = UIModalPresentationFullScreen;
    picker.delegate = self;
    
    [self presentViewController:picker animated:true completion:nil];
}

- (void)picker:(PHPickerViewController *)picker didFinishPicking:(NSArray<PHPickerResult *> *)results{

}

Environment: Simulator iPhone 15 Pro (iOS18)

Before this version (iOS17.4), clicking the button to pop up the system photo picker interface was normal (the top boundary was within the SafeAreaGuide area), but now the top boundary of the interface aligns directly to the top of the window, and clicking the photo cell is unresponsive.

If I create a new Target, using the same codes, the photo picker page does not have the above problem.

Therefore, I suspect it may be due to the old project’s .proj file’s info.plist, buildSetting, or buildPhase lacking some default configuration key value required by the new version, (My project was built years ago may be from iOS13 or earlier ) but I cannot confirm the final cause.

iOS18.0 has the additional messages:

objc[79039]: Class UIAccessibilityLoaderWebShared is implemented in both /Library/Developer/CoreSimulator/Volumes/iOS_22A3351/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS 18.0.simruntime/Contents/Resources/RuntimeRoot/System/Library/AccessibilityBundles/WebCore.axbundle/WebCore (0x198028328) and /Library/Developer/CoreSimulator/Volumes/iOS_22A3351/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS 18.0.simruntime/Contents/Resources/RuntimeRoot/System/Library/AccessibilityBundles/WebKit.axbundle/WebKit (0x1980fc398). One of the two will be used. Which one is undefined.
AX Safe category class 'SLHighlightDisambiguationPillViewAccessibility' was not found!

Has anyone encountered the same issue as me?

To add some additional information: even if I change modalPresentationStyle to UIModalPresentationPageSheet or UIModalPresentationFormSheet (and set preferredContentSize), after the presentation animation, the final page still appears as shown in the screenshot.

If I change it to UIModalPresentationCustom and add a custom transitionDelegate, manually specifying that the PHPickerViewController only covers half of the screen, all the buttons and cells within the picker are still non-interactive.

It appears that the issue is caused by the RC version of the simulator using arm64-related APIs. Excluding the arm64 SDK for the simulator in the build settings could lead to this problem.

Xcode16RC present PHPickerViewController layout error &amp; cell non-Interactive.
 
 
Q