SR-10257 desperately needs to ship before Xcode 11

SR-10257 has many subtle side effects. We are stuck using Xcode 10.1 until we can use Swift 5.1. I implore Apple to hotfix Xcode 10.2.1 with this fix, if possible.

On a clean build our codebase, delegate methods and others which should be exposed to the Objective-C runtime are not exposed. So, for example, our concrete UISplitViewControllerDelegate's method list reads:

(lldb) po [0x7fd4f5d6cc50 _methodDescription]
<app.DeputyScheduleSplitViewController: 0x7fd4f5d6cc50>:
in app.DeputyScheduleSplitViewController:
	Instance Methods:
		- (void) .cxx_destruct; (0x10c1a27f0)
		- (id) initWithCoder:(id)arg1; (0x10c1a26f0)
		- (id) initWithNibName:(id)arg1 bundle:(id)arg2; (0x10c1a24d0)
		- (void) viewDidLoad; (0x10c19f860)
		- (void) prepareForSegue:(id)arg1 sender:(id)arg2; (0x10c1a0680)
		- (void) didReceiveMemoryWarning; (0x10c19f910)

Make a trivial code change, such as whitespace or a code comment, and the method list reads:

(lldb) po [0x7ff861f69cb0 _methodDescription]
<app.DeputyScheduleSplitViewController: 0x7ff861f69cb0>:
in app.DeputyScheduleSplitViewController:
	Instance Methods:
		- (void) .cxx_destruct; (0x10c4917e0)
		- (id) initWithCoder:(id)arg1; (0x10c4916e0)
		- (id) initWithNibName:(id)arg1 bundle:(id)arg2; (0x10c4914c0)
		- (void) viewDidLoad; (0x10c48e720)
		- (BOOL) splitViewController:(id)arg1 collapseSecondaryViewController:(id)arg2 ontoPrimaryViewController:(id)arg3; (0x10c48eb70)
		- (id) splitViewController:(id)arg1 separateSecondaryViewControllerFromPrimaryViewController:(id)arg2; (0x10c48f020)
		- (void) prepareForSegue:(id)arg1 sender:(id)arg2; (0x10c48f670)
		- (void) didReceiveMemoryWarning; (0x10c48e7d0)

The side effect of this bug for us is that the detail view controller is presented when on iPhone when the master view controller should be. We have other occurrences of delegates failing to be called back when the user enters text into a text field and so on. I've no idea what the effect is for less prominent Objective-C third parties SDKs.

Using the @objc attribute on those delegate methods consistently exposes them to the runtime, but that's a band aid I'd rather not apply if we could because when Xcode 11 comes around, we'll just have to remove them and possibly get something wrong.

Given the subtly of its side effects, how many other apps is this innocent bug plaguing?

Please Apple, hotfix Xcode 10.2.1 with the fix for SR-10257 if possible.

In addition to the comments on SR-10257, the PR itself contains a handful of comments indicating the seriousness of this issue.

Terms of Service

Privacy Policy

Cookie Policy