Issue Causing Auto-Reboots on iPhone 15 Pro/Pro Max

I recently stumbled upon a peculiar issue that's causing automatic reboots on the iPhone 15 Pro and iPhone 15 Pro Max. It appears that setting an extremely high value for gyroUpdateInterval can lead to this problem, but interestingly, the iPhone 15 doesn't exhibit the same behavior.

Here's the code in question:

- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {
    self.motionManager = CMMotionManager.new;
    self.motionManager.gyroUpdateInterval = 3600;  // The problematic line
    [self.motionManager startGyroUpdatesToQueue:NSOperationQueue.mainQueue withHandler:^(CMGyroData * _Nullable gyroData, NSError * _Nullable error) {
        NSLog(@"Gyroscope data: %@", gyroData);
    }];
}

It's worth noting that when I set gyroUpdateInterval to a more reasonable value like 60 (or omit it, as it uses a default value in that case), the reboots don't occur on the affected devices.

I have tested this behavior on both the iPhone 15 Pro and the iPhone 15 Pro Max, and the issue is consistent on both devices. Surprisingly, the iPhone 15 does not seem to experience this problem.

I'm eager to hear from other developers who might have encountered this issue or have insights into why setting an extreme gyroUpdateInterval could result in device instability on the iPhone 15 Pro and iPhone 15 Pro Max. This might be a device-specific quirk or potentially a bug in the Core Motion framework.

Replies

Raise a bug.